import java.util.ArrayList;
-public abstract class Parameter {
+public abstract class Parameter<T> {
/**
* Indicates that at least one argument is mandatory for this parameter.
public final String description;
- protected final ArrayList<String> arguments = new ArrayList<String>();
+ public final ArrayList<String> arguments = new ArrayList<String>();
final ArgumentCount argumentCount;
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.
*/
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();
}
/**
+ * @param alias
+ * alias to check against
* @return <code>true</code> if given alias is registered for this
* parameter.
*/
return true;
}
- public abstract Parameter setMandatory();
-
- protected Parameter setMandatoryProtected() {
+ @SuppressWarnings("unchecked")
+ public T setMandatory() {
mandatory = true;
- return this;
+ return (T) this;
}
/**
}
/**
+ * @param value
+ * value to validate
* @return <code>true</code> if value is correct, <code>false</code>
* otherwise.
*/