uk.ac.starlink.ttools.plottask
Class NamedObjectParameter

java.lang.Object
  extended by uk.ac.starlink.task.Parameter
      extended by uk.ac.starlink.ttools.plottask.NamedObjectParameter
Direct Known Subclasses:
ColorParameter, DashParameter

public abstract class NamedObjectParameter
extends uk.ac.starlink.task.Parameter

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.

Since:
14 Aug 2008
Author:
Mark Taylor

Constructor Summary
NamedObjectParameter(String name)
          Constructs a new parameter with no named options.
 
Method Summary
 void addOption(String name, Object option)
          Adds an option with an associated name.
abstract  Object 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.
 Object[] getOptions()
          Returns the option objects for all the named options known for this parameter.
 String getUsage()
           
 Object objectValue(uk.ac.starlink.task.Environment env)
          Returns the value of this parameter as an object.
 void setDefaultOption(Object option)
          Sets the default value of this parameter as an option value object.
 void setUsage(String usage)
           
 void setValueFromString(uk.ac.starlink.task.Environment env, String sval)
           
 String toString(Object 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
checkGotValue, clearValue, getDefault, getDescription, getName, getPosition, getPreferExplicit, getPrompt, isNullPermitted, setDefault, setDescription, setDescription, setGotValue, setName, setNullPermitted, setPosition, setPreferExplicit, setPrompt, setStringValue, stringValue, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

NamedObjectParameter

public NamedObjectParameter(String name)
Constructs a new parameter with no named options.

Parameters:
name - parameter name
Method Detail

addOption

public void addOption(String name,
                      Object 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

setValueFromString

public void setValueFromString(uk.ac.starlink.task.Environment env,
                               String sval)
                        throws uk.ac.starlink.task.TaskException
Overrides:
setValueFromString in class uk.ac.starlink.task.Parameter
Throws:
uk.ac.starlink.task.TaskException

objectValue

public Object objectValue(uk.ac.starlink.task.Environment env)
                   throws uk.ac.starlink.task.TaskException
Returns the value of this parameter as an object. The returned value will be one of:

Parameters:
env - execution environment
Returns:
option value
Throws:
uk.ac.starlink.task.TaskException

setDefaultOption

public void setDefaultOption(Object option)
Sets the default value of this parameter as an option value object. option must be either one of the values added using addOption(java.lang.String, java.lang.Object) 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(Object 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 Object 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 Object[] 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

getUsage

public String getUsage()
Overrides:
getUsage in class uk.ac.starlink.task.Parameter


Copyright © 2009 Central Laboratory of the Research Councils. All Rights Reserved.