X-Git-Url: http://git.nikiroo.be/?p=fanfix.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2FLibrary.java;h=0d9e067f30dcb6c24fe2e3a1e48fa098464f04e9;hp=68f93c5385c66ea52c7f4bd2fd6d43eb8ed8bb3b;hb=b4dc6ab518ded2dd92e4cbb02ac615b1d57e8e6d;hpb=a7d266e6616349169d03e93780fb656754089dd0 diff --git a/src/be/nikiroo/fanfix/Library.java b/src/be/nikiroo/fanfix/Library.java index 68f93c5..0d9e067 100644 --- a/src/be/nikiroo/fanfix/Library.java +++ b/src/be/nikiroo/fanfix/Library.java @@ -52,6 +52,23 @@ public class Library { dir.mkdirs(); } + /** + * List all the known types of stories. + * + * @return the types + */ + public List getTypes() { + List list = new ArrayList(); + for (Entry entry : getStories().entrySet()) { + String storyType = entry.getValue().getParentFile().getName(); + if (!list.contains(storyType)) { + list.add(storyType); + } + } + + return list; + } + /** * List all the stories of the given source type in the {@link Library}, or * all the stories if NULL is passed as a type. @@ -61,13 +78,11 @@ public class Library { * * @return the stories */ - public List getList(SupportType type) { - String typeString = type == null ? null : type.getSourceName(); - + public List getList(String type) { List list = new ArrayList(); for (Entry entry : getStories().entrySet()) { String storyType = entry.getValue().getParentFile().getName(); - if (typeString == null || typeString.equalsIgnoreCase(storyType)) { + if (type == null || type.equalsIgnoreCase(storyType)) { list.add(entry.getKey()); } } @@ -121,7 +136,7 @@ public class Library { * @param luid * the Library UID of the story * - * @return the corresponding {@link Story} + * @return the corresponding {@link Story} or NULL if not found */ public Story getStory(String luid) { if (luid != null) { @@ -194,6 +209,11 @@ public class Library { throw new IOException("Output type not supported: " + type); } + Story story = getStory(luid); + if (story == null) { + throw new IOException("Cannot find story to export: " + luid); + } + return out.process(getStory(luid), target); } @@ -226,7 +246,7 @@ public class Library { * @throws IOException * in case of I/O error */ - private Story save(Story story, String luid) throws IOException { + public Story save(Story story, String luid) throws IOException { // Do not change the original metadata, but change the original story MetaData key = story.getMeta().clone(); story.setMeta(key);