HelloWorld_4
Prev | Chapter 3. Quick Start | Next

## HelloWorld_4

Here we've added an `UnflaggedOption` to greet specific names. It's marked as "greedy", so any number of names on the command line are associated with this option.

        public static void main(String[] args) throws Exception {
            JSAP jsap = new JSAP();

            FlaggedOption opt1 = new FlaggedOption("count")
                                    .setStringParser(JSAP.INTEGER_PARSER)
                                    .setDefault("1")
                                    .setRequired(true)
                                    .setShortFlag('n')
                                    .setLongFlag(JSAP.NO_LONGFLAG);

            jsap.registerParameter(opt1);

            Switch sw1 = new Switch("verbose")
                            .setShortFlag('v')
                            .setLongFlag("verbose");

            jsap.registerParameter(sw1);

            // Create an unflagged option called "names" that we'll use to
            // say hello to particular people.
            // To make it more interesting, we'll make it "greedy", so
            // it consumes all remaining unflagged tokens on the command line
            // as multiple values
            UnflaggedOption opt2 = new UnflaggedOption("name")
                                    .setStringParser(JSAP.STRING_PARSER)
                                    .setDefault("World")
                                    .setRequired(false)
                                    .setGreedy(true);

            jsap.registerParameter(opt2);

            JSAPResult config = jsap.parse(args);

            String[] names = config.getStringArray("name");
            for (int i = 0; i < config.getInt("count"); ++i) {
                for (int j = 0; j < names.length; ++j) {
                    System.out.println(
                        (config.getBoolean("verbose") ? "Hello" : "Hi")
                            + ", "
                            + names[j]
                            + "!");
                }
            }
        }

    [mlamb@morbo]$ java com.martiansoftware.jsap.examples.Manual_HelloWorld_4 -n 2 --verbose Bender Fry Leela
    Hello, Bender!
    Hello, Fry!
    Hello, Leela!
    Hello, Bender!
    Hello, Fry!
    Hello, Leela!

    [mlamb@morbo]$ java com.martiansoftware.jsap.examples.Manual_HelloWorld_4 Kif -n 3
    Hi, Kif!
    Hi, Kif!
    Hi, Kif!

    [mlamb@morbo]$ java com.martiansoftware.jsap.examples.Manual_HelloWorld_4 -v -n 2
    Hello, World!
    Hello, World!

Prev | Up | Next
HelloWorld_3 | Home | HelloWorld_5