Add more warnings source to 1.6) and fix warnings
[nikiroo-utils.git] / src / be / nikiroo / fanfix / output / BasicOutput.java
index 1342eb03016189535039fedf322f41cadcb92ff7..4607827b14e8010e98b844d0becd3c3df2e61463 100644 (file)
@@ -11,7 +11,7 @@ import be.nikiroo.fanfix.data.Chapter;
 import be.nikiroo.fanfix.data.Paragraph;
 import be.nikiroo.fanfix.data.Paragraph.ParagraphType;
 import be.nikiroo.fanfix.data.Story;
-import be.nikiroo.utils.ui.Progress;
+import be.nikiroo.utils.Progress;
 
 /**
  * This class is the base class used by the other output classes. It can be used
@@ -45,6 +45,7 @@ public abstract class BasicOutput {
 
                ;
 
+               @Override
                public String toString() {
                        return super.toString().toLowerCase();
                }
@@ -52,15 +53,23 @@ public abstract class BasicOutput {
                /**
                 * A description of this output type.
                 * 
+                * @param longDesc
+                *            TRUE for the long description, FALSE for the short one
+                * 
                 * @return the description
                 */
-               public String getDesc() {
-                       String desc = Instance.getTrans().getStringX(StringId.OUTPUT_DESC,
-                                       this.name());
+               public String getDesc(boolean longDesc) {
+                       StringId id = longDesc ? StringId.OUTPUT_DESC
+                                       : StringId.OUTPUT_DESC_SHORT;
+
+                       String desc = Instance.getTrans().getStringX(id, this.name());
+
+                       if (desc == null) {
+                               desc = Instance.getTrans().getString(id, this);
+                       }
 
                        if (desc == null) {
-                               desc = Instance.getTrans()
-                                               .getString(StringId.OUTPUT_DESC, this);
+                               desc = this.toString();
                        }
 
                        return desc;
@@ -69,19 +78,25 @@ public abstract class BasicOutput {
                /**
                 * The default extension to add to the output files.
                 * 
+                * @param readerTarget
+                *            the target to point to to read the {@link Story} (for
+                *            instance, the main entry point if this {@link Story} is in
+                *            a directory bundle)
+                * 
                 * @return the extension
                 */
-               public String getDefaultExtension() {
+               public String getDefaultExtension(boolean readerTarget) {
                        BasicOutput output = BasicOutput.getOutput(this, false);
                        if (output != null) {
-                               return output.getDefaultExtension();
+                               return output.getDefaultExtension(readerTarget);
                        }
 
                        return null;
                }
 
                /**
-                * Call {@link OutputType#valueOf(String.toUpperCase())}.
+                * Call {@link OutputType#valueOf(String)} after conversion to upper
+                * case.
                 * 
                 * @param typeName
                 *            the possible type name
@@ -94,8 +109,9 @@ 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 NULL for NULL and empty instead of raising an
+                * exception.
                 * 
                 * @param typeName
                 *            the possible type name
@@ -111,8 +127,9 @@ public abstract class BasicOutput {
                }
 
                /**
-                * 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 NULL in case of error instead of raising an
+                * exception.
                 * 
                 * @param typeName
                 *            the possible type name
@@ -162,15 +179,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();
-               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());
+                               }
                        }
                }
 
@@ -221,9 +242,10 @@ public abstract class BasicOutput {
         * 
         * @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
         */
@@ -239,27 +261,39 @@ public abstract class BasicOutput {
        /**
         * The default extension to add to the output files.
         * 
+        * @param readerTarget
+        *            the target to point to to read the {@link Story} (for
+        *            instance, the main entry point if this {@link Story} is in a
+        *            directory bundle)
+        * 
         * @return the extension
         */
-       public String getDefaultExtension() {
+       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 {
        }
 
@@ -341,6 +375,7 @@ public abstract class BasicOutput {
                writeParagraphFooter(para);
        }
 
+       @SuppressWarnings("unused")
        protected void writeTextLine(ParagraphType type, String line)
                        throws IOException {
        }