X-Git-Url: http://git.nikiroo.be/?p=fanfix.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2FLibrary.java;fp=src%2Fbe%2Fnikiroo%2Ffanfix%2FLibrary.java;h=ccbd7d40b67b7e6e78c8b43fd95a999c9eb49285;hp=6e0262b43b1c78ac58406f65807cb2399a027031;hb=4310bae9326894d9a9f5c7d34e552437e1156ddb;hpb=3968a05a8d8c1c9cacc92f8a073f35098e7fd476 diff --git a/src/be/nikiroo/fanfix/Library.java b/src/be/nikiroo/fanfix/Library.java index 6e0262b..ccbd7d4 100644 --- a/src/be/nikiroo/fanfix/Library.java +++ b/src/be/nikiroo/fanfix/Library.java @@ -64,12 +64,53 @@ public class Library { public synchronized List getTypes() { List list = new ArrayList(); for (Entry entry : getStories().entrySet()) { - String storyType = entry.getValue().getParentFile().getName(); + String storyType = entry.getKey().getSource(); if (!list.contains(storyType)) { list.add(storyType); } } + Collections.sort(list); + return list; + } + + /** + * List all the known authors of stories. + * + * @return the authors + */ + public synchronized List getAuthors() { + List list = new ArrayList(); + for (Entry entry : getStories().entrySet()) { + String storyAuthor = entry.getKey().getAuthor(); + if (!list.contains(storyAuthor)) { + list.add(storyAuthor); + } + } + + Collections.sort(list); + return list; + } + + /** + * List all the stories of the given author in the {@link Library}, or all + * the stories if NULL is passed as an author. + * + * @param author + * the author of the stories to retrieve, or NULL for all + * + * @return the stories + */ + public synchronized List getListByAuthor(String author) { + List list = new ArrayList(); + for (Entry entry : getStories().entrySet()) { + String storyAuthor = entry.getKey().getAuthor(); + if (author == null || author.equalsIgnoreCase(storyAuthor)) { + list.add(entry.getKey()); + } + } + + Collections.sort(list); return list; } @@ -82,7 +123,7 @@ public class Library { * * @return the stories */ - public synchronized List getList(String type) { + public synchronized List getListByType(String type) { List list = new ArrayList(); for (Entry entry : getStories().entrySet()) { String storyType = entry.getValue().getParentFile().getName();