+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;
+ }
+
+ 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.
+ */
+ public boolean parseCommandlineArguments(final String[] args) {
+ final boolean parsingSucceeded = parser.parse(args);
+
+ if (!parsingSucceeded)
+ parser.showHelp();
+
+ return parsingSucceeded;
+ }