onReceive method
React to events being thrown. Use switch case on the localityEvent.event
Implementation
@override
void onReceive(LocalityEvent localityEvent) {
if (!waiterInitialized) {
List<EventWaitInstruction> instructions = getEventWaitInstructions();
for (int i = 0; i < instructions.length; i++) {
eventWaiter.register(instructions[i].event,
instructions[i].waitsForEvent, instructions[i].traitName, 2);
}
waiterInitialized = true;
}
eventWaiter.traitUp(localityEvent.event, localityEvent.payload);
if (eventWaiter.passes(localityEvent.event, localityEvent.payload)) {
onRelease(localityEvent);
} else {
waitingEvents.add(localityEvent);
}
for (int i = 0; i < waitingEvents.length; i++) {
if (eventWaiter.passes(
waitingEvents[i].event, waitingEvents[i].payload)) {
waitingEvents.removeAt(i);
onRelease(waitingEvents[i]);
}
}
}