Package uk.ac.starlink.task

# Class ObjectFactoryParameter<T>

java.lang.Object
uk.ac.starlink.task.Parameter<T>
uk.ac.starlink.task.ObjectFactoryParameter<T>

public class ObjectFactoryParameter<T> extends Parameter<T>
Parameter whose (user-supplied) string values correspond to nicknames from an `ObjectFactory`. The `Parameter.objectValue(uk.ac.starlink.task.Environment)` method returns the corresponding object generated by the factory for that nickname.

Since:
  22 Nov 2006
Author:
  Mark Taylor

## Field Summary

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

`BY_NAME`

## Constructor Summary

Constructors
Constructor
Description
`ObjectFactoryParameter(String name, uk.ac.starlink.util.ObjectFactory<T> factory)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`uk.ac.starlink.util.ObjectFactory<T>`
`getObjectFactory()`
Returns the object factory used by this parameter.
`String`
`getUsage()`
Returns the 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.

### 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, setUsage, setValue, setValueFromObject, setValueFromString, stringValue, toArray, toString`

### Methods inherited from class java.lang.Object

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

## Constructor Details

### ObjectFactoryParameter

public ObjectFactoryParameter(String name, uk.ac.starlink.util.ObjectFactory<T> factory)
Constructor.

Parameters:
  `name` - parameter name
  `factory` - object factory

## Method Details

### getObjectFactory

public uk.ac.starlink.util.ObjectFactory<T> getObjectFactory()
Returns the object factory used by this parameter.

Returns:
  object factory

### stringToObject

public T stringToObject(Environment env, String sval) throws ParameterValueException
Description copied from class: `Parameter`
Takes a non-blank string, as supplied by the execution environment, and turns it into a typed value for this parameter. This method also performs validation, so if the string value is unacceptable in any way, a ParameterValueException should be thrown.

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.

Specified by:
  `stringToObject` in class `Parameter<T>`
Parameters:
  `env` - execution environment; in most cases this is not required but for some purposes environment-specific characteristics may influence the result
  `sval` - non-null, non-empty string value
Returns:
  typed value
Throws:
  `ParameterValueException`

### getUsage

public String getUsage()
Description copied from class: `Parameter`
Returns the usage string for this parameter.

Overrides:
  `getUsage` in class `Parameter<T>`
Returns:
  usage string
See Also:
  - `Parameter.setUsage(java.lang.String)`