The following example shows how to create an engine listener
public class MyEngineListener implements EngineListener {
private Project project;
public MyEngineListener(Project project) {
this.project = project;
}
@Override
public void elementActivated(Element element, Collection<?> values) {
System.out.printIn("--Activate Element-- : element name = " ((NamedElement)element).getName());
}
@Override
public void elementDeactivated(Element element, Collection<?> values) {
System.out.printIn("--Deactivate Element-- : element name = " + ((NamedElement)element).getName());
}
@Override
public void eventTriggered(String eventID) {
NamedElement element = (NamedElement)project.getElementByID(eventID);
System.out.printIn("--Event Trigger-- : event name = " + ((NamedElement)element).getName());
}
@Override
public void executionTerminated() {
System.out.printIn("--Engine Terminated--");
}
}
Once you have created an EngineListener, you can register it to the specified ExecutionEngine if you want to receive events occurring in each execution engine. All engine listeners of a specific engine will be activated under the conditions as follows
- An element is activated.
- An element is deactivated.
- An event is triggered.
- An engine is terminated.
public interface EngineListener {
void elementActivated(Element element, Collection<?> values);
void elementDeactivated(Element element, Collection<?> values);
void eventTriggered(String eventID);
void executionTerminated();
}
See Creating a new execution engine for more information about adding execution engine listeners to the MyExecutionEngine class.
Note
You can add more than one execution engine listener to an execution engine.