X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=svjatoslav_commons.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Fcommandline%2Fparameterparser%2Fparameter%2FDirectoryParameter.java;h=f12ee98c0611219cf79480c5a5b20b2d88cc6683;hp=8607234f4ccba6f6240bb95d92ebd8f0449eccbe;hb=9bf004ce4e9b5edff36c65fcc8cc0f303390d7fc;hpb=f05caf52a82cdd174ded6bc6d8042200221b18d6 diff --git a/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/parameter/DirectoryParameter.java b/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/parameter/DirectoryParameter.java old mode 100644 new mode 100755 index 8607234..f12ee98 --- a/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/parameter/DirectoryParameter.java +++ b/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/parameter/DirectoryParameter.java @@ -1,81 +1,73 @@ -package eu.svjatoslav.commons.commandline.parameterparser.parameter; +/* + * Svjatoslav Commons - shared library of common functionality. + * Copyright ©2012-2014, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 3 of the GNU Lesser General Public License + * or later as published by the Free Software Foundation. + */ -import java.io.File; +package eu.svjatoslav.commons.commandline.parameterparser.parameter; -import eu.svjatoslav.commons.commandline.parameterparser.Argument; import eu.svjatoslav.commons.commandline.parameterparser.ArgumentCount; import eu.svjatoslav.commons.commandline.parameterparser.Parameter; -import eu.svjatoslav.commons.commandline.parameterparser.type.StringArgument; - -public class DirectoryParameter extends Parameter implements Argument { - - private ExistanceType existanceType = ExistanceType.DOES_NOT_MATTER; - - public DirectoryParameter(final String description) { - super(new StringArgument(), description, ArgumentCount.SINGLE); - } - - @Override - public DirectoryParameter addAliases(final String... aliasArray) { - super.addAliases(aliasArray); - return this; - } - - @Override - public java.lang.String describeFormat() { - return existanceType.description + "directory"; - } - - public File getValue() { - - if (arguments.size() != 1) - throw new RuntimeException("Parameter " + description - + " shall have exactly 1 argument."); - - return new File(arguments.get(0)); - } - - public DirectoryParameter mustExist() { - existanceType = ExistanceType.MUST_EXIST; - return this; - } - - public DirectoryParameter mustNotExist() { - existanceType = ExistanceType.MUST_NOT_EXIST; - return this; - } - - @Override - public DirectoryParameter setMandatory() { - mandatory = true; - return this; - } - - @Override - public boolean validate(final java.lang.String value) { - final File file = new File(value); - - if (existanceType == ExistanceType.MUST_EXIST) { - if (file.exists() && file.isDirectory()) - return true; - return false; - } - - if (existanceType == ExistanceType.MUST_NOT_EXIST) { - if (file.exists()) - return false; - return true; - } - - if (existanceType == ExistanceType.DOES_NOT_MATTER) { - if (file.exists()) - if (file.isFile()) - return false; - - return true; - } - - return false; - } + +import java.io.File; + +public class DirectoryParameter extends Parameter { + + private ExistenceType existenceType = ExistenceType.DOES_NOT_MATTER; + + public DirectoryParameter(final String description) { + super(description, ArgumentCount.SINGLE); + } + + @Override + public java.lang.String describeFormat() { + return existenceType.description + "directory"; + } + + @Override + public File getValue() { + + if (arguments.size() != 1) + throw new RuntimeException("Parameter " + description + + " shall have exactly 1 argument."); + + return new File(arguments.get(0)); + } + + public DirectoryParameter mustExist() { + existenceType = ExistenceType.MUST_EXIST; + return this; + } + + public DirectoryParameter mustNotExist() { + existenceType = ExistenceType.MUST_NOT_EXIST; + return this; + } + + @Override + public boolean validate(final java.lang.String value) { + final File file = new File(value); + + if (existenceType == ExistenceType.MUST_EXIST) { + return file.exists() && file.isDirectory(); + } + + if (existenceType == ExistenceType.MUST_NOT_EXIST) { + return !file.exists(); + } + + if (existenceType == ExistenceType.DOES_NOT_MATTER) { + if (file.exists()) + if (file.isFile()) + return false; + + return true; + } + + return false; + } }