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 ReportWrongNumberOfValues implements PutVeto<ParsedOptionSpecification, List<String>>
14 {
15 private final ValidationErrorBuilder validationErrorBuilder;
16
17 public ReportWrongNumberOfValues(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 if (!key.allowedThisManyValues(values.size()))
26 {
27 validationErrorBuilder.wrongNumberOfValues(key, values);
28 return false;
29 }
30 return true;
31 }
32 }