org.apache.commons.cli
Class OptionBuilder

java.lang.Object
  extended byorg.apache.commons.cli.OptionBuilder

public class OptionBuilder
extends java.lang.Object

OptionBuilder allows the user to create Options using descriptive methods.

Details on the Builder pattern can be found at http://c2.com/cgi-bin/wiki?BuilderPattern.

Since:
1.0
Author:
John Keyes ( john at integralsource.com )

Field Summary
private static java.lang.String argName
          argument name
private static java.lang.String description
          option description
private static OptionBuilder instance
          option builder instance
private static java.lang.String longopt
          long option
private static int numberOfArgs
          the number of arguments
private static boolean optionalArg
          option can have an optional argument value
private static boolean required
          is required?
private static java.lang.Object type
          option type
private static char valuesep
          value separator for argument value
 
Constructor Summary
private OptionBuilder()
           
 
Method Summary
static Option create()
          Create an Option using the current settings
static Option create(char opt)
          Create an Option using the current settings and with the specified Option char.
static Option create(java.lang.String opt)
          Create an Option using the current settings and with the specified Option char.
static OptionBuilder hasArg()
          The next Option created will require an argument value.
static OptionBuilder hasArg(boolean hasArg)
          The next Option created will require an argument value if hasArg is true.
static OptionBuilder hasArgs()
          The next Option created can have unlimited argument values.
static OptionBuilder hasArgs(int num)
          The next Option created can have num argument values.
static OptionBuilder hasOptionalArg()
          The next Option can have an optional argument.
static OptionBuilder hasOptionalArgs()
          The next Option can have an unlimited number of optional arguments.
static OptionBuilder hasOptionalArgs(int numArgs)
          The next Option can have the specified number of optional arguments.
static OptionBuilder isRequired()
          The next Option created will be required.
static OptionBuilder isRequired(boolean required)
          The next Option created will be required if required is true.
private static void reset()
          Resets the member variables to their default values.
static OptionBuilder withArgName(java.lang.String name)
          The next Option created will have the specified argument value name.
static OptionBuilder withDescription(java.lang.String description)
          The next Option created will have the specified description
static OptionBuilder withLongOpt(java.lang.String longopt)
          The next Option created will have the following long option value.
static OptionBuilder withType(java.lang.Object type)
          The next Option created will have a value that will be an instance of type.
static OptionBuilder withValueSeparator()
          The next Option created uses '=' as a means to separate argument values.
static OptionBuilder withValueSeparator(char sep)
          The next Option created uses sep as a means to separate argument values.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

longopt

private static java.lang.String longopt
long option


description

private static java.lang.String description
option description


argName

private static java.lang.String argName
argument name


required

private static boolean required
is required?


numberOfArgs

private static int numberOfArgs
the number of arguments


type

private static java.lang.Object type
option type


optionalArg

private static boolean optionalArg
option can have an optional argument value


valuesep

private static char valuesep
value separator for argument value


instance

private static OptionBuilder instance
option builder instance

Constructor Detail

OptionBuilder

private OptionBuilder()
Method Detail

reset

private static void reset()

Resets the member variables to their default values.


withLongOpt

public static OptionBuilder withLongOpt(java.lang.String longopt)

The next Option created will have the following long option value.

Parameters:
longopt - the long option value
Returns:
the OptionBuilder instance

hasArg

public static OptionBuilder hasArg()

The next Option created will require an argument value.

Returns:
the OptionBuilder instance

hasArg

public static OptionBuilder hasArg(boolean hasArg)

The next Option created will require an argument value if hasArg is true.

Parameters:
hasArg - if true then the Option has an argument value
Returns:
the OptionBuilder instance

withArgName

public static OptionBuilder withArgName(java.lang.String name)

The next Option created will have the specified argument value name.

Parameters:
name - the name for the argument value
Returns:
the OptionBuilder instance

isRequired

public static OptionBuilder isRequired()

The next Option created will be required.

Returns:
the OptionBuilder instance

withValueSeparator

public static OptionBuilder withValueSeparator(char sep)

The next Option created uses sep as a means to separate argument values.

Example:
 Option opt = OptionBuilder.withValueSeparator( ':' )
                           .create( 'D' );

 CommandLine line = parser.parse( args );
 String propertyName = opt.getValue( 0 );
 String propertyValue = opt.getValue( 1 );
 

Returns:
the OptionBuilder instance

withValueSeparator

public static OptionBuilder withValueSeparator()

The next Option created uses '=' as a means to separate argument values.

Example:
 Option opt = OptionBuilder.withValueSeparator( )
                           .create( 'D' );

 CommandLine line = parser.parse( args );
 String propertyName = opt.getValue( 0 );
 String propertyValue = opt.getValue( 1 );
 

Returns:
the OptionBuilder instance

isRequired

public static OptionBuilder isRequired(boolean required)

The next Option created will be required if required is true.

Parameters:
required - if true then the Option is required
Returns:
the OptionBuilder instance

hasArgs

public static OptionBuilder hasArgs()

The next Option created can have unlimited argument values.

Returns:
the OptionBuilder instance

hasArgs

public static OptionBuilder hasArgs(int num)

The next Option created can have num argument values.

Parameters:
num - the number of args that the option can have
Returns:
the OptionBuilder instance

hasOptionalArg

public static OptionBuilder hasOptionalArg()

The next Option can have an optional argument.

Returns:
the OptionBuilder instance

hasOptionalArgs

public static OptionBuilder hasOptionalArgs()

The next Option can have an unlimited number of optional arguments.

Returns:
the OptionBuilder instance

hasOptionalArgs

public static OptionBuilder hasOptionalArgs(int numArgs)

The next Option can have the specified number of optional arguments.

Parameters:
numArgs - - the maximum number of optional arguments the next Option created can have.
Returns:
the OptionBuilder instance

withType

public static OptionBuilder withType(java.lang.Object type)

The next Option created will have a value that will be an instance of type.

Parameters:
type - the type of the Options argument value
Returns:
the OptionBuilder instance

withDescription

public static OptionBuilder withDescription(java.lang.String description)

The next Option created will have the specified description

Parameters:
description - a description of the Option's purpose
Returns:
the OptionBuilder instance

create

public static Option create(char opt)
                     throws java.lang.IllegalArgumentException

Create an Option using the current settings and with the specified Option char.

Parameters:
opt - the character representation of the Option
Returns:
the Option instance
Throws:
java.lang.IllegalArgumentException - if opt is not a valid character. See Option.

create

public static Option create()
                     throws java.lang.IllegalArgumentException

Create an Option using the current settings

Returns:
the Option instance
Throws:
java.lang.IllegalArgumentException - if longOpt has not been set.

create

public static Option create(java.lang.String opt)
                     throws java.lang.IllegalArgumentException

Create an Option using the current settings and with the specified Option char.

Parameters:
opt - the java.lang.String representation of the Option
Returns:
the Option instance
Throws:
java.lang.IllegalArgumentException - if opt is not a valid character. See Option.