Improved generics usage.
[svjatoslav_commons.git] / src / main / java / eu / svjatoslav / commons / commandline / parameterparser / Parser.java
index ff15a4e..3094403 100755 (executable)
@@ -18,9 +18,9 @@ import java.util.ArrayList;
  */
 public class Parser {
 
-    private final ArrayList<Parameter<?>> parameters = new ArrayList<>();
+    private final ArrayList<Parameter<?, ? extends Parameter>> parameters = new ArrayList<>();
 
-    public <E extends Parameter<?>> E add(final E parameter) {
+    public <E extends Parameter> E add(final E parameter) {
         parameters.add(parameter);
         return parameter;
     }
@@ -31,8 +31,8 @@ public class Parser {
      */
     private boolean checkMandatoryArgumentsPresent() {
 
-        for (final Parameter<?> parameter : parameters)
-            if (parameter.isMandatory() && (!parameter.isParameterSpecified())) {
+        for (final Parameter parameter : parameters)
+            if (parameter.isMandatory() && (!parameter.isSpecified())) {
                 System.out.println("Error! Mandatory parameter ("
                         + parameter.getAliases() + ") is not specified.");
                 return false;
@@ -48,9 +48,9 @@ public class Parser {
      * @param alias parameter alias
      * @return found parameter or <code>null</code> if parameter was not found.
      */
-    public Parameter<?> findParameterByAlias(final String alias) {
+    public Parameter findParameterByAlias(final String alias) {
 
-        for (final Parameter<?> parameter : parameters)
+        for (final Parameter parameter : parameters)
             if (parameter.matchesAlias(alias))
                 return parameter;
 
@@ -64,11 +64,11 @@ public class Parser {
      */
     public boolean parse(final String[] args) {
 
-        Parameter<?> currentParameter = null;
+        Parameter currentParameter = null;
 
         for (final String argument : args) {
 
-            final Parameter<?> parameterForAlias = findParameterByAlias(argument);
+            final Parameter parameterForAlias = findParameterByAlias(argument);
             if (parameterForAlias == null) {
                 if (currentParameter == null) {
                     System.out.println("Unknown commandline parameter: "
@@ -84,7 +84,7 @@ public class Parser {
                     if (!currentParameter.noMoreArguments())
                         return false;
 
-                parameterForAlias.setParameterSpecified(true);
+                parameterForAlias.setSpecified(true);
                 currentParameter = parameterForAlias;
             }
 
@@ -94,7 +94,7 @@ public class Parser {
     }
 
     public void showHelp() {
-        for (final Parameter<?> parameter : parameters)
+        for (final Parameter parameter : parameters)
             System.out.println(parameter.getHelp());
     }