package sagan.questions.support; import java.io.Serializable; import java.time.LocalDateTime; import java.util.List; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; @JsonIgnoreProperties(ignoreUnknown = true) class Question implements Serializable { public String title; public String body; public List<String> tags; public String link; public Integer score; @JsonProperty("question_id") public String id; @JsonProperty("is_answered") public boolean isAnswered; @JsonProperty("answer_count") public Integer answerCount; @JsonProperty("view_count") public Integer viewCount; @JsonProperty("creation_date") @JsonDeserialize(using = EpochDeserializer.class) public LocalDateTime creationDate; public User owner; public String getBodySynopsis() { String synopsis = body.replaceAll("\\<(/?[^\\>]+)\\>", ""); return synopsis.substring(0, synopsis.length() > 200 ? 200 : synopsis.length()); } @Override public String toString() { return "Question{" + "id='" + id + '\'' + ", title='" + title + '\'' + ", link='" + link + '\'' + '}'; } }