Package 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
,CachingMapVariableResolverFactory
,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
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String[]
indexedVariableNames
protected VariableResolver[]
indexedVariableResolvers
protected int
indexOffset
protected VariableResolverFactory
nextFactory
private boolean
tiltFlag
protected java.util.Map<java.lang.String,VariableResolver>
variableResolvers
-
Constructor Summary
Constructors Constructor Description BaseVariableResolverFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
appendFactory(VariableResolverFactory resolverFactory)
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<?> type)
java.lang.String[]
getIndexedVariableNames()
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.java.util.Map<java.lang.String,VariableResolver>
getVariableResolvers()
void
insertFactory(VariableResolverFactory resolverFactory)
boolean
isIndexedFactory()
boolean
isNextResolveable(java.lang.String name)
void
setIndexedVariableNames(java.lang.String[] indexedVariableNames)
VariableResolver
setIndexedVariableResolver(int index, VariableResolver resolver)
VariableResolverFactory
setNextFactory(VariableResolverFactory resolverFactory)
Sets the next factory in the chain.void
setTiltFlag(boolean tiltFlag)
void
setVariableResolvers(java.util.Map<java.lang.String,VariableResolver> variableResolvers)
boolean
tiltFlag()
int
variableIndexOf(java.lang.String name)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.mvel2.integration.VariableResolverFactory
createVariable, createVariable, isResolveable, isTarget
-
-
-
-
Field Detail
-
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
-
tiltFlag
private boolean tiltFlag
-
-
Method Detail
-
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
-
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 interfaceVariableResolverFactory
- Returns:
- variables
-
createIndexedVariable
public VariableResolver createIndexedVariable(int index, java.lang.String name, java.lang.Object value)
- Specified by:
createIndexedVariable
in interfaceVariableResolverFactory
-
getIndexedVariableResolver
public VariableResolver getIndexedVariableResolver(int index)
- Specified by:
getIndexedVariableResolver
in interfaceVariableResolverFactory
-
createIndexedVariable
public VariableResolver createIndexedVariable(int index, java.lang.String name, java.lang.Object value, java.lang.Class<?> type)
- Specified by:
createIndexedVariable
in interfaceVariableResolverFactory
-
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 interfaceVariableResolverFactory
-
setIndexedVariableResolver
public VariableResolver setIndexedVariableResolver(int index, VariableResolver resolver)
- Specified by:
setIndexedVariableResolver
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 tiltFlag)
- Specified by:
setTiltFlag
in interfaceVariableResolverFactory
-
-