package org.ovirt.engine.ui.webadmin.editor; import java.util.HashMap; import java.util.Map; import org.ovirt.engine.core.compat.IEventListener; /** * A Map of {@link IEventListener}s - used by the Editor Driver to call the relevant Listener when a change has * occurred. */ public class UiCommonListenerMap { private final Map<String, IEventListener> listenerMap; public UiCommonListenerMap() { listenerMap = new HashMap<String, IEventListener>(); } /** * Add a Listener to the map * * @param name * The property name (i.e. "DefinedMemory") * @param type * The event type (i.e. "PropertyChanged") * @param listener * The Listener */ public void addListener(String name, String type, IEventListener listener) { listenerMap.put(getKey(name, type), listener); } /** * Invoke a registered Listener * * @param name * The property name (i.e. "DefinedMemory") * @param type * The event type (i.e. "PropertyChanged") */ public void callListener(String name, String type) { String key = getKey(name, type); if (listenerMap.containsKey(key)) { listenerMap.get(key).eventRaised(null, null, null); } } private String getKey(String name, String type) { return name + "_" + type; } }