执行计算表达式
/** * 计算boolean表达式的值 * @param expression 表达式 * @param varsMap 参数 * @return boolean值 */ public boolean calculateExpression(String expression, Map<String, Object> varsMap) { ExpressionFactory factory = new ExpressionFactoryImpl(); SimpleContext context = new SimpleContext(); for (Object k : varsMap.keySet()) { if (varsMap.get(k) != null) { context.setVariable(k.toString(), factory.createValueExpression(varsMap.get(k), varsMap.get(k).getClass())); } } ValueExpression e = factory.createValueExpression(context, expression, Boolean.class); return (Boolean) e.getValue(context); }
执行方法表达式
/** * 执行方法表达式 * @Description TODO * @param expression * @param varsMap * @return * @return Object * @Author 何湘简 * @Date 2021年7月6日 下午7:54:31 */ public Object calculateMethodExpression(String expression, Map<String, Object> varsMap) { DataSourceContextHolder .setDataSourceType(DataSourceType.dataSource_centusoft); ApplicationContext applicationContext = processEngineConfiguration.getApplicationContext(); Map beans = applicationContext.getBeansOfType(Object.class); SpringExpressionManager expressionManager = new SpringExpressionManager(applicationContext, beans); Expression e = expressionManager.createExpression(expression); MyVariableScope impl = new MyVariableScope(varsMap); Context.setProcessEngineConfiguration(processEngineConfiguration); return e.getValue(impl); }
MyVariableScope.java
import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Set; import org.activiti.engine.delegate.VariableScope; public class MyVariableScope implements VariableScope{ private Map<String, Object> variables=new HashMap<String, Object>(); public MyVariableScope(Map<String, Object> variables){ this.variables=variables; } @Override public Map<String, Object> getVariables() { // TODO Auto-generated method stub return variables; } public Map<String, VariableScope> getVariableInstances() { /*// TODO Auto-generated method stub Map<String, VariableScope> variableInstanceMap=new HashMap(); System.out.println("通过Map.entrySet遍历key和value"); for (Map.Entry<String, Object> entry : variables.entrySet()) { VariableInstanceEntity variableInstance=VariableInstanceEntity.create( entry.getKey(), type, entry.getValue()) }*/ return null; } public Map<String, Object> getVariables(Collection<String> variableNames) { // TODO Auto-generated method stub return variables; } public Map<String, VariableScope> getVariableInstances(Collection<String> variableNames) { // TODO Auto-generated method stub return null; } public Map<String, Object> getVariables(Collection<String> variableNames, boolean fetchAllVariables) { // TODO Auto-generated method stub return variables; } public Map<String, VariableScope> getVariableInstances(Collection<String> variableNames, boolean fetchAllVariables) { // TODO Auto-generated method stub return null; } @Override public Map<String, Object> getVariablesLocal() { // TODO Auto-generated method stub return variables; } public Map<String, VariableScope> getVariableInstancesLocal() { // TODO Auto-generated method stub return null; } public Map<String, Object> getVariablesLocal(Collection<String> variableNames) { // TODO Auto-generated method stub return variables; } public Map<String, VariableScope> getVariableInstancesLocal(Collection<String> variableNames) { // TODO Auto-generated method stub return null; } public Map<String, Object> getVariablesLocal(Collection<String> variableNames, boolean fetchAllVariables) { // TODO Auto-generated method stub return variables; } public Map<String, VariableScope> getVariableInstancesLocal(Collection<String> variableNames, boolean fetchAllVariables) { // TODO Auto-generated method stub return null; } @Override public Object getVariable(String variableName) { // TODO Auto-generated method stub return variables.get(variableName); } public VariableScope getVariableInstance(String variableName) { // TODO Auto-generated method stub return null; } public Object getVariable(String variableName, boolean fetchAllVariables) { // TODO Auto-generated method stub return this.getVariable(variableName); } public VariableScope getVariableInstance(String variableName, boolean fetchAllVariables) { // TODO Auto-generated method stub return null; } @Override public Object getVariableLocal(String variableName) { // TODO Auto-generated method stub return this.getVariable(variableName); } public VariableScope getVariableInstanceLocal(String variableName) { // TODO Auto-generated method stub return null; } public Object getVariableLocal(String variableName, boolean fetchAllVariables) { // TODO Auto-generated method stub return this.getVariable(variableName); } public VariableScope getVariableInstanceLocal(String variableName, boolean fetchAllVariables) { // TODO Auto-generated method stub return null; } public <T> T getVariable(String variableName, Class<T> variableClass) { // TODO Auto-generated method stub return null; } public <T> T getVariableLocal(String variableName, Class<T> variableClass) { // TODO Auto-generated method stub return null; } @Override public Set<String> getVariableNames() { // TODO Auto-generated method stub return null; } @Override public Set<String> getVariableNamesLocal() { // TODO Auto-generated method stub return null; } @Override public void setVariable(String variableName, Object value) { // TODO Auto-generated method stub variables.put(variableName,value); } public void setVariable(String variableName, Object value, boolean fetchAllVariables) { // TODO Auto-generated method stub this.setVariable(variableName, value); } @Override public Object setVariableLocal(String variableName, Object value) { // TODO Auto-generated method stub return null; } public Object setVariableLocal(String variableName, Object value, boolean fetchAllVariables) { // TODO Auto-generated method stub return null; } @Override public void setVariables(Map<String, ? extends Object> variables) { // TODO Auto-generated method stub this.variables=(Map<String, Object>) variables; } @Override public void setVariablesLocal(Map<String, ? extends Object> variables) { // TODO Auto-generated method stub this.variables=(Map<String, Object>) variables; } @Override public boolean hasVariables() { // TODO Auto-generated method stub return variables.size()>0; } @Override public boolean hasVariablesLocal() { // TODO Auto-generated method stub return variables.size()>0; } @Override public boolean hasVariable(String variableName) { // TODO Auto-generated method stub return variables.containsKey(variableName); } @Override public boolean hasVariableLocal(String variableName) { // TODO Auto-generated method stub return variables.containsKey(variableName); } @Override public void createVariableLocal(String variableName, Object value) { // TODO Auto-generated method stub } @Override public void removeVariable(String variableName) { // TODO Auto-generated method stub } @Override public void removeVariableLocal(String variableName) { // TODO Auto-generated method stub } @Override public void removeVariables(Collection<String> variableNames) { // TODO Auto-generated method stub } @Override public void removeVariablesLocal(Collection<String> variableNames) { // TODO Auto-generated method stub } @Override public void removeVariables() { // TODO Auto-generated method stub } @Override public void removeVariablesLocal() { // TODO Auto-generated method stub } }
本文由 admin 创作,采用 知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:2022-08-09 22:40:23