package models;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Version;
import play.db.ebean.Model;
import play.utils.dao.TimestampModel;
@Entity
@Table(name="TBL_ACTION")
@SuppressWarnings("serial")
public class Action extends Model implements TimestampModel<Long> {
@Id
private Long key;
@Enumerated(value=EnumType.STRING)
private ActionType actionType;
@Basic
private Date createdOn;
@Basic
private Date updatedOn;
@Version
private int revision;
@OneToOne
private Post targetPost;
@OneToOne
private Comment targetComment;
@OneToOne
private User targetUser;
@ManyToOne
@JoinColumn(name = "created_by", nullable = false)
private User createdBy;
public Date getCreatedOn() {
return createdOn;
}
public void setCreatedOn(Date createdOn) {
this.createdOn = createdOn;
}
public Long getKey() {
return key;
}
public void setKey(Long key) {
this.key = key;
}
public int getRevision() {
return revision;
}
public void setRevision(int revision) {
this.revision = revision;
}
public Date getUpdatedOn() {
return updatedOn;
}
public void setUpdatedOn(Date updatedOn) {
this.updatedOn = updatedOn;
}
public User getCreatedBy() {
return createdBy;
}
public void setCreatedBy(User createdBy) {
this.createdBy = createdBy;
}
public ActionType getType() {
return actionType;
}
public void setType(ActionType type) {
this.actionType = type;
}
public Post getTargetPost() {
return targetPost;
}
public void setTargetPost(Post targetPost) {
this.targetPost = targetPost;
}
public Comment getTargetComment() {
return targetComment;
}
public void setTargetComment(Comment targetComment) {
this.targetComment = targetComment;
}
public User getTargetUser() {
return targetUser;
}
public void setTargetUser(User targetUser) {
this.targetUser = targetUser;
}
@Override
public String toString() {
return "Action [key=" + key + ", type=" + actionType + ", createdOn="
+ createdOn + ", updatedOn=" + updatedOn + ", revision="
+ revision + ", targetPost=" + targetPost + ", targetComment="
+ targetComment + ", targetUser=" + targetUser + ", createdBy="
+ createdBy + "]";
}
}