X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Flibrary%2FBasicLibrary.java;h=9e7d4644494e5b51d871091868c3c1e47d882f53;hb=5895a95876fe63e76e726ef7fc4c97efe2ebd5b1;hp=b11e1ec5276324743b2ea64fb0697d616567c7d4;hpb=ff05b8284e6e415b13d3543650075d0f7cd27ff5;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/library/BasicLibrary.java b/src/be/nikiroo/fanfix/library/BasicLibrary.java index b11e1ec..9e7d464 100644 --- a/src/be/nikiroo/fanfix/library/BasicLibrary.java +++ b/src/be/nikiroo/fanfix/library/BasicLibrary.java @@ -4,6 +4,7 @@ import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.net.URL; +import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -29,6 +30,22 @@ import be.nikiroo.utils.Progress; * @author niki */ abstract public class BasicLibrary { + /** + * A {@link BasicLibrary} status. + * + * @author niki + */ + public enum Status { + /** The library is ready. */ + READY, + /** The library is invalid (not correctly set up). */ + INVALID, + /** You are not allowed to access this library. */ + UNAUTORIZED, + /** The library is currently out of commission. */ + UNAVAILABLE, + } + /** * Return a name for this library (the UI may display this). *
@@ -40,6 +57,15 @@ abstract public class BasicLibrary {
return "";
}
+ /**
+ * The library status.
+ *
+ * @return the current status
+ */
+ public Status getStatus() {
+ return Status.READY;
+ }
+
/**
* Retrieve the main {@link File} corresponding to the given {@link Story},
* which can be passed to an external reader or instance.
@@ -109,7 +135,19 @@ abstract public class BasicLibrary {
* Invalidate the {@link Story} cache (when the content should be re-read
* because it was changed).
*/
- protected abstract void clearCache();
+ protected void invalidateInfo() {
+ invalidateInfo(null);
+ }
+
+ /**
+ * Invalidate the {@link Story} cache (when the content should be re-read
+ * because it was changed).
+ *
+ * @param luid
+ * the luid of the {@link Story} to clear from the cache, or NULL
+ * for all stories
+ */
+ protected abstract void invalidateInfo(String luid);
/**
* Return the next LUID that can be used.
@@ -147,26 +185,14 @@ abstract public class BasicLibrary {
throws IOException;
/**
- * Refresh the {@link BasicLibrary}, that is, make sure all stories are
+ * Refresh the {@link BasicLibrary}, that is, make sure all metas are
* loaded.
*
- * @param full
- * force the full content of the stories to be loaded, not just
- * the {@link MetaData}
- *
* @param pg
* the optional progress reporter
*/
- public void refresh(boolean full, Progress pg) {
- if (full) {
- // TODO: progress
- List