commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joe Casadonte (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CLI-220) MissingOptionException.getMissingOptions() returns OptionGroup, not just String
Date Thu, 02 Jun 2011 16:29:47 GMT
MissingOptionException.getMissingOptions() returns OptionGroup, not just String
-------------------------------------------------------------------------------

                 Key: CLI-220
                 URL: https://issues.apache.org/jira/browse/CLI-220
             Project: Commons CLI
          Issue Type: Bug
          Components: CLI-1.x
    Affects Versions: 1.2
            Reporter: Joe Casadonte


The following code:

{code:title=Test.java|borderStyle=solid}
import java.util.List;

import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.GnuParser;
import org.apache.commons.cli.MissingOptionException;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.OptionGroup;
import org.apache.commons.cli.Options;

public class Test {
	public static void main(String[] argv)
	{
		Option opt_foo =
			OptionBuilder.hasArg(false)
				.isRequired(true)
				.withDescription("option foo")
		        .create("foo");

		Option opt_bar =
			OptionBuilder.hasArg(false)
				.isRequired(false)
				.withDescription("option bar")
		        .create("bar");

		Option opt_baz =
			OptionBuilder.hasArg(false)
				.isRequired(false)
				.withDescription("option baz")
		        .create("baz");

		OptionGroup optgrp = new OptionGroup();
		optgrp.setRequired(true);
		optgrp.addOption(opt_bar)
			.addOption(opt_baz);

		Options optsdef = new Options();
		optsdef.addOption(opt_foo)
			.addOptionGroup(optgrp);

		try {
			CommandLineParser parser = new GnuParser();
			CommandLine cmdline = parser.parse(optsdef, argv);
		}
		catch (MissingOptionException ex) {
			List opts = ex.getMissingOptions();

			for (Object option : opts) {
				System.out.println("OPT: " + option.getClass().getName());
			}
		}
		catch (Exception ex) {
			ex.printStackTrace();
			System.exit(1);
		}
	}
}
{code}

produces the following output:

{code}
</tmp/MissingOptionException> $ javac -cp commons-cli-1.2.jar Test.java

</tmp/MissingOptionException> $ java -cp commons-cli-1.2.jar:. Test
OPT: java.lang.String
OPT: org.apache.commons.cli.OptionGroup
{code}

The JavaDoc for MissingOptionException.getMissingOptions() says:

{quote}
Return the list of options (as strings) missing in the command line parsed.
{quote}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message