2 * Svjatoslav Commons - shared library of common functionality. Author: Svjatoslav Agejenko.
3 * This project is released under Creative Commons Zero (CC0) license.
5 package eu.svjatoslav.commons.commandline.parameterparser.parameter;
7 import eu.svjatoslav.commons.commandline.parameterparser.ArgumentCount;
8 import eu.svjatoslav.commons.commandline.parameterparser.Parameter;
10 public class StringParameter extends Parameter<String, StringParameter> {
12 public final String defaultValue;
14 public StringParameter(final String description) {
15 super(description, ArgumentCount.SINGLE);
18 public StringParameter(final String description, String defaultValue) {
19 super(description, ArgumentCount.SINGLE);
20 this.defaultValue = defaultValue;
21 this.setSpecified(true);
25 public java.lang.String describeFormat() {
30 public String getValue() {
32 if (arguments.isEmpty() && (defaultValue != null)) return defaultValue;
34 if (arguments.size() == 1) return arguments.get(0);
36 throw new RuntimeException("Parameter " + description
37 + " shall have exactly 1 argument.");
41 public boolean validate(final java.lang.String value) {