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

com.github.rvesse.airline.restrictions.ArgumentsRestriction Maven / Gradle / Ivy

Go to download

Java library provided an annotation-based framework for parsing Git like command line structures

The newest version!
/**
 * Copyright (C) 2010-16 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.github.rvesse.airline.restrictions;

import com.github.rvesse.airline.model.ArgumentsMetadata;
import com.github.rvesse.airline.parser.ParseState;

/**
 * Represents restrictions on arguments
 * 
 * @author rvesse
 *
 */
public interface ArgumentsRestriction {

    /**
     * Method that is called before Airline attempts to convert a string
     * argument received into a strongly typed Java value
     * 
     * @param state
     *            Parser state
     * @param arguments
     *            Arguments meta-data
     * @param value
     *            String value
     */
    public abstract  void preValidate(ParseState state, ArgumentsMetadata arguments, String value);

    /**
     * Method that is called after Airline has converted a string argument
     * received into a strongly typed Java value
     * 
     * @param state
     *            Parser state
     * @param arguments
     *            Arguments meta-data
     * @param value
     *            Strongly typed value
     */
    public abstract  void postValidate(ParseState state, ArgumentsMetadata arguments, Object value);

    /**
     * Method that is called after Airline has completed parsing
     * 

* This can be used to implement restrictions that require the final parser * state to process *

* * @param state * Parser state * @param arguments * Arguments meta-data */ public abstract void finalValidate(ParseState state, ArgumentsMetadata arguments); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy