joptsimple
Class ArgumentAcceptingOptionSpec

java.lang.Object
  extended by joptsimple.ArgumentAcceptingOptionSpec

public abstract class ArgumentAcceptingOptionSpec
extends Object

Specification of an option that accepts an argument.

Instances are returned from OptionSpecBuilder methods to allow the formation of parser directives as sentences in a domain-specific language. For example:

   
   OptionParser parser = new OptionParser();
   parser.accepts( "c" ).withRequiredArg().ofType( Integer.class );
   
 

If no methods are invoked on an instance of this class, then that instance's option will treat its argument as a String.

Since:
1.0
Version:
$Id: ArgumentAcceptingOptionSpec.java,v 1.9 2008/05/23 15:02:43 pholser Exp $
Author:
Paul Holser

Method Summary
 ArgumentAcceptingOptionSpec describedAs(String description)
          Specifies a description for the argument of the option that this spec represents.
 boolean equals(Object that)
          
 int hashCode()
          
 ArgumentAcceptingOptionSpec ofType(Class argumentType)
          Specifies a type to which arguments of this spec's option are to be converted.
 ArgumentAcceptingOptionSpec withValuesSeparatedBy(char separator)
          Specifies a value separator for the argument of the option that this spec represents.
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

ofType

public ArgumentAcceptingOptionSpec ofType(Class argumentType)

Specifies a type to which arguments of this spec's option are to be converted.

JOpt Simple accepts types that have either:

  1. a public static method called valueOf which accepts a single argument of type String and whose return type is the same as the class on which the method is declared. The java.lang primitive wrapper classes have such methods.
  2. a public constructor which accepts a single argument of type String.

This class converts arguments using those methods in that order; that is, valueOf would be invoked before a one-String-arg constructor would.

Parameters:
argumentType - desired type of arguments to this spec's option
Returns:
self, so that the caller can add clauses to the domain-specific sentence
Throws:
NullPointerException - if the type is null
IllegalArgumentException - if the type does not have the standard conversion methods

describedAs

public final ArgumentAcceptingOptionSpec describedAs(String description)

Specifies a description for the argument of the option that this spec represents. This description is used when generating help information about the parser.

Parameters:
description - describes the nature of the argument of this spec's option
Returns:
self, so that the caller can add clauses to the domain-specific sentence

withValuesSeparatedBy

public final ArgumentAcceptingOptionSpec withValuesSeparatedBy(char separator)

Specifies a value separator for the argument of the option that this spec represents. This allows a single option argument to represent multiple values for the option. For example:

   
   parser.accepts( "z" ).withRequiredArg()
       .withValuesSeparatedBy( ',' );
   OptionSet options = parser.parse( new String[] { "-z", "foo,bar,baz", "-z",
       "fizz", "buzz" } );
   
 

Then options.valuesOf( "z" ) would yield the list [foo, bar, baz, fizz, buzz].

You cannot use Unicode U+0000 as the separator.

Parameters:
separator - a character separator
Returns:
self, so that the caller can add clauses to the domain-specific sentence
Throws:
IllegalArgumentException - if the separator is Unicode U+0000

equals

public boolean equals(Object that)


hashCode

public int hashCode()



© Copyright 2004-2008 Paul R. Holser, Jr. All rights reserved. Licensed under the Academic Free License version 3.0. pholser@alumni.rice.edu