+++ /dev/null
-/*
- * Svjatoslav Commons - shared library of common functionality. Author: Svjatoslav Agejenko.
- * This project is released under Creative Commons Zero (CC0) license.
- */
-package eu.svjatoslav.commons.commandline.parameterparser.parameter;
-
-import eu.svjatoslav.commons.commandline.parameterparser.ArgumentCount;
-import eu.svjatoslav.commons.commandline.parameterparser.Parameter;
-
-import java.io.File;
-
-public class DirectoryParameter extends Parameter<File, DirectoryParameter> {
-
- 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;
- }
-
-}