public abstract class NamedObjectParameter<T>
extends uk.ac.starlink.task.Parameter<T>
ChoiceParameter
in that several
named choices are available.
However, it is also possible to select options which are not in the
known option list. For this to work, a pair of methods
toString(java.lang.Object)
and fromString(java.lang.String)
must be implemented as inverses of each other so that a string can be
turned into an object.
The supplied options do not need to have names which follow this scheme.
Note: this class duplicates some of the functionality
in other Parameter subclasses. It's here for historical reasons.
New code in general ought not to make use of this class.Constructor and Description |
---|
NamedObjectParameter(java.lang.String name,
java.lang.Class<T> clazz)
Constructs a new parameter with no named options.
|
Modifier and Type | Method and Description |
---|---|
void |
addOption(java.lang.String name,
T option)
Adds an option with an associated name.
|
abstract T |
fromString(java.lang.String name)
Translates a string value for this parameter into the object value
which it represents.
|
java.lang.String[] |
getNames()
Returns the names of all the named options known for this parameter.
|
java.lang.String |
getOptionList()
Returns a formatted XML string giving an unordered list of the options
for this parameter.
|
T[] |
getOptions()
Returns the option objects for all the named options known for this
parameter.
|
java.lang.String |
getUsage() |
void |
setDefaultOption(T option)
Sets the default value of this parameter as an option value object.
|
void |
setUsage(java.lang.String usage) |
T |
stringToObject(uk.ac.starlink.task.Environment env,
java.lang.String sval) |
java.lang.String |
toString(T option)
Translates a possible option value of this parameter into a string
which represents it as a string value.
|
clearValue, getDescription, getName, getPosition, getPreferExplicit, getPrompt, getStringDefault, getValueClass, isNullPermitted, objectToString, objectValue, setDescription, setDescription, setName, setNullPermitted, setPosition, setPreferExplicit, setPrompt, setStringDefault, setValue, setValueFromObject, setValueFromString, stringValue, toArray, toString
public NamedObjectParameter(java.lang.String name, java.lang.Class<T> clazz)
name
- parameter namepublic void addOption(java.lang.String name, T option)
toString(option)
.name
- option aliasoption
- option value objectpublic T stringToObject(uk.ac.starlink.task.Environment env, java.lang.String sval) throws uk.ac.starlink.task.TaskException
stringToObject
in class uk.ac.starlink.task.Parameter<T>
uk.ac.starlink.task.TaskException
public void setDefaultOption(T option)
option
must be either one of the values added using
addOption(java.lang.String, T)
or toString(java.lang.Object)
must be
able to translate it. Or it could be null.option
- new default value as an objectpublic java.lang.String toString(T option)
option
- object valuepublic abstract T fromString(java.lang.String name)
The implementation must be such that
fromString(toString(o)).equals(o)
.
name
- option namepublic java.lang.String getOptionList()
public java.lang.String[] getNames()
public T[] getOptions()
public void setUsage(java.lang.String usage)
setUsage
in class uk.ac.starlink.task.Parameter<T>
public java.lang.String getUsage()
getUsage
in class uk.ac.starlink.task.Parameter<T>
Copyright © 2017 Central Laboratory of the Research Councils. All Rights Reserved.