1 /* 2 * Copyright 2007 Tim Wood 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 7 * 8 * Unless required by applicable law or agreed to in writing, software 9 * distributed under the License is distributed on an "AS IS" BASIS, 10 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 * See the License for the specific language governing permissions and 12 * limitations under the License. 13 */ 14 package com.lexicalscope.jewel.cli.specification; 15 16 17 /** 18 * The specification of the CLI. This interface is still in development, and may 19 * be subject to incompatible changes. 20 * 21 * BETA: unstable may change in future versions 22 * 23 * @author tim 24 */ 25 public interface CliSpecification extends Iterable<ParsedOptionSpecification> 26 { 27 /** 28 * The name of the application as specified in the 29 * <code>CommandLineInterface</code> annotation 30 * 31 * @see com.lexicalscope.jewel.cliCommandLineInterface 32 * 33 * @return The name of the application 34 */ 35 String getApplicationName(); 36 37 /** 38 * Has anything been specified to accept additional unparsed arguments? 39 * 40 * @return Has anything been specified to accept additional unparsed 41 * arguments? 42 */ 43 boolean hasUnparsedSpecification(); 44 45 /** 46 * The specification for any additional unparsed arguments, if any have been 47 * specified 48 * 49 * @return The specification for any additional unparsed arguments 50 */ 51 UnparsedOptionSpecification getUnparsedSpecification(); 52 }