eventflow-tmp/eventflow/ProfilingEventDispatcher.java

30 lines
860 B
Java
Executable File

package de.midlane_illaoi.eventflow;
import java.util.HashMap;
import java.util.Map;
import de.midlane_illaoi.eventflow.event.ObservableEvent;
public class ProfilingEventDispatcher extends ObservableEventDispatcher{
private Map<Class<?>, Integer> eventTypeCounter;
public ProfilingEventDispatcher() {
eventTypeCounter = new HashMap<Class<?>, Integer>();
}
@Override
public <T> void dispatchEvent(ObservableEvent<T> event) {
super.dispatchEvent(event);
int count = eventTypeCounter.computeIfAbsent(event.getClass(), c -> 0);
eventTypeCounter.put(event.getClass(), count+1);
}
public void printEventsCount() {
for (Map.Entry<Class<?>, Integer> entry : eventTypeCounter.entrySet()) {
System.out.println("Event type: " + entry.getKey().getSimpleName() + ",\t\t\t\tEvents count:: " + entry.getValue());
}
}
}