package org.kalipo.domain; import com.fasterxml.jackson.annotation.JsonInclude; import org.joda.time.DateTime; import org.kalipo.validation.ModelExistsConstraint; import org.springframework.beans.BeanUtils; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Field; import javax.validation.constraints.NotNull; import java.io.Serializable; /** * A Vote. */ @Document(collection = "T_VOTE") @JsonInclude(JsonInclude.Include.NON_NULL) public class Vote implements Serializable, Anonymizable<Vote> { @Id private String id; @NotNull(message = "{constraint.notnull.authorId}") private String authorId; @NotNull(message = "{constraint.notnull.commentId}") @Field("comment_id") @ModelExistsConstraint(Comment.class) private String commentId; private String threadId; private boolean like; @CreatedDate private DateTime createdDate; @Override public String getThreadId() { return threadId; } public void setThreadId(String threadId) { this.threadId = threadId; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getAuthorId() { return authorId; } public void setAuthorId(String authorId) { this.authorId = authorId; } public String getCommentId() { return commentId; } public void setCommentId(String commentId) { this.commentId = commentId; } public boolean isLike() { return like; } public void setLike(boolean like) { this.like = like; } public DateTime getCreatedDate() { return createdDate; } public void setCreatedDate(DateTime createdDate) { this.createdDate = createdDate; } @Override public Vote anonymized() { Vote a = new Vote(); BeanUtils.copyProperties(this, a); a.setAuthorId(null); a.setCreatedDate(null); return a; } }