![JAR search and dependency download from the Maven repository](/logo.png)
net.sf.javagimmicks.collections.event.ObservableEventMap Maven / Gradle / Ivy
package net.sf.javagimmicks.collections.event;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import net.sf.javagimmicks.collections.event.MapEvent.Type;
public class ObservableEventMap extends AbstractEventMap
{
private static final long serialVersionUID = 8006998141057065129L;
protected transient List> _listeners;
public ObservableEventMap(Map decorated)
{
super(decorated);
}
public void addEventMapListener(EventMapListener listener)
{
if(_listeners == null)
{
_listeners = new ArrayList>();
}
_listeners.add(listener);
}
public void removeEventMapListener(EventMapListener listener)
{
if(_listeners != null)
{
_listeners.remove(listener);
}
}
@Override
protected void fireEntryAdded(K key, V value)
{
fireEvent(new MapEvent(this, Type.ADDED, key, value));
}
@Override
protected void fireEntryRemoved(K key, V value)
{
fireEvent(new MapEvent(this, Type.REMOVED, key, value));
}
@Override
protected void fireEntryUpdated(K key, V oldValue, V newValue)
{
fireEvent(new MapEvent(this, Type.UPDATED, key, oldValue, newValue));
}
private void fireEvent(MapEvent event)
{
if(_listeners == null)
{
return;
}
for(EventMapListener listener : _listeners)
{
listener.eventOccured(event);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy