All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.lexicalscope.jewel.cli.ValidationErrorBuilderImpl Maven / Gradle / Ivy

package com.lexicalscope.jewel.cli;

import java.util.ArrayList;
import java.util.List;

class ValidationErrorBuilderImpl implements ValidationErrorBuilder
{
    private final List validationExceptions =
            new ArrayList();

    public void missingValue(final OptionSpecification optionSpecification)
    {
        validationExceptions.add(new ValidationFailureMissingValue(optionSpecification));
    }

    public void wrongNumberOfValues(final OptionSpecification optionSpecification, final List excessValues)
    {
        validationExceptions.add(new ValidationFailureWrongNumberOfValues(optionSpecification, excessValues));
    }

    public void unexpectedOption(final String name)
    {
        validationExceptions.add(ArgumentValidationExceptionFactory.createUnexpectedOptionError(name));
    }

    public void unexpectedValue(final OptionSpecification optionSpecification, final List values)
    {
        validationExceptions.add(ArgumentValidationExceptionFactory.createUnexpectedValueError(optionSpecification, values));
    }

    @Override public void unexpectedTrailingValue(final List unparsedArguments) {
        validationExceptions.add(ArgumentValidationExceptionFactory.createUnexpectedTrailingValues(unparsedArguments));
    }

    public void missingOption(final OptionSpecification optionSpecification)
    {
        validationExceptions.add(ArgumentValidationExceptionFactory.createMissingOptionError(optionSpecification));
    }

    public void invalidValueForType(final OptionSpecification optionSpecification, final String message)
    {
        validationExceptions.add(ArgumentValidationExceptionFactory.createInvalidValueForType(
                optionSpecification,
                message));
    }

    public void unableToConstructType(final OptionSpecification optionSpecification, final String message)
    {
        validationExceptions
        .add(ArgumentValidationExceptionFactory.createUnableToConstructType(optionSpecification, message));
    }

    public void patternMismatch(final OptionSpecification optionSpecification, final String value)
    {
        validationExceptions.add(ArgumentValidationExceptionFactory.createPatternMismatch(optionSpecification, value));
    }

    public void validate() throws ArgumentValidationException
    {
        if (validationExceptions.size() > 0)
        {
            throw new ArgumentValidationException(validationExceptions);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy