org.camunda.bpm.dmn.engine.impl
Class DefaultDmnDecisionContext

java.lang.Object
  extended by org.camunda.bpm.dmn.engine.impl.DefaultDmnDecisionContext

public class DefaultDmnDecisionContext
extends Object

Context which evaluates a decision on a given input


Field Summary
protected  List<DmnDecisionEvaluationListener> decisionEvaluationListeners
           
protected  ElProvider elProvider
           
protected  List<DmnDecisionTableEvaluationListener> evaluationListeners
           
protected  FeelEngine feelEngine
           
protected  String inputEntryExpressionLanguage
           
protected  String inputExpressionExpressionLanguage
           
protected static DmnEngineLogger LOG
           
protected  String outputEntryExpressionLanguage
           
protected  DmnScriptEngineResolver scriptEngineResolver
           
 
Constructor Summary
DefaultDmnDecisionContext(DefaultDmnEngineConfiguration configuration)
           
 
Method Summary
protected  void addResultToVariableContext(DmnDecisionTableResult evaluatedResult, org.camunda.bpm.engine.variable.VariableMap variableMap)
           
protected  void buildDecisionTree(DmnDecision decision, List<DmnDecision> requiredDecisions)
           
protected  org.camunda.bpm.engine.variable.VariableMap buildVariableMapFromVariableContext(org.camunda.bpm.engine.variable.context.VariableContext variableContext)
           
