improved javadoc
[svjatoslav_commons.git] / src / main / java / eu / svjatoslav / commons / commandline / parameterparser / Parameter.java
index 004a48a..25f406d 100755 (executable)
@@ -11,7 +11,7 @@ package eu.svjatoslav.commons.commandline.parameterparser;
 
 import java.util.ArrayList;
 
-public abstract class Parameter {
+public abstract class Parameter<T> {
 
        /**
         * Indicates that at least one argument is mandatory for this parameter.
@@ -22,7 +22,7 @@ public abstract class Parameter {
 
        public final String description;
 
-       protected final ArrayList<String> arguments = new ArrayList<String>();
+       public final ArrayList<String> arguments = new ArrayList<String>();
 
        final ArgumentCount argumentCount;
 
@@ -51,18 +51,19 @@ public abstract class Parameter {
                this.argumentCount = argumentCount;
        }
 
-       public abstract Object addAliases(final String... aliasArray);
-
-       protected Parameter addAliasesProtected(final String... aliasArray) {
+       @SuppressWarnings("unchecked")
+       public T addAliases(final String... aliasArray) {
 
                // save aliases
                for (final String alias : aliasArray)
                        aliases.add(alias);
 
-               return this;
+               return (T) this;
        }
 
        /**
+        * @param argumentString
+        *            argument to add
         * @return <code>true</code> if no errors were found. <code>false</code>
         *         otherwise.
         */
@@ -116,31 +117,6 @@ public abstract class Parameter {
                return buffer.toString();
        }
 
-       // public List<File> getArgumentsAsFiles() {
-       // final ArrayList<File> result = new ArrayList<File>();
-       //
-       // for (final String argument : arguments) {
-       // final File file = new File(argument);
-       // result.add(file);
-       // }
-       //
-       // return result;
-       // }
-       //
-       // public List<Integer> getArgumentsAsIntegers() {
-       // final ArrayList<Integer> result = new ArrayList<Integer>();
-       //
-       // for (final String argument : arguments)
-       // result.add(Integer.valueOf(argument));
-       //
-       // return result;
-       // }
-       //
-       // public List<String> getArgumentsAsStrings() {
-       // final ArrayList<String> result = new ArrayList<String>(arguments);
-       // return result;
-       // }
-
        public String getHelp() {
                final StringBuffer buffer = new StringBuffer();
 
@@ -174,6 +150,8 @@ public abstract class Parameter {
        }
 
        /**
+        * @param alias
+        *            alias to check against
         * @return <code>true</code> if given alias is registered for this
         *         parameter.
         */
@@ -204,11 +182,10 @@ public abstract class Parameter {
                return true;
        }
 
-       public abstract Parameter setMandatory();
-
-       protected Parameter setMandatoryProtected() {
+       @SuppressWarnings("unchecked")
+       public T setMandatory() {
                mandatory = true;
-               return this;
+               return (T) this;
        }
 
        /**
@@ -220,6 +197,8 @@ public abstract class Parameter {
        }
 
        /**
+        * @param value
+        *            value to validate
         * @return <code>true</code> if value is correct, <code>false</code>
         *         otherwise.
         */