X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Fcommandline%2Fparameterparser%2FParameter.java;h=fd22c89b2e2ae917c7803837ff45b787efae1799;hb=a8164358cbf6ceedabae88880078307b604db829;hp=58282c51a1f50f0089146049057ae9242e559e63;hpb=9e18e609a44f9392aee651cfaf193b4141aef6b4;p=svjatoslav_commons.git diff --git a/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parameter.java b/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parameter.java index 58282c5..fd22c89 100755 --- a/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parameter.java +++ b/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parameter.java @@ -1,19 +1,17 @@ /* * Svjatoslav Commons - shared library of common functionality. - * Copyright ©2012-2013, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu - * + * 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 2 of the GNU General Public License - * as published by the Free Software Foundation. + * modify it under the terms of version 3 of the GNU Lesser General Public License + * or later as published by the Free Software Foundation. */ package eu.svjatoslav.commons.commandline.parameterparser; -import java.io.File; import java.util.ArrayList; -import java.util.List; -public abstract class Parameter { +public abstract class Parameter { /** * Indicates that at least one argument is mandatory for this parameter. @@ -24,9 +22,9 @@ public abstract class Parameter { public final String description; - protected final ArrayList arguments = new ArrayList(); + public final ArrayList arguments = new ArrayList(); - ArgumentCount argumentCount; + final ArgumentCount argumentCount; /** * If this parameter was present in the commandline, then this boolean will @@ -34,11 +32,6 @@ public abstract class Parameter { */ private boolean parameterSpecified; - public Parameter(final String description, final ArgumentCount argumentCount) { - this.description = description; - this.argumentCount = argumentCount; - }; - public Parameter(final boolean mandatory, final ArgumentCount argumentCount, final String description, final String... aliases2) { @@ -51,15 +44,20 @@ public abstract class Parameter { for (final String alias : aliases2) aliases.add(alias); + }; + + public Parameter(final String description, final ArgumentCount argumentCount) { + this.description = description; + this.argumentCount = argumentCount; } - public Parameter addAliases(final String... aliasArray) { + public T addAliases(final String... aliasArray) { // save aliases for (final String alias : aliasArray) aliases.add(alias); - return this; + return (T) this; } /** @@ -97,6 +95,11 @@ public abstract class Parameter { return true; } + /** + * @return Single line argument type description. + */ + public abstract String describeFormat(); + public String getAliases() { final StringBuffer buffer = new StringBuffer(); @@ -111,31 +114,6 @@ public abstract class Parameter { return buffer.toString(); } - public List getArgumentsAsFiles() { - final ArrayList result = new ArrayList(); - - for (final String argument : arguments) { - final File file = new File(argument); - result.add(file); - } - - return result; - } - - public List getArgumentsAsIntegers() { - final ArrayList result = new ArrayList(); - - for (final String argument : arguments) - result.add(Integer.valueOf(argument)); - - return result; - } - - public List getArgumentsAsStrings() { - final ArrayList result = new ArrayList(arguments); - return result; - } - public String getHelp() { final StringBuffer buffer = new StringBuffer(); @@ -155,6 +133,8 @@ public abstract class Parameter { return buffer.toString(); } + public abstract Object getValue(); + public boolean isMandatory() { return mandatory; } @@ -180,7 +160,7 @@ public abstract class Parameter { /** * Notifies this parameter that no more arguments will follow. This gives * parameter chance to verify if this is ok. - * + * * @return true if no errors were found. false * otherwise. */ @@ -197,9 +177,9 @@ public abstract class Parameter { return true; } - public Parameter setMandatory() { + public T setMandatory() { mandatory = true; - return this; + return (T) this; } /** @@ -210,11 +190,6 @@ public abstract class Parameter { this.parameterSpecified = parameterSpecified; } - /** - * @return Single line argument type description. - */ - public abstract String describeFormat(); - /** * @return true if value is correct, false * otherwise.