# Class NamedObjectParameter<T>

java.lang.Object
uk.ac.starlink.task.Parameter<T>
uk.ac.starlink.ttools.plottask.NamedObjectParameter<T>

Direct Known Subclasses:
  `ColorParameter, DashParameter`

public abstract class NamedObjectParameter<T> extends uk.ac.starlink.task.Parameter<T>
Parameter subclass for selecting named options. This resembles `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.

Since:
  14 Aug 2008
Author:
  Mark Taylor

## Field Summary

### Fields inherited from class uk.ac.starlink.task.Parameter

`BY_NAME`

## Constructor Summary

Constructors
Constructor
Description
`NamedObjectParameter(String name, Class<T> clazz)`
Constructs a new parameter with no named options.

## Method Summary

Modifier and Type
Method
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()`
`void`
`setDefaultOption(T option)`
Sets the default value of this parameter as an option value object.
`void`
`setUsage(String usage)`
`T`
`stringToObject(uk.ac.starlink.task.Environment env, String sval)`
`String`
`toString(T option)`
Translates a possible option value of this parameter into a string which represents it as a string value.

### Methods inherited from class uk.ac.starlink.task.Parameter

`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`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### NamedObjectParameter

public NamedObjectParameter(String name, Class<T> clazz)
Constructs a new parameter with no named options.

Parameters:
  `name` - parameter name

## Method Details

### addOption

public void addOption(String name, T option)
Adds an option with an associated name. This name does not need to be `toString(option)`.

Parameters:
  `name` - option alias
  `option` - option value object

### stringToObject

public T stringToObject(uk.ac.starlink.task.Environment env, String sval) throws uk.ac.starlink.task.TaskException

Specified by:
  `stringToObject` in class `uk.ac.starlink.task.Parameter<T>`
Throws:
  `uk.ac.starlink.task.TaskException`

### setDefaultOption

public void setDefaultOption(T option)
Sets the default value of this parameter as an option value object. `option` must be either one of the values added using `addOption(String, T)` or `toString(java.lang.Object)` must be able to translate it. Or it could be null.

Parameters:
  `option` - new default value as an object

### toString

public String toString(T option)
Translates a possible option value of this parameter into a string which represents it as a string value.

Parameters:
  `option` - object value
Returns:
  corresponding string

### fromString

public abstract T fromString(String name)
Translates a string value for this parameter into the object value which it represents. Must return a suitable object value for this parameter, or throw an unchecked exception.

The implementation must be such that `fromString(toString(o)).equals(o)`.

Parameters:
  `name` - option name
Returns:
  corresponding option value

### getOptionList

public String getOptionList()
Returns a formatted XML string giving an unordered list of the options for this parameter. Suitable for insertion into a parameter description. Not enclosed in a <p> element.

Returns:
  option list XML string

### getNames

public String[] getNames()
Returns the names of all the named options known for this parameter.

Returns:
  name list

### getOptions

public T[] getOptions()
Returns the option objects for all the named options known for this parameter.

Returns:
  object list

### setUsage

public void setUsage(String usage)

Overrides:
  `setUsage` in class `uk.ac.starlink.task.Parameter<T>`

### getUsage

public String getUsage()

Overrides:
  `getUsage` in class `uk.ac.starlink.task.Parameter<T>`