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, Integer> eventTypeCounter; public ProfilingEventDispatcher() { eventTypeCounter = new HashMap, Integer>(); } @Override public void dispatchEvent(ObservableEvent event) { super.dispatchEvent(event); int count = eventTypeCounter.computeIfAbsent(event.getClass(), c -> 0); eventTypeCounter.put(event.getClass(), count+1); } public void printEventsCount() { for (Map.Entry, Integer> entry : eventTypeCounter.entrySet()) { System.out.println("Event type: " + entry.getKey().getSimpleName() + ",\t\t\t\tEvents count:: " + entry.getValue()); } } }