Untitled
unknown
plain_text
24 days ago
1.3 kB
6
Indexable
package il.ac.tau.cs.software1.core; import java.util.*; public class EventManager { private static EventManager eventManager = null; Map<String, List<EventSubscription>> subscribers = new HashMap<>(); private EventManager() {}; public void subscribe(String event, GameObject subscriber, IEventCallback callback) { /* Q2 */ if (subscribers.keySet().contains(event)) { System.out.println(event + " is already in subscribers"); subscribers.get(event).add(new EventSubscription(subscriber,callback)); System.out.println(subscribers.toString()); } else { System.out.println(event + " not in subscribers"); subscribers.put(event, new ArrayList<>(Arrays.asList(new EventSubscription(subscriber,callback)))); System.out.println(subscribers.toString()); } } public void notifyEvent(String event, GameObject publisher, Object data) { /* Q3 */ List<EventSubscription> subscribersLst = subscribers.get(event); if (subscribersLst == null) return; for (EventSubscription e : subscribersLst) { e.callback.call((EventData) data); } } // --------------------------------------- (Singleton) /* Q1 */ public static EventManager getEventManager() { if (eventManager == null) { eventManager = new EventManager(); } return eventManager; } }
Editor is loading...
Leave a Comment