Package com.singularsys.jep
Class VariableFactory
- java.lang.Object
-
- com.singularsys.jep.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 typeVariable
. This class should be sub-classed if the type of variable used needs to be changed. This class is passed to the constructor ofVariableTable
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()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Variable
copyVariable(Variable var)
Create a new variable which is a copy of this one.Variable
createVariable(java.lang.String name)
Create a variable with a name but not value CallscreateVariable(String, Object)
so subclasses need not override this method.Variable
createVariable(java.lang.String name, java.lang.Object value)
Create a variable with a name and value.java.lang.Object
getDefaultValue()
JepComponent
getLightWeightInstance()
Gets a light-weight instance suitable for using in multiple threads.void
init(Jep j)
Initialize the component.void
setDefaultValue(java.lang.Object defaultValue)
Sets the default value used whenever a new variable is created.
-
-
-
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 interfaceJepComponent
- 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 variablevalue
- initial value- Returns:
- referece to Variable object
-
createVariable
public Variable createVariable(java.lang.String name)
Create a variable with a name but not value CallscreateVariable(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. CallscreateVariable(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 interfaceJepComponent
- Returns:
- either an new instance, null or 'this'.
-
-