Interface DmnEngine

All Known Implementing Classes:
DefaultDmnEngine

public interface DmnEngine
A DMN engine which can parse DMN decision models and evaluate decisions.

A new DMN engine can be build with a DMN engine configuration (see DmnEngineConfiguration.buildEngine()).

  • Method Details

    • getConfiguration

      DmnEngineConfiguration getConfiguration()
      The configuration of this engine.
      Returns:
      the DMN engine configuration
    • parseDecisions

      List<DmnDecision> parseDecisions(InputStream inputStream)
      Parse all decisions in a DMN decision model.
      Parameters:
      inputStream - the InputStream of the DMN file
      Returns:
      a list of the DmnDecisions of the DMN file
      Throws:
      DmnEngineException - if an error occurs during the parsing of the decision model
    • parseDecisions

      List<DmnDecision> parseDecisions(org.camunda.bpm.model.dmn.DmnModelInstance dmnModelInstance)
      Parse all decisions in a DMN decision model.
      Parameters:
      dmnModelInstance - the DmnModelInstance of the DMN decision model
      Returns:
      a list of the DmnDecisions of the DMN file
      Throws:
      DmnEngineException - if an error occurs during the parsing of the decision model
    • parseDecision

      DmnDecision parseDecision(String decisionKey, InputStream inputStream)
      Parse the decision with the given key in a DMN decision model. The key is the id attribute of the decision in the DMN XML file.
      Parameters:
      decisionKey - the key of the decision to parse
      inputStream - the InputStream of the DMN file
      Returns:
      the first DmnDecision of the DMN file
      Throws:
      DmnEngineException - if an error occurs during the parsing of the decision model
    • parseDecision

      DmnDecision parseDecision(String decisionKey, org.camunda.bpm.model.dmn.DmnModelInstance dmnModelInstance)
      Parse the decision with the given key in a DMN decision model. The key is the id attribute of the decision in the DMN XML file.
      Parameters:
      decisionKey - the key of the decision to parse
      dmnModelInstance - the DmnModelInstance of the DMN decision model
      Returns:
      the first DmnDecision of the DMN file
      Throws:
      DmnEngineException - if an error occurs during the parsing of the decision model
    • parseDecisionRequirementsGraph

      DmnDecisionRequirementsGraph parseDecisionRequirementsGraph(InputStream inputStream)
      Parse the decision requirements graph in a DMN decision model.
      Parameters:
      inputStream - the InputStream of the DMN file
      Returns:
      a list of the DmnDecisions of the DMN file
      Throws:
      DmnEngineException - if an error occurs during the parsing of the decision model
    • parseDecisionRequirementsGraph

      DmnDecisionRequirementsGraph parseDecisionRequirementsGraph(org.camunda.bpm.model.dmn.DmnModelInstance dmnModelInstance)
      Parse the decision requirements graph in a DMN decision model.
      Parameters:
      dmnModelInstance - the DmnModelInstance of the DMN decision model
      Returns:
      a list of the DmnDecisions of the DMN file
      Throws:
      DmnEngineException - if an error occurs during the parsing of the decision model
    • evaluateDecisionTable

      DmnDecisionTableResult evaluateDecisionTable(DmnDecision decision, Map<String,Object> variables)
      Evaluates a decision which is implemented as decision table.
      Parameters:
      decision - the DmnDecision to evaluate
      variables - the variables which are available during the evaluation of expressions in the decision table
      Returns:
      the DmnDecisionTableResult of this evaluation
      Throws:
      DmnEngineException - if the decision is not implemented as decision table (see DmnDecision.isDecisionTable()
      DmnEngineException - if an error occurs during the evaluation
      See Also:
    • evaluateDecisionTable

      DmnDecisionTableResult evaluateDecisionTable(DmnDecision decision, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
      Evaluates a decision which is implemented as decision table.
      Parameters:
      decision - the DmnDecision to evaluate
      variableContext - the variables context which is available during the evaluation of expressions in the decision table
      Returns:
      the DmnDecisionTableResult of this evaluation
      Throws:
      DmnEngineException - if the decision is not implemented as decision table (see DmnDecision.isDecisionTable()
      DmnEngineException - if an error occurs during the evaluation
      See Also:
    • evaluateDecisionTable

      DmnDecisionTableResult evaluateDecisionTable(String decisionKey, InputStream inputStream, Map<String,Object> variables)
      Evaluates the decision with the given key in a DMN decision model. The key is the id attribute of the decision in the DMN XML file.
      Parameters:
      decisionKey - the key of the decision to evaluated
      inputStream - the InputStream of the DMN file
      variables - the variables which are available during the evaluation of expressions in the decision table
      Returns:
      the DmnDecisionTableResult of this evaluation
      Throws:
      DmnEngineException - if no decision is found with the given key
      DmnEngineException - if the decision is not implemented as decision table
      DmnEngineException - if an error occurs during the evaluation
      See Also:
    • evaluateDecisionTable

      DmnDecisionTableResult evaluateDecisionTable(String decisionKey, InputStream inputStream, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
      Evaluates the decision with the given key in a DMN decision model. The key is the id attribute of the decision in the DMN XML file.
      Parameters:
      decisionKey - the key of the decision to evaluated
      inputStream - the InputStream of the DMN file
      variableContext - the variables context which is available during the evaluation of expressions in the decision table
      Returns:
      the DmnDecisionTableResult of this evaluation
      Throws:
      DmnEngineException - if no decision is found with the given key
      DmnEngineException - if the decision is not implemented as decision table
      DmnEngineException - if an error occurs during the evaluation
      See Also:
    • evaluateDecisionTable

      DmnDecisionTableResult evaluateDecisionTable(String decisionKey, org.camunda.bpm.model.dmn.DmnModelInstance dmnModelInstance, Map<String,Object> variables)
      Evaluates the decision with the given key in a DMN decision model. The key is the id attribute of the decision in the DMN XML file.
      Parameters:
      decisionKey - the key of the decision to evaluated
      dmnModelInstance - the DmnModelInstance of the DMN decision model
      variables - the variables which are available during the evaluation of expressions in the decision table
      Returns:
      the DmnDecisionTableResult of this evaluation
      Throws:
      DmnEngineException - if no decision is found with the given key
      DmnEngineException - if the decision is not implemented as decision table
      DmnEngineException - if an error occurs during the evaluation
      See Also:
    • evaluateDecisionTable

      DmnDecisionTableResult evaluateDecisionTable(String decisionKey, org.camunda.bpm.model.dmn.DmnModelInstance dmnModelInstance, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
      Evaluates the decision with the given key in a DMN decision model. The key is the id attribute of the decision in the DMN XML file.
      Parameters:
      decisionKey - the key of the decision to evaluated
      dmnModelInstance - the DmnModelInstance of the DMN decision model
      variableContext - the variables context which is available during the evaluation of expressions in the decision table
      Returns:
      the DmnDecisionTableResult of this evaluation
      Throws:
      DmnEngineException - if an error occurs during the parsing of the decision model
      DmnEngineException - if no decision is found with the given key
      DmnEngineException - if the decision is not implemented as decision table
      DmnEngineException - if an error occurs during the evaluation
      See Also:
    • evaluateDecision

      DmnDecisionResult evaluateDecision(DmnDecision decision, Map<String,Object> variables)
      Evaluates a decision. The decision can be implemented as any kind of supported decision logic (e.g., decision table, literal expression).
      Parameters:
      decision - the DmnDecision to evaluate
      variables - the variables which are available during the evaluation of expressions in the decision
      Returns:
      the DmnDecisionResult of this evaluation
      Throws:
      DmnEngineException - if the decision logic is not supported
      DmnEngineException - if an error occurs during the evaluation
    • evaluateDecision

      DmnDecisionResult evaluateDecision(DmnDecision decision, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
      Evaluates a decision. The decision can be implemented as any kind of supported decision logic (e.g., decision table, literal expression).
      Parameters:
      decision - the DmnDecision to evaluate
      variableContext - the variables context which is available during the evaluation of expressions in the table
      Returns:
      the DmnDecisionResult of this evaluation
      Throws:
      DmnEngineException - if the decision logic is not supported
      DmnEngineException - if an error occurs during the evaluation
    • evaluateDecision

      DmnDecisionResult evaluateDecision(String decisionKey, InputStream inputStream, Map<String,Object> variables)
      Evaluates the decision with the given key in a DMN decision model. The key is the id attribute of the decision in the DMN XML file. The decision can be implemented as any kind of supported decision logic (e.g., decision table, literal expression).
      Parameters:
      decisionKey - the key of the decision to evaluated
      inputStream - the InputStream of the DMN file
      variables - the variables which are available during the evaluation of expressions in the decision
      Returns:
      the DmnDecisionResult of this evaluation
      Throws:
      DmnEngineException - if no decision is found with the given key
      DmnEngineException - if the decision logic is not supported
      DmnEngineException - if an error occurs during the evaluation
    • evaluateDecision

      DmnDecisionResult evaluateDecision(String decisionKey, InputStream inputStream, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
      Evaluates the decision with the given key in a DMN decision model. The key is the id attribute of the decision in the DMN XML file. The decision can be implemented as any kind of supported decision logic (e.g., decision table, literal expression).
      Parameters:
      decisionKey - the key of the decision to evaluated
      inputStream - the InputStream of the DMN file
      variableContext - the variables context which is available during the evaluation of expressions in the decision
      Returns:
      the DmnDecisionResult of this evaluation
      Throws:
      DmnEngineException - if no decision is found with the given key
      DmnEngineException - if the decision logic is not supported
      DmnEngineException - if an error occurs during the evaluation
    • evaluateDecision

      DmnDecisionResult evaluateDecision(String decisionKey, org.camunda.bpm.model.dmn.DmnModelInstance dmnModelInstance, Map<String,Object> variables)
      Evaluates the decision with the given key in a DMN decision model. The key is the id attribute of the decision in the DMN XML file. The decision can be implemented as any kind of supported decision logic (e.g., decision table, literal expression).
      Parameters:
      decisionKey - the key of the decision to evaluated
      dmnModelInstance - the DmnModelInstance of the DMN decision model
      variables - the variables which are available during the evaluation of expressions in the decision
      Returns:
      the DmnDecisionResult of this evaluation
      Throws:
      DmnEngineException - if no decision is found with the given key
      DmnEngineException - if the decision logic is not supported
      DmnEngineException - if an error occurs during the evaluation
    • evaluateDecision

      DmnDecisionResult evaluateDecision(String decisionKey, org.camunda.bpm.model.dmn.DmnModelInstance dmnModelInstance, org.camunda.bpm.engine.variable.context.VariableContext variableContext)
      Evaluates the decision with the given key in a DMN decision model. The key is the id attribute of the decision in the DMN XML file. The decision can be implemented as any kind of supported decision logic (e.g., decision table, literal expression).
      Parameters:
      decisionKey - the key of the decision to evaluated
      dmnModelInstance - the DmnModelInstance of the DMN decision model
      variableContext - the variables context which is available during the evaluation of expressions in the decision
      Returns:
      the DmnDecisionResult of this evaluation
      Throws:
      DmnEngineException - if an error occurs during the parsing of the decision model
      DmnEngineException - if no decision is found with the given key
      DmnEngineException - if the decision logic is not supported
      DmnEngineException - if an error occurs during the evaluation