X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=svjatoslav_commons.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Fcommandline%2Fparameterparser%2FParameter.java;h=820858365000cac1936e0e68f1afd38d05cde1a4;hp=81413393853b89c40b52d7d8bf13fa36c6944ff4;hb=7b0d4e85fa892dc8422bfa10ab3b4328bc9f1253;hpb=9bf004ce4e9b5edff36c65fcc8cc0f303390d7fc 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 8141339..8208583 100755 --- a/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parameter.java +++ b/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parameter.java @@ -1,6 +1,6 @@ /* * Svjatoslav Commons - shared library of common functionality. - * Copyright ©2012-2014, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * Copyright ©2012-2017, 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 @@ -11,13 +11,14 @@ package eu.svjatoslav.commons.commandline.parameterparser; import java.util.ArrayList; import java.util.Collections; +import java.util.List; -public abstract class Parameter { +public abstract class Parameter { public final String description; - public final ArrayList arguments = new ArrayList<>(); + public final List arguments = new ArrayList<>(); final ArgumentCount argumentCount; - private final ArrayList aliases = new ArrayList<>(); + private final List aliases = new ArrayList<>(); /** * Indicates that at least one argument is mandatory for this parameter. */ @@ -26,7 +27,7 @@ public abstract class Parameter { * If this parameter was present in the commandline, then this boolean will * be set to true. */ - private boolean parameterSpecified; + private boolean specified; public Parameter(final boolean mandatory, final ArgumentCount argumentCount, final String description, @@ -47,12 +48,12 @@ public abstract class Parameter { } @SuppressWarnings("unchecked") - public T addAliases(final String... aliasArray) { + public I addAliases(final String... aliasArray) { // save aliases Collections.addAll(aliases, aliasArray); - return (T) this; + return (I) this; } /** @@ -116,7 +117,11 @@ public abstract class Parameter { // first line buffer.append(getAliases()); if (!argumentCount.equals(ArgumentCount.NONE)) { - buffer.append(" (" + describeFormat() + ")"); + buffer + .append(" (") + .append(isMandatory() ? "mandatory, " : "") + .append(describeFormat()) + .append(")"); if (argumentCount.equals(ArgumentCount.MULTI)) buffer.append("..."); @@ -129,7 +134,7 @@ public abstract class Parameter { return buffer.toString(); } - public abstract Object getValue(); + public abstract T getValue(); public boolean isMandatory() { return mandatory; @@ -138,15 +143,15 @@ public abstract class Parameter { /** * @return the parameterSpecified */ - public boolean isParameterSpecified() { - return parameterSpecified; + public boolean isSpecified() { + return specified; } /** - * @param parameterSpecified the parameterSpecified to set + * @param specified the parameterSpecified to set */ - public void setParameterSpecified(final boolean parameterSpecified) { - this.parameterSpecified = parameterSpecified; + protected void setSpecified(final boolean specified) { + this.specified = specified; } /** @@ -180,9 +185,9 @@ public abstract class Parameter { } @SuppressWarnings("unchecked") - public T setMandatory() { + public I setMandatory() { mandatory = true; - return (T) this; + return (I) this; } /**