package org.gcube.portal.databook.shared; import com.datastax.oss.driver.api.core.cql.Row; import java.io.Serializable; import java.util.Date; import java.util.Objects; import static org.gcube.portal.databook.server.Schema.*; import static org.gcube.portal.databook.server.Schema.THUMBNAIL_URL; /** * * @author Massimiliano Assante, ISTI-CNR * @version 0.1 July 2012 * */ @SuppressWarnings("serial") public class Comment implements Serializable, Comparable { private String key; private String userid; private Date time; private String postid; private String text; private String fullName; private String thumbnailURL; private boolean isEdit; // false default private Date lastEditTime; // null default /** * */ public Comment() { super(); } /** * * @param key * @param userid * @param time * @param postid * @param text * @param fullName * @param thumbnailURL */ public Comment(String key, String userid, Date time, String postid, String text, String fullName, String thumbnailURL) { super(); this.key = key; this.userid = userid; this.time = time; this.postid = postid; this.text = text; this.fullName = fullName; this.thumbnailURL = thumbnailURL; this.isEdit = false; this.lastEditTime = null; } /** * Constructor for edited comment * @param key * @param userid * @param time * @param postid * @param text * @param fullName * @param thumbnailURL * @param isEdit * @param editDate */ public Comment(String key, String userid, Date time, String postid, String text, String fullName, String thumbnailURL, boolean isEdit, Date editDate) { super(); this.key = key; this.userid = userid; this.time = time; this.postid = postid; this.text = text; this.fullName = fullName; this.thumbnailURL = thumbnailURL; this.isEdit = isEdit; this.lastEditTime = editDate; } public Comment(Row record) { super(); this.key = Objects.requireNonNull(record.getUuid(COMMENT_ID)).toString(); this.userid = record.getString(USER_ID); this.time = Date.from(Objects.requireNonNull(record.getInstant(TIMESTAMP))); this.postid = Objects.requireNonNull(record.getUuid(POST_ID)).toString(); this.fullName = record.getString(FULL_NAME); this.thumbnailURL = record.getString(THUMBNAIL_URL); this.text = record.getString(COMMENT); this.isEdit = !record.isNull(IS_EDIT) && record.getBoolean(IS_EDIT); this.lastEditTime = record.isNull(LAST_EDIT_TIME)? null : Date.from(Objects.requireNonNull(record.getInstant(LAST_EDIT_TIME))); } /** * * @return the text */ public String getText() { return text; } /** * * @param text text to add as string */ public void setText(String text) { this.text = text; } /** * * @return the uuid */ public String getKey() { return key; } public void setKey(String key) { this.key = key; } public String getUserid() { return userid; } public void setUserid(String userid) { this.userid = userid; } public Date getTime() { return time; } public void setTime(Date time) { this.time = time; } public String getpostid() { return postid; } public void setpostid(String postid) { this.postid = postid; } public String getFullName() { return fullName; } public void setFullName(String fullName) { this.fullName = fullName; } public String getThumbnailURL() { return thumbnailURL; } public void setThumbnailURL(String thumbnailURL) { this.thumbnailURL = thumbnailURL; } public boolean isEdit() { return isEdit; } public void setEdit(boolean isEdit) { this.isEdit = isEdit; } public Date getLastEditTime() { return lastEditTime; } public void setLastEditTime(Date lastEditTime) { this.lastEditTime = lastEditTime; } public int compareTo(Comment toCompare) { if (this.time.after(toCompare.getTime())) return 1; if (this.time.before(toCompare.getTime())) return -1; return 0; } @Override public String toString() { return "Comment [key=" + key + ", userid=" + userid + ", time=" + time + ", postid=" + postid + ", text=" + text + ", fullName=" + fullName + ", thumbnailURL=" + thumbnailURL + ", isEdit=" + isEdit + ", lastEditTime=" + lastEditTime + "]"; } }