Commit 0c8cf862 by Tuomas Riihimäki

Added comments to few Entities

1 parent f5df2fe5
...@@ -29,21 +29,33 @@ import javax.persistence.Version; ...@@ -29,21 +29,33 @@ import javax.persistence.Version;
@NamedQuery(name = "AccessRight.findByName", query = "SELECT a FROM AccessRight a WHERE a.name = :name") }) @NamedQuery(name = "AccessRight.findByName", query = "SELECT a FROM AccessRight a WHERE a.name = :name") })
public class AccessRight implements ModelInterface<Integer>{ public class AccessRight implements ModelInterface<Integer>{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* AccessRight is global entity, and thus does not have a reference to Event.
*/
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "access_rights_id", nullable = false) @Column(name = "access_rights_id", nullable = false)
private Integer id; private Integer id;
@Column(name = "right_name", nullable = false) /**
* Name of the access right. Code finds rights by this name, so
* this field should not be changed under any circumstances.
*/
@Column(name = "right_name", nullable = false, updatable=false)
private String name; private String name;
/** /**
* Decribes the access right... * Informative human readable description of the access right.
*/ */
@Lob @Lob
@Column(name = "right_description") @Column(name = "right_description")
private String description; private String description;
/**
* Role rights that have references to this access right object.
*/
@OneToMany(mappedBy = "accessRight") @OneToMany(mappedBy = "accessRight")
private List<RoleRight> roleRights; private List<RoleRight> roleRights;
......
...@@ -25,65 +25,97 @@ import javax.persistence.TemporalType; ...@@ -25,65 +25,97 @@ import javax.persistence.TemporalType;
import javax.persistence.Version; import javax.persistence.Version;
/** /**
* * Account event contains the money / credit traffic for the user. Each row
* references a Product entity.
*/ */
@Entity @Entity
@Table(name = "account_events") @Table(name = "account_events")
@NamedQueries( { @NamedQueries({
@NamedQuery(name = "AccountEvent.findAll", query = "SELECT a FROM AccountEvent a"), @NamedQuery(name = "AccountEvent.findAll", query = "SELECT a FROM AccountEvent a"),
@NamedQuery(name = "AccountEvent.findByUnitPrice", query = "SELECT a FROM AccountEvent a WHERE a.unitPrice = :unitPrice"), @NamedQuery(name = "AccountEvent.findByUnitPrice", query = "SELECT a FROM AccountEvent a WHERE a.unitPrice = :unitPrice"),
@NamedQuery(name = "AccountEvent.findByUnits", query = "SELECT a FROM AccountEvent a WHERE a.units = :units"), @NamedQuery(name = "AccountEvent.findByUnits", query = "SELECT a FROM AccountEvent a WHERE a.units = :units"),
@NamedQuery(name = "AccountEvent.findByEventTime", query = "SELECT a FROM AccountEvent a WHERE a.eventTime = :eventTime"), @NamedQuery(name = "AccountEvent.findByEventTime", query = "SELECT a FROM AccountEvent a WHERE a.eventTime = :eventTime"),
@NamedQuery(name = "AccountEvent.findByDelivered", query = "SELECT a FROM AccountEvent a WHERE a.delivered = :delivered") }) @NamedQuery(name = "AccountEvent.findByDelivered", query = "SELECT a FROM AccountEvent a WHERE a.delivered = :delivered") })
public class AccountEvent implements EventChildInterface{ public class AccountEvent implements EventChildInterface {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@EmbeddedId @EmbeddedId
private EventPk id; private EventPk id;
/**
* What 1 unit of this product costs.
*/
@Column(name = "unit_price", nullable = false, precision = 24, scale = 4) @Column(name = "unit_price", nullable = false, precision = 24, scale = 4)
private BigDecimal unitPrice; private BigDecimal unitPrice;
/**
* The units of the product, eg 1.345 (l), 5 (units) 888.32 (g)..
*/
@Column(name = "unit_count", nullable = false, precision = 24, scale = 4) @Column(name = "unit_count", nullable = false, precision = 24, scale = 4)
private BigDecimal units; private BigDecimal units;
/**
* The time this AccountEvent is created.
*/
@Column(name = "event_time", nullable = false) @Column(name = "event_time", nullable = false)
@Temporal(TemporalType.TIMESTAMP) @Temporal(TemporalType.TIMESTAMP)
private Calendar eventTime; private Calendar eventTime = Calendar.getInstance();
/**
* Is the product delivered to the user.
*/
@Column(name = "delivered") @Column(name = "delivered")
@Temporal(TemporalType.TIMESTAMP) @Temporal(TemporalType.TIMESTAMP)
private Calendar delivered; private Calendar delivered;
/**
* If this AccountEvent is a product in foodwace, this field is a reference
* to that foodwave.
*/
@JoinColumns({ @JoinColumns({
@JoinColumn(name = "food_waves_id", referencedColumnName = "entity_id", nullable = false, updatable = false, insertable = false), @JoinColumn(name = "food_waves_id", referencedColumnName = "entity_id", updatable = false, insertable = false),
@JoinColumn(name="food_waves_event_id",referencedColumnName = "events_pk_id", nullable = false, updatable = false, insertable = false) @JoinColumn(name = "food_waves_event_id", referencedColumnName = "events_pk_id", updatable = false, insertable = false) })
})
@ManyToOne @ManyToOne
private FoodWave foodWave; private FoodWave foodWave;
/**
* The product user has acquired and this this AccountEvent is a reference
* to.
*/
@JoinColumns({ @JoinColumns({
@JoinColumn(name = "products_id", referencedColumnName = "entity_id", nullable = false, updatable = false, insertable = false), @JoinColumn(name = "products_id", referencedColumnName = "entity_id", nullable = false, updatable = false, insertable = false),
@JoinColumn(name="products_event_id",referencedColumnName = "events_pk_id", nullable = false, updatable = false, insertable = false) @JoinColumn(name = "products_event_id", referencedColumnName = "events_pk_id", nullable = false, updatable = false, insertable = false) })
})
@ManyToOne(optional = false) @ManyToOne(optional = false)
private Product product; private Product product;
/**
* The user that bought the products.
*/
@JoinColumn(name = "users_id", referencedColumnName = "users_id", nullable = false) @JoinColumn(name = "users_id", referencedColumnName = "users_id", nullable = false)
@ManyToOne(optional = false) @ManyToOne(optional = false)
private User user; private User user;
/**
* Who sold the items to the user.
*/
@JoinColumn(name = "seller", referencedColumnName = "users_id", nullable = false) @JoinColumn(name = "seller", referencedColumnName = "users_id", nullable = false)
@ManyToOne(optional = true) @ManyToOne(optional = true)
private User seller; private User seller;
/**
* What discounts user has for this account event. Some magic is applied to
* calculate these.. :)
*/
@OneToMany(mappedBy = "accountEvent") @OneToMany(mappedBy = "accountEvent")
private List<DiscountInstance> discountInstances; private List<DiscountInstance> discountInstances;
/**
* When user has paid a bill a Account event for product "Credit" is created
* and reference to that bill is here..
*/
@JoinColumns({ @JoinColumns({
@JoinColumn(name = "bill_id", referencedColumnName = "entity_id", nullable = false, updatable = false, insertable = false), @JoinColumn(name = "bill_id", referencedColumnName = "entity_id", nullable = false, updatable = false, insertable = false),
@JoinColumn(name="bill_event_id",referencedColumnName = "events_pk_id", nullable = false, updatable = false, insertable = false) @JoinColumn(name = "bill_event_id", referencedColumnName = "events_pk_id", nullable = false, updatable = false, insertable = false) })
})
@OneToOne @OneToOne
private Bill bill; private Bill bill;
......
...@@ -25,20 +25,17 @@ import javax.persistence.Version; ...@@ -25,20 +25,17 @@ import javax.persistence.Version;
/** /**
* *
* @author jkj *
*/ */
@Entity @Entity
@Table(name = "bills") @Table(name = "bills")
@NamedQueries( { @NamedQueries({
@NamedQuery(name = "Bill.findAll", query = "SELECT b FROM Bill b"), @NamedQuery(name = "Bill.findAll", query = "SELECT b FROM Bill b"),
// @NamedQuery(name = "Bill.findById", query =
@NamedQuery(name = "Bill.findByDueDate", query = "SELECT b FROM Bill b WHERE b.dueDate = :dueDate"), @NamedQuery(name = "Bill.findByDueDate", query = "SELECT b FROM Bill b WHERE b.dueDate = :dueDate"),
@NamedQuery(name = "Bill.findByPaidDate", query = "SELECT b FROM Bill b WHERE b.paidDate = :paidDate"), @NamedQuery(name = "Bill.findByPaidDate", query = "SELECT b FROM Bill b WHERE b.paidDate = :paidDate"),
@NamedQuery(name = "Bill.findByReferenceNumber", query = "SELECT b FROM Bill b WHERE b.referenceNumber = :referenceNumber"), @NamedQuery(name = "Bill.findByReferenceNumber", query = "SELECT b FROM Bill b WHERE b.referenceNumber = :referenceNumber"),
@NamedQuery(name = "Bill.findByNotes", query = "SELECT b FROM Bill b WHERE b.notes = :notes") }) @NamedQuery(name = "Bill.findByNotes", query = "SELECT b FROM Bill b WHERE b.notes = :notes") })
public class Bill implements EventChildInterface{ public class Bill implements EventChildInterface {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -64,22 +61,19 @@ public class Bill implements EventChildInterface{ ...@@ -64,22 +61,19 @@ public class Bill implements EventChildInterface{
private List<BillLine> billLines; private List<BillLine> billLines;
@JoinColumns({ @JoinColumns({
@JoinColumn(name = "account_event_id", referencedColumnName = "entity_id", nullable = false, updatable=false,insertable=false), @JoinColumn(name = "account_event_id", referencedColumnName = "entity_id", nullable = false, updatable = false, insertable = false),
@JoinColumn(name = "account_event_event_id", referencedColumnName = "events_pk_id", nullable = false, updatable=false,insertable=false) }) @JoinColumn(name = "account_event_event_id", referencedColumnName = "events_pk_id", nullable = false, updatable = false, insertable = false) })
@OneToOne @OneToOne
private AccountEvent accountEvent; private AccountEvent accountEvent;
@JoinColumn(name = "users_id", referencedColumnName = "users_id", nullable = false) @JoinColumn(name = "users_id", referencedColumnName = "users_id", nullable = false)
@ManyToOne(optional = false) @ManyToOne(optional = false)
private User user; private User user;
@ManyToOne @ManyToOne
@JoinColumn(name = "events_id", referencedColumnName = "events_id") @JoinColumn(name = "events_id", referencedColumnName = "events_id")
private Event event; private Event event;
@Override @Override
public EventPk getId() { public EventPk getId() {
return id; return id;
...@@ -90,8 +84,6 @@ public class Bill implements EventChildInterface{ ...@@ -90,8 +84,6 @@ public class Bill implements EventChildInterface{
this.id = id; this.id = id;
} }
@Version @Version
@Column(nullable = false) @Column(nullable = false)
private int jpaVersionField; private int jpaVersionField;
...@@ -204,7 +196,8 @@ public class Bill implements EventChildInterface{ ...@@ -204,7 +196,8 @@ public class Bill implements EventChildInterface{
} }
/** /**
* @param event the event to set * @param event
* the event to set
*/ */
public void setEvent(Event event) { public void setEvent(Event event) {
this.event = event; this.event = event;
......
...@@ -15,14 +15,15 @@ import javax.persistence.NamedQueries; ...@@ -15,14 +15,15 @@ import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery; import javax.persistence.NamedQuery;
import javax.persistence.OneToMany; import javax.persistence.OneToMany;
import javax.persistence.Table; import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import javax.persistence.Version; import javax.persistence.Version;
/** /**
* *
*/ */
@Entity @Entity
@Table(name = "event_log_types") @Table(name = "event_log_types", uniqueConstraints = { @UniqueConstraint(columnNames = { "events_pk_id", "logentry_name" }) })
@NamedQueries( { @NamedQueries({
@NamedQuery(name = "LogEntryType.findAll", query = "SELECT l FROM LogEntryType l"), @NamedQuery(name = "LogEntryType.findAll", query = "SELECT l FROM LogEntryType l"),
@NamedQuery(name = "LogEntryType.findByName", query = "SELECT l FROM LogEntryType l WHERE l.name = :name"), @NamedQuery(name = "LogEntryType.findByName", query = "SELECT l FROM LogEntryType l WHERE l.name = :name"),
@NamedQuery(name = "LogEntryType.findByDescription", query = "SELECT l FROM LogEntryType l WHERE l.description = :description") }) @NamedQuery(name = "LogEntryType.findByDescription", query = "SELECT l FROM LogEntryType l WHERE l.description = :description") })
...@@ -33,13 +34,19 @@ public class LogEntryType implements EventChildInterface { ...@@ -33,13 +34,19 @@ public class LogEntryType implements EventChildInterface {
@EmbeddedId @EmbeddedId
private EventPk id; private EventPk id;
@Column(name = "event_type_name", nullable = false) /**
* Do not change this.. log entries are added to this field..
*/
@Column(name = "logentry_name", nullable = false, updatable = false)
private String name; private String name;
@Lob @Lob
@Column(name = "event_type_description", nullable = false) @Column(name = "event_type_description", nullable = false)
private String description; private String description;
/**
* Entries of this type of entrytypes...
*/
@OneToMany(cascade = CascadeType.ALL, mappedBy = "type") @OneToMany(cascade = CascadeType.ALL, mappedBy = "type")
private List<LogEntry> logEntries; private List<LogEntry> logEntries;
...@@ -47,6 +54,12 @@ public class LogEntryType implements EventChildInterface { ...@@ -47,6 +54,12 @@ public class LogEntryType implements EventChildInterface {
@Column(nullable = false) @Column(nullable = false)
private int jpaVersionField; private int jpaVersionField;
/**
* Admins can change the loglevel of EntryTypes to receive eg. email for
* certain entry types.
*/
private int logLevel = 1;
public LogEntryType() { public LogEntryType() {
} }
...@@ -143,4 +156,12 @@ public class LogEntryType implements EventChildInterface { ...@@ -143,4 +156,12 @@ public class LogEntryType implements EventChildInterface {
public String getName() { public String getName() {
return name; return name;
} }
public void setLogLevel(int logLevel) {
this.logLevel = logLevel;
}
public int getLogLevel() {
return logLevel;
}
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!