*/
public class Parser {
- private final ArrayList<Parameter<?, ? extends Parameter>> parameters = new ArrayList<>();
+ private final ArrayList<Option<?, ? extends Option>> options = new ArrayList<>();
- public <E extends Parameter> E add(final E parameter) {
- parameters.add(parameter);
+ public <E extends Option> E add(final E parameter) {
+ options.add(parameter);
return parameter;
}
*/
private boolean checkMandatoryArgumentsPresent() {
- for (final Parameter parameter : parameters)
- if (parameter.isMandatory() && (!parameter.isSpecified())) {
+ for (final Option option : options)
+ if (option.isMandatory() && (!option.isPresent())) {
System.out.println("Error! Mandatory parameter ("
- + parameter.getAliases() + ") is not specified.");
+ + option.getAliasesAsString() + ") 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 Option findParameterByAlias(final String alias) {
- for (final Parameter parameter : parameters)
- if (parameter.matchesAlias(alias))
- return parameter;
+ for (final Option option : options)
+ if (option.matchesAlias(alias))
+ return option;
return null;
}
*/
public boolean parse(final String[] args) {
- Parameter currentParameter = null;
+ Option currentOption = null;
for (final String argument : args) {
- final Parameter parameterForAlias = findParameterByAlias(argument);
- if (parameterForAlias == null) {
- if (currentParameter == null) {
+ final Option optionForAlias = findParameterByAlias(argument);
+ if (optionForAlias == null) {
+ if (currentOption == null) {
System.out.println("Unknown commandline parameter: "
+ argument);
return false;
}
- if (!currentParameter.addArgument(argument))
+ if (!currentOption.addParameter(argument))
return false;
} else {
- if (currentParameter != null)
- if (!currentParameter.noMoreArguments())
+ if (currentOption != null)
+ if (!currentOption.noMoreArguments())
return false;
- parameterForAlias.setSpecified(true);
- currentParameter = parameterForAlias;
+ optionForAlias.setPresent(true);
+ currentOption = optionForAlias;
}
}
public void showHelp() {
System.out.println("Available commandline arguments:");
- for (final Parameter parameter : parameters)
- System.out.println(parameter.getHelp());
+ for (final Option option : options)
+ System.out.println(option.getHelp());
}
}