X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=cli-helper.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Fcli_helper%2Fparameter_parser%2Fparameter%2FStringOption.java;fp=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Fcli_helper%2Fparameter_parser%2Fparameter%2FStringOption.java;h=7ba7c939beeccf45d02409784ff575b164ba1920;hp=0000000000000000000000000000000000000000;hb=324ea20c0c65f671c0d35e94ed90142912a56b4c;hpb=2c29a140b3ff6f0f60ac838437c4bd9b8fd6dad7 diff --git a/src/main/java/eu/svjatoslav/commons/cli_helper/parameter_parser/parameter/StringOption.java b/src/main/java/eu/svjatoslav/commons/cli_helper/parameter_parser/parameter/StringOption.java new file mode 100755 index 0000000..7ba7c93 --- /dev/null +++ b/src/main/java/eu/svjatoslav/commons/cli_helper/parameter_parser/parameter/StringOption.java @@ -0,0 +1,45 @@ +/* + * Svjatoslav Commons - shared library of common functionality. Author: Svjatoslav Agejenko. + * This project is released under Creative Commons Zero (CC0) license. + */ +package eu.svjatoslav.commons.cli_helper.parameter_parser.parameter; + +import eu.svjatoslav.commons.cli_helper.parameter_parser.ParameterCount; +import eu.svjatoslav.commons.cli_helper.parameter_parser.Option; + +public class StringOption extends Option { + + public final String defaultValue; + + public StringOption(final String description) { + super(description, ParameterCount.SINGLE); + defaultValue = null; + } + public StringOption(final String description, String defaultValue) { + super(description, ParameterCount.SINGLE); + this.defaultValue = defaultValue; + this.setPresent(true); + } + + @Override + public java.lang.String describeFormat() { + return "string"; + } + + @Override + public String getValue() { + + if (parameters.isEmpty() && (defaultValue != null)) return defaultValue; + + if (parameters.size() == 1) return parameters.get(0); + + throw new RuntimeException("Parameter " + description + + " shall have exactly 1 argument."); + } + + @Override + public boolean isValid(final java.lang.String value) { + return true; + } + +}