package com.lexicalscope.jewel.cli.specification; import java.util.List; import com.lexicalscope.jewel.cli.ValidationErrorBuilder; /* * Copyright 2011 Tim Wood * * 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. */ public interface ParsedOptionSpecification extends OptionSpecification { /** * Get all of the short names of this option. Short names are single * characters that will by prefixed by the user with "-". * * @return the short names of this option */ List<String> getShortNames(); /** * All the names of the option * * @return all the names of the option */ List<String> getNames(); /** * Does this option have a Short Name * * @return true iff the options has a short name */ boolean hasShortName(); /** * Get the long name of this option. Long names are multiple characters that * will be prefixed by the user with "--". * * @return the long name of this option */ List<String> getLongName(); /** * The pattern that values must conform to * * @return the regular expression that values must conform to */ String getPattern(); boolean allowedValue(String value); /** * Does the option take any arguments? * * @return True iff the the option takes at least one argument */ @Override boolean hasValue(); /** * Is this option a request for help * * @return True iff this option is a request for help */ boolean isHelpOption(); /** * @return option is a boolean option */ boolean isBoolean(); void reportMissingTo(ValidationErrorBuilder validationErrorBuilder); }