30 lines
860 B
Java
Executable File
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());
|
|
}
|
|
}
|
|
|
|
}
|