org.mvel2.integration.impl
Class BaseVariableResolverFactory
java.lang.Object
org.mvel2.integration.impl.BaseVariableResolverFactory
- All Implemented Interfaces:
- java.io.Serializable, VariableResolverFactory
- Direct Known Subclasses:
- CachedMapVariableResolverFactory, ClassImportResolverFactory, FunctionVariableResolverFactory, IndexedVariableResolverFactory, ItemResolverFactory, MapVariableResolverFactory, SimpleVariableResolverFactory, StaticMethodImportResolverFactory
public abstract class BaseVariableResolverFactory
- extends java.lang.Object
- implements VariableResolverFactory
Use this class to extend you own VariableResolverFactories. It contains most of the baseline implementation needed
for the vast majority of integration needs.
- See Also:
- Serialized Form
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
variableResolvers
protected java.util.Map<java.lang.String,VariableResolver> variableResolvers
nextFactory
protected VariableResolverFactory nextFactory
indexOffset
protected int indexOffset
indexedVariableNames
protected java.lang.String[] indexedVariableNames
indexedVariableResolvers
protected VariableResolver[] indexedVariableResolvers
BaseVariableResolverFactory
public BaseVariableResolverFactory()
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
isNextResolveable
public boolean isNextResolveable(java.lang.String name)
appendFactory
public void appendFactory(VariableResolverFactory resolverFactory)
insertFactory
public void insertFactory(VariableResolverFactory resolverFactory)
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:
createIndexedVariable
public VariableResolver createIndexedVariable(int index,
java.lang.String name,
java.lang.Object value)
- Specified by:
createIndexedVariable
in interface VariableResolverFactory
getIndexedVariableResolver
public VariableResolver getIndexedVariableResolver(int index)
- Specified by:
getIndexedVariableResolver
in interface VariableResolverFactory
createIndexedVariable
public VariableResolver createIndexedVariable(int index,
java.lang.String name,
java.lang.Object value,
java.lang.Class<?> type)
- Specified by:
createIndexedVariable
in interface VariableResolverFactory
getVariableResolvers
public java.util.Map<java.lang.String,VariableResolver> getVariableResolvers()
setVariableResolvers
public void setVariableResolvers(java.util.Map<java.lang.String,VariableResolver> variableResolvers)
getIndexedVariableNames
public java.lang.String[] getIndexedVariableNames()
setIndexedVariableNames
public void setIndexedVariableNames(java.lang.String[] indexedVariableNames)
variableIndexOf
public int variableIndexOf(java.lang.String name)
- Specified by:
variableIndexOf
in interface VariableResolverFactory
setIndexedVariableResolver
public VariableResolver setIndexedVariableResolver(int index,
VariableResolver resolver)
- Specified by:
setIndexedVariableResolver
in interface VariableResolverFactory
isIndexedFactory
public boolean isIndexedFactory()
- Specified by:
isIndexedFactory
in interface VariableResolverFactory
Copyright © 2010. All Rights Reserved.