![JAR search and dependency download from the Maven repository](/logo.png)
org.jbpm.jpdl.el.impl.JbpmExpressionEvaluator Maven / Gradle / Ivy
package org.jbpm.jpdl.el.impl;
import java.util.regex.Pattern;
import org.jbpm.JbpmConfiguration.Configs;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.jpdl.el.ExpressionEvaluator;
import org.jbpm.jpdl.el.FunctionMapper;
import org.jbpm.jpdl.el.VariableResolver;
public class JbpmExpressionEvaluator {
private static ExpressionEvaluator expressionEvaluator;
/**
* @deprecated set configuration entry jbpm.expression.evaluator
instead
*/
public static void setExpressionEvaluator(ExpressionEvaluator expressionEvaluator) {
JbpmExpressionEvaluator.expressionEvaluator = expressionEvaluator;
}
public static ExpressionEvaluator getExpressionEvaluator() {
return expressionEvaluator != null ? expressionEvaluator
: (ExpressionEvaluator) Configs.getObject("jbpm.expression.evaluator");
}
private static VariableResolver variableResolver;
/**
* @deprecated set configuration entry jbpm.variable.resolver
instead
*/
public static void setVariableResolver(VariableResolver variableResolver) {
JbpmExpressionEvaluator.variableResolver = variableResolver;
}
public static VariableResolver getVariableResolver() {
return variableResolver != null ? variableResolver
: (VariableResolver) Configs.getObject("jbpm.variable.resolver");
}
/** @deprecated call {@link #getVariableResolver()} instead */
public static VariableResolver getUsedVariableResolver() {
return getVariableResolver();
}
private static FunctionMapper functionMapper;
/**
* @deprecated set configuration entry jbpm.function.mapper
instead
*/
public static void setFunctionMapper(FunctionMapper functionMapper) {
JbpmExpressionEvaluator.functionMapper = functionMapper;
}
public static FunctionMapper getFunctionMapper() {
return functionMapper != null ? functionMapper
: Configs.hasObject("jbpm.function.mapper") ? (FunctionMapper) Configs.getObject("jbpm.function.mapper")
: null;
}
/** @deprecated call {@link #getFunctionMapper()} instead */
public static FunctionMapper getUsedFunctionMapper() {
return getFunctionMapper();
}
public static Object evaluate(String expression, ExecutionContext executionContext) {
return evaluate(expression, executionContext, Object.class);
}
public static Object evaluate(String expression, ExecutionContext executionContext,
Class expectedType) {
return evaluate(expression, executionContext, expectedType, getVariableResolver(),
getFunctionMapper());
}
public static Object evaluate(String expression, ExecutionContext executionContext,
VariableResolver variableResolver, FunctionMapper functionMapper) {
return evaluate(expression, executionContext, Object.class, variableResolver,
functionMapper);
}
public static Object evaluate(String expression, ExecutionContext executionContext,
Class expectedType, VariableResolver variableResolver, FunctionMapper functionMapper) {
ExecutionContext.pushCurrentContext(executionContext);
try {
return getExpressionEvaluator().evaluate(translateExpressionToDollars(expression),
expectedType, variableResolver, functionMapper);
}
finally {
ExecutionContext.popCurrentContext(executionContext);
}
}
private static Pattern hashPattern = Pattern.compile("\\#\\{([^\\}]*)\\}");
private static String translateExpressionToDollars(String expression) {
return hashPattern.matcher(expression).replaceAll("\\${$1}");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy