1
2
3
4
5 package com.lexicalscope.jewel.cli.validation;
6
7 import com.lexicalscope.fluent.map.PutVeto;
8 import com.lexicalscope.jewel.cli.ValidationErrorBuilder;
9 import com.lexicalscope.jewel.cli.specification.ParsedOptionSpecification;
10
11 import java.util.List;
12
13 public class ReportWrongFormatValues implements PutVeto<ParsedOptionSpecification, List<String>>
14 {
15 private final ValidationErrorBuilder validationErrorBuilder;
16
17 public ReportWrongFormatValues(final ValidationErrorBuilder validationErrorBuilder)
18 {
19 this.validationErrorBuilder = validationErrorBuilder;
20 }
21
22 @Override
23 public boolean allow(final ParsedOptionSpecification key, final List<String> values)
24 {
25 boolean result = true;
26 for (final String value : values)
27 {
28 if (!key.allowedValue(value))
29 {
30 validationErrorBuilder.patternMismatch(key, value);
31 result = false;
32 }
33 }
34 return result;
35 }
36 }