X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Fcommandline%2Fparameterparser%2FParameter.java;h=58282c51a1f50f0089146049057ae9242e559e63;hb=9e18e609a44f9392aee651cfaf193b4141aef6b4;hp=831806dd016754e99adea26381947f0ddc986f91;hpb=5fecd6b03f114cab04e0389bd1900b27726c73ea;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 831806d..58282c5 100755 --- a/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parameter.java +++ b/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parameter.java @@ -13,14 +13,12 @@ import java.io.File; import java.util.ArrayList; import java.util.List; -public class Parameter { +public abstract class Parameter { /** * Indicates that at least one argument is mandatory for this parameter. */ - private boolean mandatory; - - private final Argument argumentType; + protected boolean mandatory; private final ArrayList aliases = new ArrayList(); @@ -36,20 +34,16 @@ public class Parameter { */ private boolean parameterSpecified; - public Parameter(final Argument argumentType, final String description, - final ArgumentCount argumentCount) { - + public Parameter(final String description, final ArgumentCount argumentCount) { this.description = description; - this.argumentType = argumentType; this.argumentCount = argumentCount; }; public Parameter(final boolean mandatory, - final ArgumentCount argumentCount, final Argument argumentType, - final String description, final String... aliases2) { + final ArgumentCount argumentCount, final String description, + final String... aliases2) { this.mandatory = mandatory; - this.argumentType = argumentType; this.description = description; this.argumentCount = argumentCount; @@ -90,10 +84,10 @@ public class Parameter { return false; } - if (!argumentType.validate(argumentString)) { + if (!validate(argumentString)) { System.out.println("Error! Invalid argument \"" + argumentString - + "\". It shall be " + argumentType.describeFormat() + "."); + + "\". It shall be " + describeFormat() + "."); return false; } @@ -117,20 +111,6 @@ public class Parameter { return buffer.toString(); } - public File getArgumentAsFile() { - if (arguments.size() != 1) - throw new RuntimeException("Parameter " + description - + " shall have exactly 1 argument."); - return new File(arguments.get(0)); - } - - public int getArgumentAsInteger() { - if (arguments.size() != 1) - throw new RuntimeException("Parameter " + description - + " shall have exactly 1 argument."); - return Integer.parseInt(arguments.get(0)); - } - public List getArgumentsAsFiles() { final ArrayList result = new ArrayList(); @@ -162,7 +142,7 @@ public class Parameter { // first line buffer.append(getAliases()); if (!argumentCount.equals(ArgumentCount.NONE)) { - buffer.append(" (" + argumentType.describeFormat() + ")"); + buffer.append(" (" + describeFormat() + ")"); if (argumentCount.equals(ArgumentCount.MULTI)) buffer.append("..."); @@ -230,4 +210,15 @@ public class Parameter { this.parameterSpecified = parameterSpecified; } + /** + * @return Single line argument type description. + */ + public abstract String describeFormat(); + + /** + * @return true if value is correct, false + * otherwise. + */ + public abstract boolean validate(String value); + }