Merge branch 'master' into subtree
[nikiroo-utils.git] / library / BasicLibrary.java
index 78f0f6208d098dcaf410e85c631dc3808330a2bd..f77d0edcef5ae64b186942be2a6048fa7eca7745 100644 (file)
@@ -41,11 +41,11 @@ abstract public class BasicLibrary {
                READ_WRITE,
                /** The library is ready, but read-only. */
                READ_ONLY,
-               /** The library is invalid (not correctly set up). */
-               INVALID,
                /** You are not allowed to access this library. */
                UNAUTHORIZED,
-               /** The library is currently out of commission. */
+               /** The library is invalid, and will never work as is. */
+               INVALID,
+               /** The library is currently out of commission, but may work later. */
                UNAVAILABLE;
 
                /**
@@ -311,7 +311,7 @@ abstract public class BasicLibrary {
         * 
         * @return the next luid
         */
-       protected abstract int getNextId();
+       protected abstract String getNextId();
 
        /**
         * Delete the target {@link Story}.
@@ -475,6 +475,8 @@ abstract public class BasicLibrary {
 
        /**
         * Retrieve a specific {@link Story}.
+        * <p>
+        * Note that it will update both the cover and the resume in <tt>meta</tt>.
         * 
         * @param luid
         *            the Library UID of the story
@@ -513,6 +515,8 @@ abstract public class BasicLibrary {
 
        /**
         * Retrieve a specific {@link Story}.
+        * <p>
+        * Note that it will update both the cover and the resume in <tt>meta</tt>.
         * 
         * @param luid
         *            the LUID of the story
@@ -595,6 +599,28 @@ abstract public class BasicLibrary {
         *             in case of I/O error
         */
        public MetaData imprt(URL url, Progress pg) throws IOException {
+               return imprt(url, null, pg);
+       }
+
+       /**
+        * Import the {@link Story} at the given {@link URL} into the
+        * {@link BasicLibrary}.
+        * 
+        * @param url
+        *            the {@link URL} to import
+        * @param luid
+        *            the LUID to use
+        * @param pg
+        *            the optional progress reporter
+        * 
+        * @return the imported Story {@link MetaData}
+        * 
+        * @throws UnknownHostException
+        *             if the host is not supported
+        * @throws IOException
+        *             in case of I/O error
+        */
+       MetaData imprt(URL url, String luid, Progress pg) throws IOException {
                if (pg == null)
                        pg = new Progress();
 
@@ -609,7 +635,7 @@ abstract public class BasicLibrary {
                        throw new UnknownHostException("" + url);
                }
 
-               Story story = save(support.process(pgProcess), pgSave);
+               Story story = save(support.process(pgProcess), luid, pgSave);
                pg.done();
 
                return story.getMeta();
@@ -741,7 +767,7 @@ abstract public class BasicLibrary {
                pg.setName("Saving story");
 
                if (luid == null || luid.isEmpty()) {
-                       meta.setLuid(String.format("%03d", getNextId()));
+                       meta.setLuid(getNextId());
                } else {
                        meta.setLuid(luid);
                }