package org.cnodejs.android.md.model.entity;
import com.google.gson.annotations.SerializedName;
import org.cnodejs.android.md.model.api.ApiDefine;
import org.cnodejs.android.md.util.FormatUtils;
import org.joda.time.DateTime;
public class Topic extends TopicSimple {
@SerializedName("author_id")
private String authorId;
private TabType tab;
private String content;
private boolean good;
private boolean top;
@SerializedName("reply_count")
private int replyCount;
@SerializedName("visit_count")
private int visitCount;
@SerializedName("create_at")
private DateTime createAt;
public String getAuthorId() {
return authorId;
}
public void setAuthorId(String authorId) {
this.authorId = authorId;
}
public TabType getTab() {
return tab == null ? TabType.unknown : tab; // 接口中有些话题没有Tab属性,这里保证Tab不为空
}
public void setTab(TabType tab) {
this.tab = tab;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
contentHtml = null; // 清除已经处理的Html渲染缓存
}
public boolean isGood() {
return good;
}
public void setGood(boolean good) {
this.good = good;
}
public boolean isTop() {
return top;
}
public void setTop(boolean top) {
this.top = top;
}
public int getReplyCount() {
return replyCount;
}
public void setReplyCount(int replyCount) {
this.replyCount = replyCount;
}
public int getVisitCount() {
return visitCount;
}
public void setVisitCount(int visitCount) {
this.visitCount = visitCount;
}
public DateTime getCreateAt() {
return createAt;
}
public void setCreateAt(DateTime createAt) {
this.createAt = createAt;
}
/**
* Html渲染缓存
*/
@SerializedName("content_html")
private String contentHtml;
public String getContentHtml() {
if (contentHtml == null) {
if (ApiDefine.MD_RENDER) {
contentHtml = FormatUtils.handleHtml(content);
} else {
contentHtml = FormatUtils.handleHtml(FormatUtils.renderMarkdown(content));
}
}
return contentHtml;
}
}