View Javadoc

1   /**
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.cli2;
18  
19  import java.util.List;
20  import java.util.Set;
21  
22  /**
23   * Instances of CommandLine represent a command line that has been processed
24   * according to the definition supplied to the parser.
25   */
26  public interface CommandLine {
27  
28      /**
29       * Detects the presence of an option with the specified trigger in this
30       * CommandLine.
31       *
32       * @param trigger the trigger to search for
33       * @return true iff an option with this trigger is present
34       */
35      boolean hasOption(final String trigger);
36  
37      /**
38       * Detects the presence of an option in this CommandLine.
39       *
40       * @param option the Option to search for
41       * @return true iff the option is present
42       */
43      boolean hasOption(final Option option);
44  
45      /**
46       * Finds the Option with the specified trigger
47       *
48       * @param trigger the name of the option to retrieve
49       * @return the Option matching the trigger or null if none exists
50       */
51      Option getOption(final String trigger);
52  
53      /**
54       * Retrieves the Argument values associated with the specified Option
55       *
56       * @param trigger a trigger used to lookup the Option
57       * @return a list of values or an empty List if none are found
58       */
59      List getValues(final String trigger);
60  
61      /**
62       * Retrieves the Argument values associated with the specified Option
63       *
64       * @param trigger a trigger used to lookup the Option
65       * @param defaultValues the result to return if no values are found
66       * @return a list of values or defaultValues if none are found
67       */
68      List getValues(final String trigger, final List defaultValues);
69  
70      /**
71       * Retrieves the Argument values associated with the specified Option
72       *
73       * @param option the Option associated with the values
74       * @return a list of values or an empty List if none are found
75       */
76      List getValues(final Option option);
77  
78      /**
79       * Retrieves the Argument values associated with the specified Option
80       *
81       * @param option the Option associated with the values
82       * @param defaultValues the result to return if no values are found
83       * @return a list of values or defaultValues if none are found
84       */
85      List getValues(final Option option, final List defaultValues);
86  
87      /**
88       * Retrieves the single Argument value associated with the specified Option
89       *
90       * @param trigger a trigger used to lookup the Option
91       * @return the matching value or null if none exists
92       * @throws IllegalStateException if more than one values are found
93       */
94      Object getValue(final String trigger) throws IllegalStateException;
95  
96      /**
97       * Retrieves the single Argument value associated with the specified Option
98       *
99       * @param trigger a trigger used to lookup the Option
100      * @param defaultValue the result to use if no values are found
101      * @return the matching value or defaultValue if none exists
102      * @throws IllegalStateException if more than one values are found
103      */
104     Object getValue(final String trigger, final Object defaultValue) throws IllegalStateException;
105 
106     /**
107      * Retrieves the single Argument value associated with the specified Option
108      *
109      * @param option the Option associated with the value
110      * @return the matching value or null if none exists
111      * @throws IllegalStateException if more than one values are found
112      */
113     Object getValue(final Option option) throws IllegalStateException;
114 
115     /**
116      * Retrieves the single Argument value associated with the specified Option
117      *
118      * @param option the Option associated with the value
119      * @param defaultValue the result to use if no values are found
120      * @return the matching value or defaultValue if none exists
121      * @throws IllegalStateException if more than one values are found
122      */
123     Object getValue(final Option option, final Object defaultValue) throws IllegalStateException;
124 
125     /**
126      * Retrieves the Boolean value associated with the specified Switch
127      *
128      * @param trigger a trigger used to lookup the Option
129      * @return the Boolean associated with trigger or null if none exists
130      */
131     Boolean getSwitch(final String trigger);
132 
133     /**
134      * Retrieves the Boolean value associated with the specified Switch
135      *
136      * @param trigger a trigger used to lookup the Option
137      * @param defaultValue the Boolean to use if none match
138      * @return the Boolean associated with trigger or defaultValue if none exists
139      */
140     Boolean getSwitch(final String trigger, final Boolean defaultValue);
141 
142     /**
143      * Retrieves the Boolean value associated with the specified Switch
144      *
145      * @param option the Option associated with the value
146      * @return the Boolean associated with option or null if none exists
147      */
148     Boolean getSwitch(final Option option);
149 
150     /**
151      * Retrieves the Boolean value associated with the specified Switch
152      *
153      * @param option the Option associated with the value
154      * @param defaultValue the Boolean to use if none match
155      * @return the Boolean associated with option or defaultValue if none exists
156      */
157     Boolean getSwitch(final Option option, final Boolean defaultValue);
158 
159 
160     /**
161      * Retrieves the value associated with the specified property for the default property set
162      *
163      * @param property the property name to lookup
164      * @return the value of the property or null
165      */
166     String getProperty(final String property);
167 
168     /**
169      * Retrieves the value associated with the specified property
170      *
171      * @param option the option i.e., -D
172      * @param property the property name to lookup
173      * @return the value of the property or null
174      */
175     String getProperty(final Option option, final String property);
176 
177     /**
178      * Retrieves the value associated with the specified property
179      *
180      * @param option the option i.e., -D
181      * @param property the property name to lookup
182      * @param defaultValue the value to use if no other is found
183      * @return the value of the property or defaultValue
184      */
185     String getProperty(final Option option, final String property, final String defaultValue);
186 
187     /**
188      * Retrieves the set of all property names associated with this option
189      *
190      * @param option the option i.e., -D
191      * @return a none null set of property names
192      */
193     Set getProperties(final Option option);
194 
195     /**
196      * Retrieves the set of all property names associated with the default property option
197      *
198      * @return a none null set of property names
199      */
200     Set getProperties();
201 
202     /**
203      * Retrieves the number of times the specified Option appeared in this
204      * CommandLine
205      *
206      * @param trigger a trigger used to lookup the Option
207      * @return the number of occurrences of the option
208      */
209     int getOptionCount(final String trigger);
210 
211     /**
212      * Retrieves the number of times the specified Option appeared in this
213      * CommandLine
214      *
215      * @param option the Option associated to check
216      * @return the number of occurrences of the option
217      */
218     int getOptionCount(final Option option);
219 
220     /**
221      * Retrieves a list of all Options found in this CommandLine
222      *
223      * @return a none null list of Options
224      */
225     List getOptions();
226 
227     /**
228      * Retrieves a list of all Option triggers found in this CommandLine
229      *
230      * @return a none null list of Option triggers
231      */
232     Set getOptionTriggers();
233 }