*/
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;
}
*/
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;
* @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;
*/
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: "
if (!currentParameter.noMoreArguments())
return false;
- parameterForAlias.setParameterSpecified(true);
+ parameterForAlias.setSpecified(true);
currentParameter = parameterForAlias;
}
}
public void showHelp() {
- for (final Parameter<?> parameter : parameters)
+ for (final Parameter parameter : parameters)
System.out.println(parameter.getHelp());
}