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;
11 import java.util.List;
12 import java.util.stream.Collectors;
14 import static eu.svjatoslav.commons.commandline.parameterparser.parameter.FileParameter.validateFile;
16 public class FileParameters extends Parameter<List<File>, FileParameters> {
18 private ExistenceType existenceType = ExistenceType.DOES_NOT_MATTER;
20 public FileParameters(final String description) {
21 super(description, ArgumentCount.MULTI);
25 public String describeFormat() {
26 return existenceType.description + " files";
30 public List<File> getValue() {
31 return arguments.stream().map(File::new).collect(Collectors.toList());
34 public FileParameters mustExist() {
35 existenceType = ExistenceType.MUST_EXIST;
39 public FileParameters mustNotExist() {
40 existenceType = ExistenceType.MUST_NOT_EXIST;
45 public boolean validate(final String value) {
46 return validateFile(existenceType, value);