Class DefaultExpressionManager
- java.lang.Object
-
- org.flowable.common.engine.impl.el.DefaultExpressionManager
-
- All Implemented Interfaces:
ExpressionManager
public class DefaultExpressionManager extends Object implements ExpressionManager
DefaultExpressionManagerimplementation that contains the logic for creating and resolvingExpressioninstances.- Author:
- Tom Baeyens, Dave Syer, Frederik Heremans, Joram Barrez, Filip Hrisafov
-
-
Field Summary
Fields Modifier and Type Field Description protected List<FlowableAstFunctionCreator>astFunctionCreatorsprotected Map<Object,Object>beansprotected DeploymentCache<Expression>expressionCacheprotected ExpressionFactoryexpressionFactoryprotected intexpressionTextLengthCacheLimitprotected List<FlowableFunctionDelegate>functionDelegatesprotected BiFunction<String,String,FlowableFunctionDelegate>functionResolverprotected ELContextparsingElContextprotected List<ELResolver>postDefaultResolversprotected List<ELResolver>preBeanResolversprotected List<ELResolver>preDefaultResolversprotected ELResolverstaticElResolver
-
Constructor Summary
Constructors Constructor Description DefaultExpressionManager(Map<Object,Object> beans)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddPostDefaultResolver(ELResolver elResolver)voidaddPreBeanResolver(ELResolver elResolver)voidaddPreDefaultResolver(ELResolver elResolver)protected ELResolvercreateBeanElResolver()protected List<ELResolver>createDefaultElResolvers()ExpressioncreateExpression(String text)Creates anExpressioninstance from the given String.protected ExpressioncreateJuelExpression(String expression, ValueExpression valueExpression)protected ELResolvercreateVariableElResolver()List<FlowableAstFunctionCreator>getAstFunctionCreators()Returns theFlowableAstFunctionCreatorwhich potentially can alter the expression functions during the creation of anExpressioninstance.Map<Object,Object>getBeans()Returns the beans registered with this expression manager instance.ELContextgetElContext(VariableContainer variableContainer)Creates anELContextagainst whichExpressioninstance can be resolved.DeploymentCache<Expression>getExpressionCache()intgetExpressionTextLengthCacheLimit()List<FlowableFunctionDelegate>getFunctionDelegates()Returns the custom functions registered and usable in expressions.protected ELResolvergetOrCreateStaticElResolver()protected booleanisCacheEnabled(String text)voidsetAstFunctionCreators(List<FlowableAstFunctionCreator> astFunctionCreators)Sets theFlowableAstFunctionCreatorinstances which can alter the expression functions during the creation of anExpressioninstance.voidsetBeans(Map<Object,Object> beans)Sets the beans which can be used in expressions.voidsetExpressionCache(DeploymentCache<Expression> expressionCache)voidsetExpressionFactory(ExpressionFactory expressionFactory)voidsetExpressionTextLengthCacheLimit(int expressionTextLengthCacheLimit)voidsetFunctionDelegates(List<FlowableFunctionDelegate> functionDelegates)Set the custom functions usable in expressions.protected voidupdateFunctionResolver()
-
-
-
Field Detail
-
expressionFactory
protected ExpressionFactory expressionFactory
-
functionDelegates
protected List<FlowableFunctionDelegate> functionDelegates
-
functionResolver
protected BiFunction<String,String,FlowableFunctionDelegate> functionResolver
-
astFunctionCreators
protected List<FlowableAstFunctionCreator> astFunctionCreators
-
parsingElContext
protected ELContext parsingElContext
-
expressionCache
protected DeploymentCache<Expression> expressionCache
-
expressionTextLengthCacheLimit
protected int expressionTextLengthCacheLimit
-
preDefaultResolvers
protected List<ELResolver> preDefaultResolvers
-
postDefaultResolvers
protected List<ELResolver> postDefaultResolvers
-
preBeanResolvers
protected List<ELResolver> preBeanResolvers
-
staticElResolver
protected ELResolver staticElResolver
-
-
Method Detail
-
createExpression
public Expression createExpression(String text)
Description copied from interface:ExpressionManagerCreates anExpressioninstance from the given String. Expression are resolved against aVariableContainer(e.g. a process Execution, a case instance plan item, etc.)- Specified by:
createExpressionin interfaceExpressionManager
-
isCacheEnabled
protected boolean isCacheEnabled(String text)
-
createJuelExpression
protected Expression createJuelExpression(String expression, ValueExpression valueExpression)
-
setExpressionFactory
public void setExpressionFactory(ExpressionFactory expressionFactory)
-
getElContext
public ELContext getElContext(VariableContainer variableContainer)
Description copied from interface:ExpressionManagerCreates anELContextagainst whichExpressioninstance can be resolved.- Specified by:
getElContextin interfaceExpressionManager
-
getOrCreateStaticElResolver
protected ELResolver getOrCreateStaticElResolver()
-
createDefaultElResolvers
protected List<ELResolver> createDefaultElResolvers()
-
createVariableElResolver
protected ELResolver createVariableElResolver()
-
createBeanElResolver
protected ELResolver createBeanElResolver()
-
getBeans
public Map<Object,Object> getBeans()
Description copied from interface:ExpressionManagerReturns the beans registered with this expression manager instance.- Specified by:
getBeansin interfaceExpressionManager
-
setBeans
public void setBeans(Map<Object,Object> beans)
Description copied from interface:ExpressionManagerSets the beans which can be used in expressions.- Specified by:
setBeansin interfaceExpressionManager
-
getFunctionDelegates
public List<FlowableFunctionDelegate> getFunctionDelegates()
Description copied from interface:ExpressionManagerReturns the custom functions registered and usable in expressions.- Specified by:
getFunctionDelegatesin interfaceExpressionManager
-
setFunctionDelegates
public void setFunctionDelegates(List<FlowableFunctionDelegate> functionDelegates)
Description copied from interface:ExpressionManagerSet the custom functions usable in expressions.- Specified by:
setFunctionDelegatesin interfaceExpressionManager
-
updateFunctionResolver
protected void updateFunctionResolver()
-
getAstFunctionCreators
public List<FlowableAstFunctionCreator> getAstFunctionCreators()
Description copied from interface:ExpressionManagerReturns theFlowableAstFunctionCreatorwhich potentially can alter the expression functions during the creation of anExpressioninstance.- Specified by:
getAstFunctionCreatorsin interfaceExpressionManager
-
setAstFunctionCreators
public void setAstFunctionCreators(List<FlowableAstFunctionCreator> astFunctionCreators)
Description copied from interface:ExpressionManagerSets theFlowableAstFunctionCreatorinstances which can alter the expression functions during the creation of anExpressioninstance.- Specified by:
setAstFunctionCreatorsin interfaceExpressionManager
-
getExpressionCache
public DeploymentCache<Expression> getExpressionCache()
-
setExpressionCache
public void setExpressionCache(DeploymentCache<Expression> expressionCache)
-
getExpressionTextLengthCacheLimit
public int getExpressionTextLengthCacheLimit()
-
setExpressionTextLengthCacheLimit
public void setExpressionTextLengthCacheLimit(int expressionTextLengthCacheLimit)
-
addPreDefaultResolver
public void addPreDefaultResolver(ELResolver elResolver)
-
addPostDefaultResolver
public void addPostDefaultResolver(ELResolver elResolver)
-
addPreBeanResolver
public void addPreBeanResolver(ELResolver elResolver)
-
-