protected  long calculateExecutedDecisionElements(DmnDecisionTableImpl decisionTable)
           
 DmnDecisionTableResult evaluateDecision(DmnDecision decision, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
          Evaluate a decision with the given VariableContext
protected  DmnDecisionTableEvaluationEventImpl evaluateDecisionTable(DmnDecision decision, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
           
protected  Object evaluateExpression(String expressionLanguage, DmnExpressionImpl expression, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
           
protected  org.camunda.bpm.engine.variable.value.TypedValue evaluateFeelSimpleExpression(DmnExpressionImpl expression, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
           
protected  Object evaluateFeelSimpleUnaryTests(DmnDecisionTableInputImpl input, DmnExpressionImpl condition, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
           
protected  DmnEvaluatedInput evaluateInput(DmnDecisionTableInputImpl input, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
           
protected  Object evaluateInputExpression(DmnExpressionImpl expression, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
           
protected  List<DmnDecisionTableRuleImpl> evaluateInputForAvailableRules(int conditionIdx, DmnDecisionTableInputImpl input, List<DmnDecisionTableRuleImpl> availableRules, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
           
protected  DmnEvaluatedDecisionRule evaluateMatchingRule(List<DmnDecisionTableOutputImpl> decisionTableOutputs, DmnDecisionTableRuleImpl matchingRule, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
           
protected  Map<String,DmnEvaluatedOutput> evaluateOutputEntries(List<DmnDecisionTableOutputImpl> decisionTableOutputs, DmnDecisionTableRuleImpl matchingRule, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
           
protected  Object evaluateOutputEntry(DmnExpressionImpl conclusion, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
           
protected  void generateDecisionEvaluationEvent(List<DmnDecisionTableEvaluationEvent> evaluatedEvents)
           
protected  DmnDecisionTableResult generateDecisionTableResult(DmnDecisionTableEvaluationEvent evaluationResult)
           
protected  DmnDecisionTableResult generateDecisionTableResult(DmnDecisionTableImpl decisionTable, DmnDecisionTableEvaluationEventImpl evaluationResult)
           
protected  String getExpressionTextForLanguage(DmnExpressionImpl expression, String expressionLanguage)
           
protected  ScriptEngine getScriptEngineForName(String expressionLanguage)
           
protected  boolean isConditionApplicable(DmnDecisionTableInputImpl input, DmnExpressionImpl condition, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
           
protected  boolean isElExpression(String expressionLanguage)
           
protected  boolean isFeelExpressionLanguage(String expressionLanguage)
           
protected  boolean isNonEmptyExpression(DmnExpressionImpl expression)
           
protected  void setEvaluationOutput(DmnDecisionTableImpl decisionTable, List<DmnDecisionTableRuleImpl> matchingRules, org.camunda.bpm.engine.variable.context.VariableContext variableContext, DmnDecisionTableEvaluationEventImpl evaluationResult)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOG

protected static final DmnEngineLogger LOG

evaluationListeners

protected final List<DmnDecisionTableEvaluationListener> evaluationListeners

decisionEvaluationListeners

protected final List<DmnDecisionEvaluationListener> decisionEvaluationListeners

scriptEngineResolver

protected final DmnScriptEngineResolver scriptEngineResolver

elProvider

protected final ElProvider elProvider

feelEngine

protected final FeelEngine feelEngine

inputExpressionExpressionLanguage

protected final String inputExpressionExpressionLanguage

inputEntryExpressionLanguage

protected final String inputEntryExpressionLanguage

outputEntryExpressionLanguage

protected final String outputEntryExpressionLanguage
Constructor Detail

DefaultDmnDecisionContext

public DefaultDmnDecisionContext(DefaultDmnEngineConfiguration configuration)
Method Detail

evaluateDecision

public DmnDecisionTableResult evaluateDecision(DmnDecision decision,
                                               org.camunda.bpm.engine.variable.context.VariableContext variableContext)
Evaluate a decision with the given VariableContext

Parameters:
decision - the decision to evaluate
variableContext - the available variable context
Returns:
the result of the decision evaluation

evaluateDecisionTable

protected DmnDecisionTableEvaluationEventImpl evaluateDecisionTable(DmnDecision decision,
                                                                    org.camunda.bpm.engine.variable.context.VariableContext variableContext)

generateDecisionEvaluationEvent

protected void generateDecisionEvaluationEvent(List<DmnDecisionTableEvaluationEvent> evaluatedEvents)

addResultToVariableContext

protected void addResultToVariableContext(DmnDecisionTableResult evaluatedResult,
                                          org.camunda.bpm.engine.variable.VariableMap variableMap)

buildVariableMapFromVariableContext

protected org.camunda.bpm.engine.variable.VariableMap buildVariableMapFromVariableContext(org.camunda.bpm.engine.variable.context.VariableContext variableContext)

buildDecisionTree

protected void buildDecisionTree(DmnDecision decision,
                                 List<DmnDecision> requiredDecisions)

evaluateInput

protected DmnEvaluatedInput evaluateInput(DmnDecisionTableInputImpl input,
                                          org.camunda.bpm.engine.variable.context.VariableContext variableContext)

evaluateInputForAvailableRules

protected List<DmnDecisionTableRuleImpl> evaluateInputForAvailableRules(int conditionIdx,
                                                                        DmnDecisionTableInputImpl input,
                                                                        List<DmnDecisionTableRuleImpl> availableRules,
                                                                        org.camunda.bpm.engine.variable.context.VariableContext variableContext)

isConditionApplicable

protected boolean isConditionApplicable(DmnDecisionTableInputImpl input,
                                        DmnExpressionImpl condition,
                                        org.camunda.bpm.engine.variable.context.VariableContext variableContext)

setEvaluationOutput

protected void setEvaluationOutput(DmnDecisionTableImpl decisionTable,
                                   List<DmnDecisionTableRuleImpl> matchingRules,
                                   org.camunda.bpm.engine.variable.context.VariableContext variableContext,
                                   DmnDecisionTableEvaluationEventImpl evaluationResult)

evaluateMatchingRule

protected DmnEvaluatedDecisionRule evaluateMatchingRule(List<DmnDecisionTableOutputImpl> decisionTableOutputs,
                                                        DmnDecisionTableRuleImpl matchingRule,
                                                        org.camunda.bpm.engine.variable.context.VariableContext variableContext)

generateDecisionTableResult

protected DmnDecisionTableResult generateDecisionTableResult(DmnDecisionTableImpl decisionTable,
                                                             DmnDecisionTableEvaluationEventImpl evaluationResult)

generateDecisionTableResult

protected DmnDecisionTableResult generateDecisionTableResult(DmnDecisionTableEvaluationEvent evaluationResult)

calculateExecutedDecisionElements

protected long calculateExecutedDecisionElements(DmnDecisionTableImpl decisionTable)

evaluateInputExpression

protected Object evaluateInputExpression(DmnExpressionImpl expression,
                                         org.camunda.bpm.engine.variable.context.VariableContext variableContext)

evaluateOutputEntries

protected Map<String,DmnEvaluatedOutput> evaluateOutputEntries(List<DmnDecisionTableOutputImpl> decisionTableOutputs,
                                                               DmnDecisionTableRuleImpl matchingRule,
                                                               org.camunda.bpm.engine.variable.context.VariableContext variableContext)

evaluateOutputEntry

protected Object evaluateOutputEntry(DmnExpressionImpl conclusion,
                                     org.camunda.bpm.engine.variable.context.VariableContext variableContext)

evaluateFeelSimpleExpression

protected org.camunda.bpm.engine.variable.value.TypedValue evaluateFeelSimpleExpression(DmnExpressionImpl expression,
                                                                                        org.camunda.bpm.engine.variable.context.VariableContext variableContext)

evaluateFeelSimpleUnaryTests

protected Object evaluateFeelSimpleUnaryTests(DmnDecisionTableInputImpl input,
                                              DmnExpressionImpl condition,
                                              org.camunda.bpm.engine.variable.context.VariableContext variableContext)

evaluateExpression

protected Object evaluateExpression(String expressionLanguage,
                                    DmnExpressionImpl expression,
                                    org.camunda.bpm.engine.variable.context.VariableContext variableContext)

getExpressionTextForLanguage

protected String getExpressionTextForLanguage(DmnExpressionImpl expression,
                                              String expressionLanguage)

getScriptEngineForName

protected ScriptEngine getScriptEngineForName(String expressionLanguage)

isElExpression

protected boolean isElExpression(String expressionLanguage)

isNonEmptyExpression

protected boolean isNonEmptyExpression(DmnExpressionImpl expression)

isFeelExpressionLanguage

protected boolean isFeelExpressionLanguage(String expressionLanguage)


Copyright © 2016 camunda services GmbH. All rights reserved.