package be.nikiroo.gofetch.data;
import java.net.URL;
+import java.util.List;
import be.nikiroo.gofetch.support.BasicSupport;
-import be.nikiroo.gofetch.support.BasicSupport.Type;
+import be.nikiroo.gofetch.support.Type;
/**
* A news story.
private Type type;
private String id;
private String title;
+ private String author;
+ private String date;
+ private String category;
private String details;
private String urlInternal;
private String urlExternal;
private String content;
+ private String fullContent;
+ private List<Comment> comments;
+
/**
* Create a news story.
*
* the news ID
* @param title
* the news title
+ * @param author
+ * the author name for the details
+ * @param date
+ * the post date for the details
+ * @param category
+ * the category for the details
* @param details
- * some details to add to the title
+ * some details to add to the title (author, date and category
+ * will be added in the getter if available)
* @param urlInternal
* the {@link URL} to get this news on the associated news site
* @param urlExternal
* @param content
* the story content
*/
- public Story(Type type, String id, String title, String details,
- String urlInternal, String urlExternal, String content) {
+ public Story(Type type, String id, String title, String author,
+ String date, String category, String details, String urlInternal,
+ String urlExternal, String content) {
this.type = type;
this.id = id;
this.title = title;
+ this.author = author;
+ this.date = date;
+ this.category = category;
this.details = details;
this.urlInternal = urlInternal;
this.urlExternal = urlExternal;
this.content = content;
+
+ // Defaults fullContent to content
+ this.fullContent = content;
}
public String getSelector() {
* @return the details
*/
public String getDetails() {
- return details;
+ String details = "";
+
+ if (category != null && !category.trim().isEmpty())
+ details += "[" + category + "] ";
+ if (date != null && !date.trim().isEmpty())
+ details += date + " ";
+ if (author != null && !author.trim().isEmpty())
+ details += "(" + this.author + ") ";
+ if (this.details != null && !this.details.trim().isEmpty())
+ details += "\n" + this.details;
+
+ return details.trim();
}
/**
public String getContent() {
return content;
}
+
+ /**
+ * @return the fullContent
+ */
+ public String getFullContent() {
+ return fullContent;
+ }
+
+ /**
+ * @param fullContent
+ * the fullContent to set
+ */
+ public void setFullContent(String fullContent) {
+ this.fullContent = fullContent;
+ }
+
+ /**
+ * @return the comments
+ */
+ public List<Comment> getComments() {
+ return comments;
+ }
+
+ /**
+ * @param comments
+ * the comments to set
+ */
+ public void setComments(List<Comment> comments) {
+ this.comments = comments;
+ }
+
+ /**
+ * Find a comment or sub-comment by its id.
+ *
+ * @param id
+ * the id to look for F
+ * @return this if it has the given id, or a child of this if the child have
+ * the given id, or NULL if not
+ */
+ public Comment getCommentById(String id) {
+ if (id != null && comments != null) {
+ for (Comment comment : comments) {
+ Comment found = comment.getById(id);
+ if (found != null) {
+ return found;
+ }
+ }
+ }
+
+ return null;
+ }
}
\ No newline at end of file