laser.util.argument
Class IntegerChoiceOption

java.lang.Object
  extended by laser.util.argument.Argument
      extended by laser.util.argument.Option
          extended by laser.util.argument.ChoiceOption
              extended by laser.util.argument.IntegerChoiceOption
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable

public class IntegerChoiceOption
extends ChoiceOption

The IntegerChoiceOption class defines a user-defined choice option of type Integer.

Author:
Heather M. Conboy (laser-software@cs.umass.edu)
See Also:
Serialized Form

Field Summary
 
Fields inherited from class laser.util.argument.ChoiceOption
CHOICE_REPEATABLE_DEFAULT
 
Fields inherited from class laser.util.argument.Option
DEFAULT_PREFIX, DEFAULT_SUFFIX, NOT_REPEATABLE_CHAR, REPEATABLE_CHAR
 
Fields inherited from class laser.util.argument.Argument
FIRST, HELP_DEFAULT, HELP_PREFIX, REPEATABLE_DEFAULT, TYPE_PREFIX, TYPE_SUFFIX
 
Constructor Summary
IntegerChoiceOption(java.lang.String name, java.lang.Integer[] choices, java.lang.Integer defaultValue)
          Creates a new IntegerChoiceOption with the given name and default value.
IntegerChoiceOption(java.lang.String name, java.lang.Integer[] choices, java.lang.Integer defaultValue, java.lang.String helpMessage)
          Creates a new IntegerChoiceOption with the given name and default value.
 
Method Summary
 void check()
          Checks whether or not the user correctly specified a value for this argument.
 java.lang.Object clone()
          Clones this Object.
protected  java.lang.Object fromStringValue(java.lang.String value)
          Parses a String value into an Object appropriate for the type
protected  java.lang.String getDefaultString()
          Gets the default string which describes the default value of this StringChoiceOption.
 java.lang.Integer getIntegerValue()
          Gets the first value of this IntegerChoiceOption.
 java.lang.Integer getIntegerValue(int index)
          Gets the value of this IntegerChoiceOption at the specified index.
 java.lang.Class getType()
          Gets the type of this Option.
protected  boolean isValid(java.lang.Object choice)
          Returns whether or not the given choice is valid.
 void setValue(java.lang.Integer value)
          Sets the value of this IntegerChoiceOption to the specified value.
 
Methods inherited from class laser.util.argument.ChoiceOption
getAllChoices, getHelp, numberOfChoices, setValue
 
Methods inherited from class laser.util.argument.Option
getDefault, getRepeatableChar, getValue, numberOfValues
 
Methods inherited from class laser.util.argument.Argument
checkValue, clear, equals, getHelpMessage, getName, getValue, getValues, initialize, isRepeatable, numberOfActualValues, parseValue, save, toString, toStringValue, toStringValue
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

IntegerChoiceOption

public IntegerChoiceOption(java.lang.String name,
                           java.lang.Integer[] choices,
                           java.lang.Integer defaultValue,
                           java.lang.String helpMessage)
                    throws InvalidChoiceException
Creates a new IntegerChoiceOption with the given name and default value. It will be multi-valued if isRepeatable is true and single-valued otherwise. The help message will be made available to the user upon request.

Parameters:
name - The name for the option
choices - The possible values for the option
defaultValue - The value of the option if the user doesn't specify a value
isRepeatable - If true then this option is multi-valued otherwise it is single-valued
helpMessage - The help message to report to the user upon request
Throws:
InvalidChoiceException - if no choices were given or if one of the choices is a duplicate
See Also:
ChoiceOption.CHOICE_REPEATABLE_DEFAULT

IntegerChoiceOption

public IntegerChoiceOption(java.lang.String name,
                           java.lang.Integer[] choices,
                           java.lang.Integer defaultValue)
                    throws InvalidChoiceException
Creates a new IntegerChoiceOption with the given name and default value. It will have the default setting for isRepeatable and helpMessage.

Parameters:
name - The name for the option
choices - The possible values for the option
defaultValue - The value of the option if the user doesn't specify a value
Throws:
InvalidChoiceException - if no choices were given or if one of the choices is a duplicate
See Also:
ChoiceOption.CHOICE_REPEATABLE_DEFAULT, Argument.HELP_DEFAULT
Method Detail

isValid

protected boolean isValid(java.lang.Object choice)
Returns whether or not the given choice is valid.

Specified by:
isValid in class ChoiceOption
Returns:
True if the choice is valid and false otherwise

setValue

public void setValue(java.lang.Integer value)
              throws ArgumentFormatException,
                     ArgumentNotRepeatableException
Sets the value of this IntegerChoiceOption to the specified value.

Parameters:
value - The value for this IntegerChoiceOption
Throws:
ArgumentFormatException - if the value is incorrectly formatted
ArgumentNotRepeatableException - if the user attempted to set the value of a single-valued argument multiple times

getIntegerValue

public java.lang.Integer getIntegerValue()
Gets the first value of this IntegerChoiceOption.

Returns:
The first value

getIntegerValue

public java.lang.Integer getIntegerValue(int index)
Gets the value of this IntegerChoiceOption at the specified index.

NOTE: All options will have at least one value at index Argument.FIRST.

Parameters:
index - The index of the value
Returns:
The string value

fromStringValue

protected java.lang.Object fromStringValue(java.lang.String value)
                                    throws ArgumentFormatException
Parses a String value into an Object appropriate for the type

Specified by:
fromStringValue in class Argument
Parameters:
value - the value
Returns:
the parsed Object
Throws:
ArgumentFormatException - if the value is malformed
See Also:
laser.util.argument.Argument.toStringValue(Object)

getType

public java.lang.Class getType()
Gets the type of this Option.

Specified by:
getType in class Argument
Returns:
The type description

getDefaultString

protected java.lang.String getDefaultString()
Gets the default string which describes the default value of this StringChoiceOption.

Specified by:
getDefaultString in class Option
Returns:
The default string description

check

public void check()
           throws ArgumentFormatException
Checks whether or not the user correctly specified a value for this argument.

Specified by:
check in class Argument
Throws:
ArgumentFormatException

clone

public java.lang.Object clone()
Clones this Object.

Specified by:
clone in class Argument
Returns:
The clone