Class 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
    • Constructor Detail

      • ObjectFactoryParameter

        public ObjectFactoryParameter​(java.lang.String name,
                                      uk.ac.starlink.util.ObjectFactory<T> factory)
        Constructor.
        Parameters:
        name - parameter name
        factory - object factory
    • Method Detail

      • 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,
                                java.lang.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