package org.kie.kogito.dmn.example.listener;
import org.kie.dmn.api.core.event.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* A simple DMN event listener that logs events as they occur
*/
public class LoggingDMNRuntimeEventListener implements DMNRuntimeEventListener {
private static final Logger LOG = LoggerFactory.getLogger(DMNRuntimeEventListener.class);
private final String name;
public LoggingDMNRuntimeEventListener(String name) {
this.name = name;
}
@Override
public void beforeEvaluateDecision(BeforeEvaluateDecisionEvent event) { // (1)
LOG.info("{} - About to evaluate decision: {}",
name, event.getDecision().getName());
}
@Override
public void afterEvaluateDecision(AfterEvaluateDecisionEvent event) { // (2)
LOG.info("{} - Completed evaluation of decision: {}. Result: {}",
name, event.getDecision().getName(), event.getResult().getDecisionResult());
}
@Override
public void beforeEvaluateContextEntry(BeforeEvaluateContextEntryEvent event) {
LOG.info("{} - About to evaluate context entry: {}",
name, event.getContextEntry().getVariable());
}
@Override
public void afterEvaluateContextEntry(AfterEvaluateContextEntryEvent event) {
LOG.info("{} - Completed evaluation of context entry: {}",
name, event.getContextEntry().getVariable());
}
@Override
public void beforeEvaluateDecisionTable(BeforeEvaluateDecisionTableEvent event) {
LOG.info("{} - About to evaluate decision table for decision: {}",
name, event.getDecisionTableName());
}
@Override
public void afterEvaluateDecisionTable(AfterEvaluateDecisionTableEvent event) {
LOG.info("{} - Completed evaluation of decision table for decision: {}",
name, event.getDecisionTableName());
}
@Override
public void beforeEvaluateAll(BeforeEvaluateAllEvent event) { // (3)
LOG.info("{} - About to evaluate DMN model: {}",
name, event.getDecisionModel().getName());
}
@Override
public void afterEvaluateAll(AfterEvaluateAllEvent event) { // (4)
LOG.info("{} - Completed evaluation of DMN model: {}",
name, event.getDecisionModel().getName());
}
}