|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectuk.ac.starlink.task.Parameter<T>
uk.ac.starlink.task.ChoiceParameter<T>
public class ChoiceParameter<T>
Parameter whose legal value must be one of a disjunction of given values. Matching is case-insensitive against the stringified value of the option.
Field Summary |
---|
Fields inherited from class uk.ac.starlink.task.Parameter |
---|
BY_NAME |
Constructor Summary | |
---|---|
ChoiceParameter(String name,
Class<T> clazz)
Constructs a choice parameter with no initially set options. |
|
ChoiceParameter(String name,
Class<T> clazz,
T[] options)
Constructor. |
|
ChoiceParameter(String name,
T[] options)
Constructs a choice parameter with an initial option set. |
Method Summary | |
---|---|
void |
addOption(T option)
Adds an option value to this parameter. |
void |
addOption(T option,
String name)
Adds an option value to this parameter with a given name. |
void |
clearOptions()
Clears the list of known options. |
String |
getName(T option)
Converts an option value object to a string which is used to identify it as a string value of this parameter. |
T |
getOption(String name)
Returns the option value associated with a given string by this parameter. |
String[] |
getOptionNames()
Returns an array of the string values of options accepted by this parameter. |
T[] |
getOptions()
Returns an array of the option objects which may form the values of this parameter. |
Collection<T> |
getOptionValueList()
Returns a collection of the option objects which may form the values of this parameter. |
String |
getUsage()
Returns a usage message. |
String |
objectToString(Environment env,
T objVal)
Takes a typed value of this parameter and formats it as a string which may be used for presentation to the user. |
void |
setDefaultOption(T option)
Sets the default value for this parameter to one of the previously added options. |
void |
setUsage(String usage)
Sets a usage string for this parameter. |
String |
stringifyOption(T option)
Determines how an option will be represented as a string value of this parameter if no name has explicitly been supplied. |
T |
stringToObject(Environment env,
String sval)
Takes a non-blank string, as supplied by the execution environment, and turns it into a typed value for this parameter. |
Methods inherited from class uk.ac.starlink.task.Parameter |
---|
clearValue, getDescription, getName, getPosition, getPreferExplicit, getPrompt, getStringDefault, getValueClass, isNullPermitted, objectValue, setDescription, setDescription, setName, setNullPermitted, setPosition, setPreferExplicit, setPrompt, setStringDefault, setValue, setValueFromObject, setValueFromString, stringValue, toArray, toString |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public ChoiceParameter(String name, Class<T> clazz, T[] options)
name
- parameter nameclazz
- type for values of this parameteroptions
- initial array of legal values of this parameterpublic ChoiceParameter(String name, Class<T> clazz)
name
- parameter nameclazz
- type for values of this parameterpublic ChoiceParameter(String name, T[] options)
name
- parameter nameoptions
- initial array of legal values of this parameterMethod Detail |
---|
public T stringToObject(Environment env, String sval) throws TaskException
Parameter
It is an error to supply a null or empty string value.
If this method fails (throws a ParameterValueException)
and if allowClassnameValue
is set, then a subsequent
attempt will be made to interpret the stringVal
as the classname of a suitable class with a no-arg constructor.
stringToObject
in class Parameter<T>
env
- execution environment; in most cases this is not required
but for some purposes environment-specific characteristics
may influence the resultsval
- non-null, non-empty string value
TaskException
public String objectToString(Environment env, T objVal)
Parameter
stringToObject
should be possible,
but that is not in general required/guaranteed.
The default implementation uses the value's toString method, but subclasses can override this for smarter behaviour.
objectToString
in class Parameter<T>
env
- execution environmentobjVal
- typed parameter value
public void addOption(T option, String name)
option
- option objectname
- label for optionpublic void addOption(T option)
stringifyOption(T)
method.
option
- option objectpublic void clearOptions()
public String getUsage()
setUsage(java.lang.String)
, this will return a usage message based on
the list of known options.
getUsage
in class Parameter<T>
Parameter.setUsage(java.lang.String)
public void setUsage(String usage)
Parameter
Parameter
class uses the string "<value>"
as the default usage string.
setUsage
in class Parameter<T>
usage
- usage stringpublic void setDefaultOption(T option)
option
- default optionpublic String[] getOptionNames()
public T[] getOptions()
public Collection<T> getOptionValueList()
public String getName(T option)
option
- option value
public String stringifyOption(T option)
String.valueOf(option)
,
but this may be overrridden.
option
- option value
public T getOption(String name)
name
- name of option which has been added
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |