Updated copyright message.
[meviz.git] / src / main / java / eu / svjatoslav / meviz / htmlindexer / CommandlineHandler.java
index 6095673..d4e9758 100755 (executable)
@@ -1,7 +1,7 @@
 /*
  * Meviz - Various tools collection to work with multimedia.
- * Copyright (C) 2012, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- * 
+ * Copyright (C) 2012 -- 2018, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
+ *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of version 2 of the GNU General Public License
  * as published by the Free Software Foundation.
@@ -9,55 +9,52 @@
 
 package eu.svjatoslav.meviz.htmlindexer;
 
-import java.io.File;
-
-import eu.svjatoslav.commons.commandline.parameterparser.Parameter;
 import eu.svjatoslav.commons.commandline.parameterparser.Parser;
+import eu.svjatoslav.commons.commandline.parameterparser.parameter.DirectoryParameter;
+import eu.svjatoslav.commons.commandline.parameterparser.parameter.NullParameter;
+import eu.svjatoslav.commons.commandline.parameterparser.parameter.StringParameter;
 import eu.svjatoslav.meviz.encoder.EncodingOptions;
 
-public class CommandlineHandler {
-
-    Parameter galleryNameParameter = new Parameter(false, true, false,
-            new eu.svjatoslav.commons.commandline.parameterparser.arguments.String(), "Gallery title. (default is: "
-                    + Constants.DEFAULT_GALLERY_TITLE + ").", "-t", "--gallery-title");
-
-    Parameter workingDirectoryParameter = new Parameter(false, true, true,
-            new eu.svjatoslav.commons.commandline.parameterparser.arguments.String(), "Working directory.", "-w",
-            "--working-directory");
-
-    public Parser initParser() {
+import java.io.File;
 
-        final Parser parser = new Parser();
-        parser.addParameter(galleryNameParameter);
-        parser.addParameter(workingDirectoryParameter);
+class CommandlineHandler {
+
+    final Parser parser = new Parser();
+    final NullParameter removeIndex = parser.add(
+            new NullParameter("Remove generated index")).addAliases("-r",
+            "--remove");
+    private final StringParameter galleryNameParameter = parser.add(
+            new StringParameter("Gallery title. (default is: "
+                    + Constants.DEFAULT_GALLERY_TITLE + ").")).addAliases("-t",
+            "--gallery-title");
+    private final DirectoryParameter workingDirectoryParameter = parser
+            .add(new DirectoryParameter("Working directory."))
+            .addAliases("-w", "--working-directory").mustExist();
+
+    public String getGalleryTitle() {
+        if (galleryNameParameter.isSpecified())
+            return galleryNameParameter.getValue();
+        return Constants.DEFAULT_GALLERY_TITLE;
+    }
 
-        return parser;
+    public File getWorkingDirectory() {
+        if (workingDirectoryParameter.isSpecified())
+            return workingDirectoryParameter.getValue();
+        else
+            return new File(System.getProperty("user.dir"));
     }
 
     /**
      * @return {@link EncodingOptions} if commandline arguments were
-     *         successfully parsed, or <code>null</code> if parsing error
-     *         occurred.
+     * successfully parsed, or <code>null</code> if parsing error
+     * occurred.
      */
-    public IndexingOptions parseCommandlineArguments(final String[] args) {
-
-        final IndexingOptions options = new IndexingOptions();
-
-        final Parser parser = initParser();
-        if (!parser.parse(args)) {
-            return null;
-        }
-
-        if (galleryNameParameter.isParameterSpecified()) {
-            options.galleryTitle = galleryNameParameter.getArgumentsAsStrings().get(0);
-        }
+    public boolean parseCommandlineArguments(final String[] args) {
+        final boolean parsingSucceeded = parser.parse(args);
 
-        if (workingDirectoryParameter.isParameterSpecified()) {
-            options.workingDirectory = workingDirectoryParameter.getArgumentsAsFiles().get(0);
-        } else {
-            options.workingDirectory = new File(System.getProperty("user.dir"));
-        }
+        if (!parsingSucceeded)
+            parser.showHelp();
 
-        return options;
+        return parsingSucceeded;
     }
 }