package models; import java.util.Date; import javax.persistence.Basic; import javax.persistence.Column; 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.Table; import javax.persistence.Version; import play.data.validation.Constraints.MaxLength; import play.data.validation.Constraints.Required; import play.db.ebean.Model; import play.utils.dao.TimestampModel; @Entity @Table(name="TBL_COMMENT") @SuppressWarnings("serial") public class Comment extends Model implements TimestampModel<Long>, Owned<Long>, ActionSubject { @Id private Long key; @Required @Column(length=2048, nullable = true) @MaxLength(2000) private String content; @Basic private Date createdOn; @Basic private Date updatedOn; @Basic private Date approvedOn; @Basic private String creatorIp; @Version private int revision; @Basic private String modifierIp; @ManyToOne @JoinColumn(name="postKey", nullable=false) private Post post; @ManyToOne @JoinColumn(name="created_by", nullable=false) private User createdBy; @ManyToOne @JoinColumn(name="updated_by", nullable=true) private User updatedBy; @ManyToOne @JoinColumn(name = "approved_by", nullable = true) private User approvedBy; @Enumerated(value=EnumType.STRING) private ContentStatus status = ContentStatus.NEW; @Override public void associate(Action action) { action.setTargetComment(this); } public Long getKey() { return key; } public void setKey(Long key) { this.key = key; } public Post getPost() { return post; } public void setPost(Post post) { this.post = post; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public Date getCreatedOn() { return createdOn; } public void setCreatedOn(Date createdOn) { this.createdOn = createdOn; } public Date getUpdatedOn() { return updatedOn; } public void setUpdatedOn(Date updatedOn) { this.updatedOn = updatedOn; } public int getRevision() { return revision; } public void setRevision(int revision) { this.revision = revision; } public User getCreatedBy() { return createdBy; } public void setCreatedBy(User createdBy) { this.createdBy = createdBy; } public User getUpdatedBy() { return updatedBy; } public void setUpdatedBy(User updatedBy) { this.updatedBy = updatedBy; } public Date getApprovedOn() { return approvedOn; } public void setApprovedOn(Date approvedOn) { this.approvedOn = approvedOn; } public User getApprovedBy() { return approvedBy; } public void setApprovedBy(User approvedBy) { this.approvedBy = approvedBy; } public String getCreatorIp() { return creatorIp; } public void setCreatorIp(String ipToSet) { this.creatorIp = ipToSet; } public String getModifierIp() { return modifierIp; } public void setModifierIp(String ipToSet) { this.modifierIp=ipToSet; } public ContentStatus getStatus() { return status; } public void setStatus(ContentStatus status) { this.status = status; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("Comment [key=").append(key).append(", content=") .append(content).append(", createdOn=").append(createdOn) .append(", updatedOn=").append(updatedOn) .append(", creatorIp=").append(creatorIp) .append(", modifierIp=").append(modifierIp).append(", post=") .append(post).append(", createdBy=").append(createdBy) .append(", updatedBy=").append(updatedBy) .append(", revision=").append(revision).append("]"); return builder.toString(); } }