Search in sources :

Example 31 with ExpressionEvaluator

use of io.automatiko.engine.api.expression.ExpressionEvaluator in project automatiko-engine by automatiko-io.

the class JqReturnValueEvaluator method evaluate.

@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public Object evaluate(ProcessContext context) throws Exception {
    ExpressionEvaluator evaluator = (ExpressionEvaluator) ((WorkflowProcess) context.getProcessInstance().getProcess()).getDefaultContext(ExpressionEvaluator.EXPRESSION_EVALUATOR);
    Map<String, Object> vars = new HashMap<>();
    vars.put("workflowdata", context.getVariable(JsonVariableScope.WORKFLOWDATA_KEY));
    if (context.getVariable("$CONST") != null) {
        vars.put("workflow_variables", Collections.singletonMap("CONST", context.getVariable("$CONST")));
    }
    Object content = evaluator.evaluate(expression, vars);
    if (content == null) {
        return false;
    }
    if (content instanceof BooleanNode) {
        return ((BooleanNode) content).asBoolean();
    }
    return false;
}
Also used : HashMap(java.util.HashMap) ExpressionEvaluator(io.automatiko.engine.api.expression.ExpressionEvaluator) BooleanNode(com.fasterxml.jackson.databind.node.BooleanNode)

Aggregations

ExpressionEvaluator (io.automatiko.engine.api.expression.ExpressionEvaluator)31 HashMap (java.util.HashMap)25 VariableScopeInstance (io.automatiko.engine.workflow.base.instance.context.variable.VariableScopeInstance)20 NodeInstanceResolverFactory (io.automatiko.engine.workflow.process.instance.impl.NodeInstanceResolverFactory)16 Matcher (java.util.regex.Matcher)12 Map (java.util.Map)11 DataTransformer (io.automatiko.engine.api.runtime.process.DataTransformer)9 DataAssociation (io.automatiko.engine.workflow.process.core.node.DataAssociation)8 Transformation (io.automatiko.engine.workflow.process.core.node.Transformation)8 WorkflowProcess (io.automatiko.engine.workflow.process.core.WorkflowProcess)7 ArrayList (java.util.ArrayList)5 ContextableInstance (io.automatiko.engine.workflow.base.instance.ContextableInstance)4 WorkItemImpl (io.automatiko.engine.workflow.base.instance.impl.workitem.WorkItemImpl)4 Serializable (java.io.Serializable)4 NodeInstance (io.automatiko.engine.api.runtime.process.NodeInstance)3 WorkItemExecutionError (io.automatiko.engine.api.workflow.workitem.WorkItemExecutionError)3 Context (io.automatiko.engine.workflow.base.core.Context)3 ContextContainer (io.automatiko.engine.workflow.base.core.ContextContainer)3 DataTransformerRegistry (io.automatiko.engine.workflow.base.core.impl.DataTransformerRegistry)3 ProcessInstance (io.automatiko.engine.workflow.base.instance.ProcessInstance)3