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.ListIterator;
20
21 /**
22 * An Option that can have an argument and/or group of child Options in the form
23 * "-f <arg> [-a|-b|-c]".
24 */
25 public interface Parent extends Option {
26
27 /**
28 * Processes the parent part of the Option. The combination of parent,
29 * argument and children is handled by the process method.
30 * @see Option#process(WriteableCommandLine, ListIterator)
31 *
32 * @param commandLine the CommandLine to write results to
33 * @param args a ListIterator over argument strings positioned at the next
34 * argument to process
35 * @throws OptionException if an error occurs while processing
36 */
37 void processParent(
38 final WriteableCommandLine commandLine,
39 final ListIterator args)
40 throws OptionException;
41 }