X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fgofetch%2Fdata%2FStory.java;h=c0719d2d6b43bcd6812984fa7a59f8b2a8ea8306;hb=6a4d14166b93ceb49db09053b9a4cb09703fdea2;hp=aa5aecc25501d9a90377d1006d6bb180a257c045;hpb=737852686d8897331706ed4b902dbd9d5038cb53;p=gofetch.git diff --git a/src/be/nikiroo/gofetch/data/Story.java b/src/be/nikiroo/gofetch/data/Story.java index aa5aecc..c0719d2 100644 --- a/src/be/nikiroo/gofetch/data/Story.java +++ b/src/be/nikiroo/gofetch/data/Story.java @@ -1,6 +1,7 @@ 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; @@ -14,11 +15,17 @@ public class 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 comments; + /** * Create a news story. * @@ -28,8 +35,15 @@ public class 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 @@ -37,15 +51,22 @@ public class Story { * @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() { @@ -70,7 +91,18 @@ public class Story { * @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(); } /** @@ -93,4 +125,55 @@ public class Story { 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 getComments() { + return comments; + } + + /** + * @param comments + * the comments to set + */ + public void setComments(List 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