public abstract class NamedObjectParameter<T> extends 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(String name,
Class<T> clazz)
Constructs a new parameter with no named options.
|
Modifier and Type | Method and Description |
---|---|
void |
addOption(String name,
T option)
Adds an option with an associated name.
|
abstract T |
fromString(String name)
Translates a string value for this parameter into the object value
which it represents.
|
String[] |
getNames()
Returns the names of all the named options known for this parameter.
|
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.
|
String |
getUsage()
Returns the usage string for this parameter.
|
void |
setDefaultOption(T option)
Sets the default value of this parameter as an option value object.
|
void |
setUsage(String usage)
Sets a usage string for this parameter.
|
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.
|
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 void addOption(String name, T option)
toString(option)
.name
- option aliasoption
- option value objectpublic 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 valueTaskException
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 String toString(T option)
option
- object valuepublic abstract T fromString(String name)
The implementation must be such that
fromString(toString(o)).equals(o)
.
name
- option namepublic String getOptionList()
public String[] getNames()
public T[] getOptions()
public void setUsage(String usage)
Parameter
Parameter
class uses the string "<value>"
as the default usage string.Copyright © 2024 Central Laboratory of the Research Councils. All Rights Reserved.