Class VariableFactory

  • All Implemented Interfaces:
    JepComponent, java.io.Serializable
    Direct Known Subclasses:
    BoundVariableFactory, XVariableFactory

    public class VariableFactory
    extends java.lang.Object
    implements JepComponent
    A factory class which is used to create variables. By default this class creates variables of type Variable. This class should be sub-classed if the type of variable used needs to be changed. This class is passed to the constructor of VariableTable which ensures that variables of the correct type are always created.

    This class should only be called from the VariableTable class and not from application code.

    Since:
    23 July 2006 - allows a defaultValue to be set.
    Author:
    Rich Morris Created on 19-Dec-2003
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.Object defaultValue
      The default value to use when variable is created with no value
    • Constructor Summary

      Constructors 
      Constructor Description
      VariableFactory()  
    • Field Detail

      • defaultValue

        protected java.lang.Object defaultValue
        The default value to use when variable is created with no value
    • Constructor Detail

      • VariableFactory

        public VariableFactory()
    • Method Detail

      • init

        public void init​(Jep j)
        Description copied from interface: JepComponent
        Initialize the component. This methods is called whenever a component is added to Jep. Hence it allows components to keep track of the other components they may rely on.
        Specified by:
        init in interface JepComponent
        Parameters:
        j - the current Jep instance
      • createVariable

        public Variable createVariable​(java.lang.String name,
                                       java.lang.Object value)
        Create a variable with a name and value. Subclasses should overwrite this method to return variables of the correct type
        Parameters:
        name - name of variable
        value - initial value
        Returns:
        referece to Variable object
      • createVariable

        public Variable createVariable​(java.lang.String name)
        Create a variable with a name but not value Calls createVariable(String, Object) so subclasses need not override this method.
        Parameters:
        name - name of variable
        Returns:
        referece to Variable object
      • copyVariable

        public Variable copyVariable​(Variable var)
        Create a new variable which is a copy of this one. Copies the isConstant and isValidValue flags copies all hook key value pairs. Calls createVariable(String, Object) so subclasses need not override this method, unless there are other fields which need to be copied.
        Parameters:
        var -
        Returns:
      • getDefaultValue

        public java.lang.Object getDefaultValue()
        Returns:
        Returns the defaultValue.
      • setDefaultValue

        public void setDefaultValue​(java.lang.Object defaultValue)
        Sets the default value used whenever a new variable is created.
        Parameters:
        defaultValue - The defaultValue to set.
      • getLightWeightInstance

        public JepComponent getLightWeightInstance()
        Description copied from interface: JepComponent
        Gets a light-weight instance suitable for using in multiple threads.
        Specified by:
        getLightWeightInstance in interface JepComponent
        Returns:
        either an new instance, null or 'this'.