![JAR search and dependency download from the Maven repository](/logo.png)
net.sf.javagimmicks.collections.event.ObservableEventNavigableMap Maven / Gradle / Ivy
package net.sf.javagimmicks.collections.event;
import java.util.ArrayList;
import java.util.List;
import java.util.NavigableMap;
import java.util.NavigableSet;
import java.util.SortedMap;
import net.sf.javagimmicks.collections.event.NavigableMapEvent.Type;
public class ObservableEventNavigableMap extends AbstractEventNavigableMap
{
private static final long serialVersionUID = -4936595637793434597L;
protected transient List> _listeners;
public ObservableEventNavigableMap(NavigableMap decorated)
{
super(decorated);
}
public void addEventNavigableMapListener(EventNavigableMapListener listener)
{
if(_listeners == null)
{
_listeners = new ArrayList>();
}
_listeners.add(listener);
}
public void removeEventNavigableMapListener(EventNavigableMapListener listener)
{
if(_listeners != null)
{
_listeners.remove(listener);
}
}
@Override
public NavigableSet descendingKeySet()
{
// TODO Auto-generated method stub
return super.descendingKeySet();
}
@Override
public NavigableMap descendingMap()
{
// TODO Auto-generated method stub
return super.descendingMap();
}
@Override
public NavigableMap headMap(K toKey, boolean inclusive)
{
// TODO Auto-generated method stub
return super.headMap(toKey, inclusive);
}
@Override
public NavigableSet navigableKeySet()
{
// TODO Auto-generated method stub
return super.navigableKeySet();
}
@Override
public NavigableMap subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
{
// TODO Auto-generated method stub
return super.subMap(fromKey, fromInclusive, toKey, toInclusive);
}
@Override
public NavigableMap tailMap(K fromKey, boolean inclusive)
{
// TODO Auto-generated method stub
return super.tailMap(fromKey, inclusive);
}
@Override
public SortedMap headMap(K toKey)
{
// TODO Auto-generated method stub
return super.headMap(toKey);
}
@Override
public SortedMap subMap(K fromKey, K toKey)
{
// TODO Auto-generated method stub
return super.subMap(fromKey, toKey);
}
@Override
public SortedMap tailMap(K fromKey)
{
// TODO Auto-generated method stub
return super.tailMap(fromKey);
}
@Override
protected void fireEntryAdded(K key, V value)
{
fireEvent(new NavigableMapEvent(this, Type.ADDED, key, value));
}
@Override
protected void fireEntryRemoved(K key, V value)
{
fireEvent(new NavigableMapEvent(this, Type.REMOVED, key, value));
}
@Override
protected void fireEntryUpdated(K key, V oldValue, V newValue)
{
fireEvent(new NavigableMapEvent(this, Type.UPDATED, key, oldValue, newValue));
}
private void fireEvent(NavigableMapEvent event)
{
if(_listeners == null)
{
return;
}
for(EventNavigableMapListener listener : _listeners)
{
listener.eventOccured(event);
}
}
protected static class ObservableEventSubNavigableMap extends ObservableEventNavigableMap
{
private static final long serialVersionUID = -863678987488740776L;
protected final ObservableEventNavigableMap _parent;
protected ObservableEventSubNavigableMap(ObservableEventNavigableMap parent, NavigableMap decorated)
{
super(decorated);
_parent = parent;
}
@Override
protected void fireEntryAdded(K key, V value)
{
super.fireEntryAdded(key, value);
_parent.fireEntryAdded(key, value);
}
@Override
protected void fireEntryRemoved(K key, V value)
{
super.fireEntryRemoved(key, value);
_parent.fireEntryRemoved(key, value);
}
@Override
protected void fireEntryUpdated(K key, V oldValue, V newValue)
{
super.fireEntryUpdated(key, oldValue, newValue);
_parent.fireEntryUpdated(key, oldValue, newValue);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy