1 package eu.svjatoslav.commons.commandline.parameterparser.parameter;
5 import eu.svjatoslav.commons.commandline.parameterparser.Argument;
6 import eu.svjatoslav.commons.commandline.parameterparser.ArgumentCount;
7 import eu.svjatoslav.commons.commandline.parameterparser.Parameter;
8 import eu.svjatoslav.commons.commandline.parameterparser.type.StringArgument;
10 public class DirectoryParameter extends Parameter implements Argument {
12 private ExistanceType existanceType = ExistanceType.DOES_NOT_MATTER;
14 public DirectoryParameter(final String description) {
15 super(new StringArgument(), description, ArgumentCount.SINGLE);
19 public DirectoryParameter addAliases(final String... aliasArray) {
20 super.addAliases(aliasArray);
25 public java.lang.String describeFormat() {
26 return existanceType.description + "directory";
29 public File getValue() {
31 if (arguments.size() != 1)
32 throw new RuntimeException("Parameter " + description
33 + " shall have exactly 1 argument.");
35 return new File(arguments.get(0));
38 public DirectoryParameter mustExist() {
39 existanceType = ExistanceType.MUST_EXIST;
43 public DirectoryParameter mustNotExist() {
44 existanceType = ExistanceType.MUST_NOT_EXIST;
49 public DirectoryParameter setMandatory() {
55 public boolean validate(final java.lang.String value) {
56 final File file = new File(value);
58 if (existanceType == ExistanceType.MUST_EXIST) {
59 if (file.exists() && file.isDirectory())
64 if (existanceType == ExistanceType.MUST_NOT_EXIST) {
70 if (existanceType == ExistanceType.DOES_NOT_MATTER) {