org.mvel2.integration.impl
Class ImmutableDefaultFactory

java.lang.Object
  extended by 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

Constructor Summary
ImmutableDefaultFactory()
           
 
Method Summary
 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.
 int variableIndexOf(java.lang.String name)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ImmutableDefaultFactory

public ImmutableDefaultFactory()
Method Detail

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 interface VariableResolverFactory
Parameters:
name - - name of the variable being created
value - - 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 interface VariableResolverFactory

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 interface VariableResolverFactory
Parameters:
name - - name of the variable being created
value - - value of the variable
type - - 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 interface VariableResolverFactory

setIndexedVariableResolver

public VariableResolver setIndexedVariableResolver(int index,
                                                   VariableResolver variableResolver)
Specified by:
setIndexedVariableResolver in interface VariableResolverFactory

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 interface VariableResolverFactory
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 interface VariableResolverFactory
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 interface VariableResolverFactory
Parameters:
name - - variable name
Returns:
- instance of the VariableResolver for the specified variable

getIndexedVariableResolver

public VariableResolver getIndexedVariableResolver(int index)
Specified by:
getIndexedVariableResolver in interface VariableResolverFactory

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 interface VariableResolverFactory
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 interface VariableResolverFactory
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 interface VariableResolverFactory
Returns:

variableIndexOf

public int variableIndexOf(java.lang.String name)
Specified by:
variableIndexOf in interface VariableResolverFactory

isIndexedFactory

public boolean isIndexedFactory()
Specified by:
isIndexedFactory in interface VariableResolverFactory


Copyright © 2010. All Rights Reserved.