X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Flibrary%2FBasicLibrary.java;h=c6ce22dd24c1c4fa85f60edfdcea7bd5f8de1b05;hb=4452446c58411c3f8e13f1fb5c3eecd0e9140d15;hp=c558384d380526819f36a8dac9553b89d33517ca;hpb=d66deb8d8b30cff6b54db352eef34a3508939f84;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/library/BasicLibrary.java b/src/be/nikiroo/fanfix/library/BasicLibrary.java index c558384..c6ce22d 100644 --- a/src/be/nikiroo/fanfix/library/BasicLibrary.java +++ b/src/be/nikiroo/fanfix/library/BasicLibrary.java @@ -122,6 +122,13 @@ abstract public class BasicLibrary { */ public abstract Image getCover(String luid) throws IOException; + // TODO: ensure it is the main used interface + public synchronized MetaResultList getList(Progress pg) throws IOException { + return new MetaResultList(getMetas(pg)); + } + + //TODO: make something for (normal and custom) not-story covers + /** * Return the cover image associated to this source. *

@@ -245,6 +252,8 @@ abstract public class BasicLibrary { /** * Return the list of stories (represented by their {@link MetaData}, which * MAY not have the cover included). + *

+ * The returned list MUST be a copy, not the original one. * * @param pg * the optional {@link Progress} @@ -336,6 +345,36 @@ abstract public class BasicLibrary { // We will let it fail later } } + + /** + * Check if the {@link Story} denoted by this Library UID is present in the + * cache (if we have no cache, we default to true). + * + * @param luid + * the Library UID + * + * @return TRUE if it is + */ + public boolean isCached(String luid) { + // By default, everything is cached + return true; + } + + /** + * Clear the {@link Story} from the cache, if needed. + *

+ * The next time we try to retrieve the {@link Story}, it may be required to + * cache it again. + * + * @param luid + * the story to clear + * + * @throws IOException + * in case of I/O error + */ + public void clearFromCache(String luid) throws IOException { + // By default, this is a noop. + } /** * List all the known types (sources) of stories. @@ -563,31 +602,23 @@ abstract public class BasicLibrary { } /** - * List all the stories of the given source type in the {@link BasicLibrary} - * , or all the stories if NULL is passed as a type. + * List all the stories of the given source type in the {@link BasicLibrary} , + * or all the stories if NULL is passed as a type. *

* Cover images not included. * - * @param type - * the type of story to retrieve, or NULL for all + * @param source the type of story to retrieve, or NULL for all * * @return the stories * - * @throws IOException - * in case of IOException + * @throws IOException in case of IOException + * + * @deprecated use {@link BasicLibrary#getList(Progress)} and + * {@link MetaResultList#filter(String, String, String)} */ - public synchronized List getListBySource(String type) - throws IOException { - List list = new ArrayList(); - for (MetaData meta : getMetas(null)) { - String storyType = meta.getSource(); - if (type == null || type.equalsIgnoreCase(storyType)) { - list.add(meta); - } - } - - Collections.sort(list); - return list; + @Deprecated + public synchronized List getListBySource(String source) throws IOException { + return getList(null).filter(source, null, null); } /** @@ -603,19 +634,12 @@ abstract public class BasicLibrary { * * @throws IOException * in case of IOException + * + * @deprecated use {@link BasicLibrary#getList(Progress)} and + * {@link MetaResultList#filter(String, String, String)} */ - public synchronized List getListByAuthor(String author) - throws IOException { - List list = new ArrayList(); - for (MetaData meta : getMetas(null)) { - String storyAuthor = meta.getAuthor(); - if (author == null || author.equalsIgnoreCase(storyAuthor)) { - list.add(meta); - } - } - - Collections.sort(list); - return list; + public synchronized List getListByAuthor(String author) throws IOException { + return getList(null).filter(null, author, null); } /**