Fix cover file not sent over wire
[fanfix.git] / src / be / nikiroo / fanfix / output / BasicOutput.java
index 9bf096cca1ef8f5b7e5594694dc88da558f2ec11..30c2ac66642d2608391b8543af76a9366e679b9e 100644 (file)
@@ -45,6 +45,7 @@ public abstract class BasicOutput {
 
                ;
 
+               @Override
                public String toString() {
                        return super.toString().toLowerCase();
                }
@@ -94,7 +95,8 @@ public abstract class BasicOutput {
                }
 
                /**
-                * Call {@link OutputType#valueOf(String.toUpperCase())}.
+                * Call {@link OutputType#valueOf(String)} after conversion to upper
+                * case.
                 * 
                 * @param typeName
                 *            the possible type name
@@ -107,36 +109,41 @@ public abstract class BasicOutput {
                }
 
                /**
-                * Call {@link OutputType#valueOf(String.toUpperCase())} but return NULL
-                * for NULL and empty instead of raising an exception.
+                * Call {@link OutputType#valueOf(String)} after conversion to upper
+                * case but return def for NULL and empty instead of raising an
+                * exception.
                 * 
                 * @param typeName
                 *            the possible type name
+                * @param def
+                *            the default value
                 * 
                 * @return NULL or the type
                 */
-               public static OutputType valueOfNullOkUC(String typeName) {
+               public static OutputType valueOfNullOkUC(String typeName, OutputType def) {
                        if (typeName == null || typeName.isEmpty()) {
-                               return null;
+                               return def;
                        }
 
                        return OutputType.valueOfUC(typeName);
                }
 
                /**
-                * Call {@link OutputType#valueOf(String.toUpperCase())} but return NULL
-                * in case of error instead of raising an exception.
+                * Call {@link OutputType#valueOf(String)} after conversion to upper
+                * case but return def in case of error instead of raising an exception.
                 * 
                 * @param typeName
                 *            the possible type name
+                * @param def
+                *            the default value
                 * 
                 * @return NULL or the type
                 */
-               public static OutputType valueOfAllOkUC(String typeName) {
+               public static OutputType valueOfAllOkUC(String typeName, OutputType def) {
                        try {
                                return OutputType.valueOfUC(typeName);
                        } catch (Exception e) {
-                               return null;
+                               return def;
                        }
                }
        }
@@ -175,15 +182,19 @@ public abstract class BasicOutput {
                        throws IOException {
                storyPg = pg;
 
-               target = new File(target).getAbsolutePath();
-               File targetDir = new File(target).getParentFile();
-               String targetName = new File(target).getName();
-
-               String ext = getDefaultExtension(false);
-               if (ext != null && !ext.isEmpty()) {
-                       if (targetName.toLowerCase().endsWith(ext)) {
-                               targetName = targetName.substring(0,
-                                               targetName.length() - ext.length());
+               File targetDir = null;
+               String targetName = null;
+               if (target != null) {
+                       target = new File(target).getAbsolutePath();
+                       targetDir = new File(target).getParentFile();
+                       targetName = new File(target).getName();
+
+                       String ext = getDefaultExtension(false);
+                       if (ext != null && !ext.isEmpty()) {
+                               if (targetName.toLowerCase().endsWith(ext)) {
+                                       targetName = targetName.substring(0, targetName.length()
+                                                       - ext.length());
+                               }
                        }
                }
 
@@ -229,14 +240,34 @@ public abstract class BasicOutput {
                return type;
        }
 
+       /**
+        * Enable the creation of a .info file next to the resulting processed file.
+        * 
+        * @return TRUE to enable it
+        */
+       protected boolean isWriteInfo() {
+               return writeInfo;
+       }
+
+       /**
+        * Enable the creation of a cover file next to the resulting processed file
+        * if possible.
+        * 
+        * @return TRUE to enable it
+        */
+       protected boolean isWriteCover() {
+               return writeCover;
+       }
+
        /**
         * The output type.
         * 
         * @param type
         *            the new type
-        * @param infoCover
-        *            TRUE to enable the creation of a .info file and a cover if
-        *            possible
+        * @param writeInfo
+        *            TRUE to enable the creation of a .info file
+        * @param writeCover
+        *            TRUE to enable the creation of a cover if possible
         * 
         * @return this
         */
@@ -259,25 +290,32 @@ public abstract class BasicOutput {
         * 
         * @return the extension
         */
-       public String getDefaultExtension(boolean readerTarget) {
+       public String getDefaultExtension(
+                       @SuppressWarnings("unused") boolean readerTarget) {
                return "";
        }
 
+       @SuppressWarnings("unused")
        protected void writeStoryHeader(Story story) throws IOException {
        }
 
+       @SuppressWarnings("unused")
        protected void writeChapterHeader(Chapter chap) throws IOException {
        }
 
+       @SuppressWarnings("unused")
        protected void writeParagraphHeader(Paragraph para) throws IOException {
        }
 
+       @SuppressWarnings("unused")
        protected void writeStoryFooter(Story story) throws IOException {
        }
 
+       @SuppressWarnings("unused")
        protected void writeChapterFooter(Chapter chap) throws IOException {
        }
 
+       @SuppressWarnings("unused")
        protected void writeParagraphFooter(Paragraph para) throws IOException {
        }
 
@@ -359,6 +397,7 @@ public abstract class BasicOutput {
                writeParagraphFooter(para);
        }
 
+       @SuppressWarnings("unused")
        protected void writeTextLine(ParagraphType type, String line)
                        throws IOException {
        }