package com.belladati.sdk.report.impl;
import java.util.Date;
import com.belladati.sdk.impl.BellaDatiServiceImpl;
import com.belladati.sdk.report.Comment;
import com.belladati.sdk.user.UserInfo;
import com.belladati.sdk.user.impl.UserInfoImpl;
import com.belladati.sdk.util.impl.BellaDatiSdkUtils;
import com.fasterxml.jackson.databind.JsonNode;
public class CommentImpl implements Comment {
private final String id;
private final String text;
private final Date date;
private final UserInfo authorInfo;
public CommentImpl(BellaDatiServiceImpl service, JsonNode json) {
this.id = json.get("id").asText();
this.text = json.hasNonNull("text") ? json.get("text").asText() : "";
this.authorInfo = new UserInfoImpl(service, json.get("authorId").asText(), json.get("author").asText());
if (json.hasNonNull("when")) {
this.date = BellaDatiSdkUtils.parseJavaUtilDate(json.get("when").asText());
} else {
this.date = null;
}
}
@Override
public String getId() {
return id;
}
@Override
public String getText() {
return text;
}
@Override
public Date getDateTime() {
return date != null ? (Date) date.clone() : null;
}
@Override
public UserInfo getAuthorInfo() {
return authorInfo;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof CommentImpl) {
return id.equals(((CommentImpl) obj).id);
}
return false;
}
@Override
public int hashCode() {
return id.hashCode();
}
@Override
public String toString() {
return text;
}
}