package de.asideas.crowdsource.domain.model; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; import org.joda.time.DateTime; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.Id; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.mongodb.core.mapping.DBRef; import org.springframework.data.mongodb.core.mapping.Document; // needed for serialization @Document(collection = "comments") public class CommentEntity { public static final String COLLECTION_NAME = "comments"; @Id private String id; @DBRef private ProjectEntity project; @DBRef private UserEntity user; private String comment; @CreatedDate private DateTime createdDate; @LastModifiedDate private DateTime lastModifiedDate; public CommentEntity(ProjectEntity projectEntity, UserEntity commentingUser, String comment) { this.project = projectEntity; this.user = commentingUser; this.comment = comment; } public CommentEntity() { } public String getId() { return this.id; } public ProjectEntity getProject() { return this.project; } public UserEntity getUser() { return this.user; } public String getComment() { return this.comment; } public DateTime getCreatedDate() { return this.createdDate; } public DateTime getLastModifiedDate() { return this.lastModifiedDate; } public void setId(String id) { this.id = id; } public void setProject(ProjectEntity project) { this.project = project; } public void setUser(UserEntity user) { this.user = user; } public void setComment(String comment) { this.comment = comment; } public void setCreatedDate(DateTime createdDate) { this.createdDate = createdDate; } public void setLastModifiedDate(DateTime lastModifiedDate) { this.lastModifiedDate = lastModifiedDate; } @Override public boolean equals(Object o) { return EqualsBuilder.reflectionEquals(this, o); } @Override public int hashCode() { return HashCodeBuilder.reflectionHashCode(this); } @Override public String toString() { return ToStringBuilder.reflectionToString(this); } }