View Javadoc

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