minor updates
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Fri, 20 Mar 2015 22:02:42 +0000 (00:02 +0200)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Fri, 20 Mar 2015 22:02:42 +0000 (00:02 +0200)
+ slight code refactoring
+ documentation update

doc/index.html
doc/index.org
src/main/java/eu/svjatoslav/commons/commandline/parameterparser/ArgumentCount.java
src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parameter.java
src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parser.java

index ca5ad74..61599bf 100644 (file)
@@ -4,7 +4,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
 <head>
 <title>Svjatoslav Commons - Java library of commonly used functions</title>
-<!-- 2015-03-01 Sun 19:03 -->
+<!-- 2015-03-21 Sat 00:00 -->
 <meta  http-equiv="Content-Type" content="text/html;charset=utf-8" />
 <meta  name="generator" content="Org-mode" />
 <meta  name="author" content="Svjatoslav Agejenko" />
@@ -180,15 +180,30 @@ License</a> or later as published by the Free Software Foundation.
 Library contains:
 </p>
 <ul class="org-ul">
-<li>Wildcards matcher. (?, *)
+<li>Commandline Interface helper
 </li>
 
 <li>Commandline arguments parser and validator.
 </li>
 
+<li>Bit input and output streams.
+</li>
+
+<li>Slightly enhanced data input and output streams.
+</li>
+
+<li>Byte array to HEX string converter.
+</li>
+
+<li>Utility that tries to quess user desktop directory.
+</li>
+
 <li>File path parser.
 </li>
 
+<li>File IO helper.
+</li>
+
 <li>Graphical error dialog.
 <ul class="org-ul">
 <li>Reusable graphical dialog to capture and show program exceptions
@@ -197,13 +212,22 @@ and associated program call stack traceback.
 </ul>
 </li>
 
-<li>Primitive URL parameters encoder / decoder.
+<li>Primitive and simple component to add navigation menus to the web
+sites.
+</li>
+
+<li>String tokenizer.
+</li>
+
+<li>Improved String, optimized for dealing with prefixes and suffixes.
+</li>
+
+<li>Wildcards matcher. (?, *)
 </li>
 </ul>
 </div>
 </div>
 
-
 <div id="outline-container-sec-2" class="outline-2">
 <h2 id="sec-2"><span class="section-number-2">2</span> Usage</h2>
 <div class="outline-text-2" id="text-2">
@@ -244,7 +268,7 @@ Maven pom.xml file snippet:
 </div>
 <div id="postamble" class="status">
 <p class="author">Author: Svjatoslav Agejenko</p>
-<p class="date">Created: 2015-03-01 Sun 19:03</p>
+<p class="date">Created: 2015-03-21 Sat 00:00</p>
 <p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 24.4.1 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p>
 <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
 </div>
index 4d7cb24..cfb8b4b 100644 (file)
 
 * General
 Library contains:
-- Wildcards matcher. (?, *)
+- Commandline Interface helper
 
 - Commandline arguments parser and validator.
 
+- Bit input and output streams.
+
+- Slightly enhanced data input and output streams.
+
+- Byte array to HEX string converter.
+
+- Utility that tries to quess user desktop directory.
+
 - File path parser.
 
+- File IO helper.
+
 - Graphical error dialog.
   - Reusable graphical dialog to capture and show program exceptions
     and associated program call stack traceback.
 
-- Primitive URL parameters encoder / decoder.
+- Primitive and simple component to add navigation menus to the web
+  sites.
+
+- String tokenizer.
 
+- Improved String, optimized for dealing with prefixes and suffixes.
+
+- Wildcards matcher. (?, *)
 
 * Usage
 Instructions to embed svjatoslav-commons in your project as a library:
index e97c8cf..0d9e23d 100755 (executable)
@@ -1,7 +1,7 @@
 /*
  * Svjatoslav Commons - shared library of common functionality.
  * Copyright ©2012-2014, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- * 
+ *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of version 3 of the GNU Lesser General Public License
  * or later as published by the Free Software Foundation.
@@ -11,6 +11,8 @@ package eu.svjatoslav.commons.commandline.parameterparser;
 
 public enum ArgumentCount {
 
-       NONE, SINGLE, MULTI
+       NONE, // parameter has no arguments
+       SINGLE, // parameter has one argument
+       MULTI // parameter can have multiple arguments
 
 }
index f259f7f..fd22c89 100755 (executable)
@@ -68,8 +68,8 @@ public abstract class Parameter<T> {
                // check if arguments are allowed for this parameter
                if (argumentCount.equals(ArgumentCount.NONE)) {
                        System.out
-                       .println("Error! No arguments are allowed for parameters: "
-                                       + getAliases());
+                                       .println("Error! No arguments are allowed for parameters: "
+                                                       + getAliases());
                        return false;
                }
 
@@ -77,8 +77,8 @@ public abstract class Parameter<T> {
                if ((arguments.size() > 0)
                                && (argumentCount.equals(ArgumentCount.SINGLE))) {
                        System.out
-                       .println("Error! Only single argument is allowed for parameters: "
-                                       + getAliases());
+                                       .println("Error! Only single argument is allowed for parameters: "
+                                                       + getAliases());
                        return false;
                }
 
index e064cd5..69b26dc 100755 (executable)
@@ -25,6 +25,22 @@ public class Parser {
                return parameter;
        }
 
+       /**
+        * @return <code>true</code> if no errors were found. <code>false</code>
+        *         otherwise.
+        */
+       private boolean checkMandatoryArgumentsPresent() {
+
+               for (final Parameter parameter : parameters)
+                       if (parameter.isMandatory() && (!parameter.isParameterSpecified())) {
+                               System.out.println("Error! Mandatory parameter ("
+                                               + parameter.getAliases() + ") is not specified.");
+                               return false;
+                       }
+
+               return true;
+       }
+
        /**
         * Return parameter by given alias or <code>null</code> if no parameter
         * exists for given alias.
@@ -70,16 +86,7 @@ public class Parser {
 
                }
 
-               // check if any mandatory parameters are missing
-
-               for (final Parameter parameter : parameters)
-                       if (parameter.isMandatory() && (!parameter.isParameterSpecified())) {
-                               System.out.println("Error! Mandatory parameter ("
-                                               + parameter.getAliases() + ") is not specified.");
-                               return false;
-                       }
-
-               return true;
+               return checkMandatoryArgumentsPresent();
        }
 
        public void showHelp() {