Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Commons Wiki" for 
change notification.

The following page has been changed by Andrew Oxenburgh:
http://wiki.apache.org/commons/CLI2/sampleApplication

New page:
CLI Release 2 is not available as a download yet, though it is via a snapshot 
though SVN.

It differs greatly from CLI version 1 and deserves to be released. Here is a 
sample application that demonstrates the most simple use case.
  
"I want to add a single option to a program and have it print out on System.out 
whether that option was added on the command line. The option may be entered as 
'-l', or '--length'".

=== Use Cases ===
I have included JUnit tests but here are the possibilities.

1. call command without an option (eg 'calledCommand') which should display 
"didn't find '-l'"

2. call command with short option (eg 'calledCommand -l') which should display 
"found '-l'"

3. call command with long option (eg 'calledCommand --length') which should 
display "found '-l'"

I have included the source for both the application and the unit tests as 
attachements here.
  
{{{
package com.wategan.cli.demo;

import org.apache.commons.cli2.CommandLine;
import org.apache.commons.cli2.Group;
import org.apache.commons.cli2.builder.DefaultOptionBuilder;
import org.apache.commons.cli2.builder.GroupBuilder;
import org.apache.commons.cli2.commandline.Parser;
import org.apache.commons.cli2.option.DefaultOption;

/**
 * Very simple program which takes an optional '-l' or '--length' argument.
 * It then prints out whether it found the option or not.
 */
public class CLIDemoWithOneArgument {
    private final String LENGTH_OPTION_SHORT_NAME = "l";
    private final String LENGTH_OPTION_LONG_NAME = "length";

    CLIDemoWithOneArgument() {
    }

    private CommandLine parseArgs(String[] args) {
        DefaultOptionBuilder optionBuilder = new DefaultOptionBuilder();
        GroupBuilder groupBuilder = new GroupBuilder();

        DefaultOption longOption = optionBuilder
                .withShortName(LENGTH_OPTION_SHORT_NAME)
                .withLongName(LENGTH_OPTION_LONG_NAME)
                .create();

        Group group = groupBuilder.withOption(longOption).create();

        Parser parser = new Parser();
        parser.setGroup(group);

        return parser.parseAndHelp(args);
    }

    public void parseArgsAndTestOptions(String[] args) {
        CommandLine cmd = parseArgs(args);
        checkForOptionWithSmallName(cmd, "l");
    }

    private void checkForOptionWithSmallName(CommandLine cmd, String 
optionSmallName) {
        if (cmd.hasOption("-" +
                optionSmallName)) {
            System.out.println("found '" + optionSmallName + "'");
        } else {
            System.out.println("didn't find '" + optionSmallName + "'");
        }
    }

    public static void main(String[] args) {
        new CLIDemoWithOneArgument().parseArgsAndTestOptions(args);
    }
}
}}}

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to