package com.github.andlyticsproject.model;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import android.annotation.SuppressLint;
@SuppressLint("SimpleDateFormat")
public class CommentGroup {
private SimpleDateFormat DATE_FMT = new SimpleDateFormat("yyyyMMdd");
// both non-null
private Date date;
// comments are grouped by date, we ignore HH:mm:ss and use
// this for comparison/searches
private String yyyymmddDate;
private List<Comment> comments = new ArrayList<Comment>();
public CommentGroup(Date date) {
setDate(date);
}
public CommentGroup(Comment comment) {
Date date = comment.isReply() ? comment.getOriginalCommentDate() : comment.getDate();
setDate(date);
comments.add(comment);
}
public Date getDate() {
return date = (Date) date.clone();
}
public void setDate(Date date) {
this.date = (Date) date.clone();
this.yyyymmddDate = DATE_FMT.format(date);
}
public String getFormattedDate() {
return yyyymmddDate;
}
public List<Comment> getComments() {
return comments;
}
public void addComment(Comment comment) {
comments.add(comment);
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + yyyymmddDate.hashCode();
return result;
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof CommentGroup)) {
return false;
}
CommentGroup rhs = (CommentGroup) obj;
if (date == null && rhs.date != null) {
return false;
}
return yyyymmddDate.equals(rhs.yyyymmddDate);
}
@Override
public String toString() {
return "CommentGroup " + yyyymmddDate;
}
}