Package org.mvel2.integration.impl
Class ImmutableDefaultFactory
- java.lang.Object
-
- org.mvel2.integration.impl.ImmutableDefaultFactory
-
- All Implemented Interfaces:
java.io.Serializable
,VariableResolverFactory
public class ImmutableDefaultFactory extends java.lang.Object implements VariableResolverFactory
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
tiltFlag
-
Constructor Summary
Constructors Constructor Description ImmutableDefaultFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description VariableResolver
createIndexedVariable(int index, java.lang.String name, java.lang.Object value)
VariableResolver
createIndexedVariable(int index, java.lang.String name, java.lang.Object value, java.lang.Class<?> typee)
VariableResolver
createVariable(java.lang.String name, java.lang.Object value)
Creates a new variable.VariableResolver
createVariable(java.lang.String name, java.lang.Object value, java.lang.Class<?> type)
Creates a new variable, and assigns a static type.VariableResolver
getIndexedVariableResolver(int index)
java.util.Set<java.lang.String>
getKnownVariables()
Return a list of known variables inside the factory.VariableResolverFactory
getNextFactory()
Returns the next factory in the factory chain.VariableResolver
getVariableResolver(java.lang.String name)
Return a variable resolver for the specified variable name.boolean
isIndexedFactory()
boolean
isResolveable(java.lang.String name)
Determines whether or not the variable is resolver in the chain of factories.boolean
isTarget(java.lang.String name)
Deterimines whether or not the current VariableResolverFactory is the physical target for the actual variable.VariableResolver
setIndexedVariableResolver(int index, VariableResolver variableResolver)
VariableResolverFactory
setNextFactory(VariableResolverFactory resolverFactory)
Sets the next factory in the chain.void
setTiltFlag(boolean tilt)
private void
throwError()
boolean
tiltFlag()
int
variableIndexOf(java.lang.String name)
-
-
-
Method Detail
-
throwError
private void throwError()
-
createVariable
public VariableResolver createVariable(java.lang.String name, java.lang.Object value)
Description copied from interface:VariableResolverFactory
Creates a new variable. This probably doesn't need to be implemented in most scenarios. This is used for variable assignment.- Specified by:
createVariable
in interfaceVariableResolverFactory
- Parameters:
name
- - name of the variable being createdvalue
- - value of the variable- Returns:
- instance of the variable resolver associated with the variable
-
createIndexedVariable
public VariableResolver createIndexedVariable(int index, java.lang.String name, java.lang.Object value)
- Specified by:
createIndexedVariable
in interfaceVariableResolverFactory
-
createVariable
public VariableResolver createVariable(java.lang.String name, java.lang.Object value, java.lang.Class<?> type)
Description copied from interface:VariableResolverFactory
Creates a new variable, and assigns a static type. It is expected the underlying factory and resolver will enforce this.- Specified by:
createVariable
in interfaceVariableResolverFactory
- Parameters:
name
- - name of the variable being createdvalue
- - value of the variabletype
- - the static type- Returns:
- instance of the variable resolver associated with the variable
-
createIndexedVariable
public VariableResolver createIndexedVariable(int index, java.lang.String name, java.lang.Object value, java.lang.Class<?> typee)
- Specified by:
createIndexedVariable
in interfaceVariableResolverFactory
-
setIndexedVariableResolver
public VariableResolver setIndexedVariableResolver(int index, VariableResolver variableResolver)
- Specified by:
setIndexedVariableResolver
in interfaceVariableResolverFactory
-
getNextFactory
public VariableResolverFactory getNextFactory()
Description copied from interface:VariableResolverFactory
Returns the next factory in the factory chain. MVEL uses a hierarchical variable resolution strategy, much in the same way as Classloaders in Java. For performance reasons, it is the responsibility of the individual VariableResolverFactory to pass off to the next one.- Specified by:
getNextFactory
in interfaceVariableResolverFactory
- Returns:
- instance of the next factory - null if none.
-
setNextFactory
public VariableResolverFactory setNextFactory(VariableResolverFactory resolverFactory)
Description copied from interface:VariableResolverFactory
Sets the next factory in the chain. Proper implementation:return this.nextFactory = resolverFactory;
- Specified by:
setNextFactory
in interfaceVariableResolverFactory
- Parameters:
resolverFactory
- - instance of next resolver factory- Returns:
- - instance of next resolver factory
-
getVariableResolver
public VariableResolver getVariableResolver(java.lang.String name)
Description copied from interface:VariableResolverFactory
Return a variable resolver for the specified variable name. This method is expected to traverse the heirarchy of ResolverFactories.- Specified by:
getVariableResolver
in interfaceVariableResolverFactory
- Parameters:
name
- - variable name- Returns:
- - instance of the VariableResolver for the specified variable
-
getIndexedVariableResolver
public VariableResolver getIndexedVariableResolver(int index)
- Specified by:
getIndexedVariableResolver
in interfaceVariableResolverFactory
-
isTarget
public boolean isTarget(java.lang.String name)
Description copied from interface:VariableResolverFactory
Deterimines whether or not the current VariableResolverFactory is the physical target for the actual variable.- Specified by:
isTarget
in interfaceVariableResolverFactory
- Parameters:
name
- - variable name- Returns:
- - boolean indicating whether or not factory is the physical target
-
isResolveable
public boolean isResolveable(java.lang.String name)
Description copied from interface:VariableResolverFactory
Determines whether or not the variable is resolver in the chain of factories.- Specified by:
isResolveable
in interfaceVariableResolverFactory
- Parameters:
name
- - variable name- Returns:
- - boolean
-
getKnownVariables
public java.util.Set<java.lang.String> getKnownVariables()
Description copied from interface:VariableResolverFactory
Return a list of known variables inside the factory. This method should not recurse into other factories. But rather return only the variables living inside this factory.- Specified by:
getKnownVariables
in interfaceVariableResolverFactory
- Returns:
- variables
-
variableIndexOf
public int variableIndexOf(java.lang.String name)
- Specified by:
variableIndexOf
in interfaceVariableResolverFactory
-
isIndexedFactory
public boolean isIndexedFactory()
- Specified by:
isIndexedFactory
in interfaceVariableResolverFactory
-
tiltFlag
public boolean tiltFlag()
- Specified by:
tiltFlag
in interfaceVariableResolverFactory
-
setTiltFlag
public void setTiltFlag(boolean tilt)
- Specified by:
setTiltFlag
in interfaceVariableResolverFactory
-
-