1 | |
package com.lexicalscope.jewel.cli; |
2 | |
|
3 | |
import java.util.ArrayList; |
4 | |
import java.util.List; |
5 | |
|
6 | |
import com.lexicalscope.jewel.cli.specification.OptionSpecification; |
7 | |
|
8 | 388 | public class ValidationErrorBuilderImpl implements ValidationErrorBuilder |
9 | |
{ |
10 | 388 | private final List<ValidationFailure> validationExceptions = |
11 | |
new ArrayList<ValidationFailure>(); |
12 | |
|
13 | |
public void missingValue(final OptionSpecification optionSpecification) |
14 | |
{ |
15 | 0 | validationExceptions.add(new ValidationFailureMissingValue(optionSpecification)); |
16 | 0 | } |
17 | |
|
18 | |
public void wrongNumberOfValues(final OptionSpecification optionSpecification, final List<String> excessValues) |
19 | |
{ |
20 | 34 | validationExceptions.add(new ValidationFailureWrongNumberOfValues(optionSpecification, excessValues)); |
21 | 34 | } |
22 | |
|
23 | |
public void unexpectedOption(final String name) |
24 | |
{ |
25 | 8 | validationExceptions.add(ArgumentValidationExceptionFactory.createUnexpectedOptionError(name)); |
26 | 8 | } |
27 | |
|
28 | |
public void unexpectedValue(final OptionSpecification optionSpecification, final List<String> values) |
29 | |
{ |
30 | 0 | validationExceptions.add(ArgumentValidationExceptionFactory.createUnexpectedValueError(optionSpecification, values)); |
31 | 0 | } |
32 | |
|
33 | |
@Override public void unexpectedTrailingValue(final List<String> unparsedArguments) { |
34 | 2 | validationExceptions.add(ArgumentValidationExceptionFactory.createUnexpectedTrailingValues(unparsedArguments)); |
35 | 2 | } |
36 | |
|
37 | |
public void missingOption(final OptionSpecification optionSpecification) |
38 | |
{ |
39 | 14 | validationExceptions.add(ArgumentValidationExceptionFactory.createMissingOptionError(optionSpecification)); |
40 | 14 | } |
41 | |
|
42 | |
public void invalidValueForType(final OptionSpecification optionSpecification, final String message) |
43 | |
{ |
44 | 10 | validationExceptions.add(ArgumentValidationExceptionFactory.createInvalidValueForType( |
45 | |
optionSpecification, |
46 | |
message)); |
47 | 10 | } |
48 | |
|
49 | |
public void unableToConstructType(final OptionSpecification optionSpecification, final String message) |
50 | |
{ |
51 | 0 | validationExceptions |
52 | |
.add(ArgumentValidationExceptionFactory.createUnableToConstructType(optionSpecification, message)); |
53 | 0 | } |
54 | |
|
55 | |
public void patternMismatch(final OptionSpecification optionSpecification, final String value) |
56 | |
{ |
57 | 6 | validationExceptions.add(ArgumentValidationExceptionFactory.createPatternMismatch(optionSpecification, value)); |
58 | 6 | } |
59 | |
|
60 | |
public void validate() throws ArgumentValidationException |
61 | |
{ |
62 | 542 | if (validationExceptions.size() > 0) |
63 | |
{ |
64 | 72 | throw new ArgumentValidationException(validationExceptions); |
65 | |
} |
66 | 470 | } |
67 | |
} |