Class ObservableMap<K,V>
- java.lang.Object
-
- org.eclipse.core.databinding.observable.AbstractObservable
-
- org.eclipse.core.databinding.observable.map.ObservableMap<K,V>
-
- Type Parameters:
K
- the type of the keys in this mapV
- the type of the values in this map
- All Implemented Interfaces:
Map<K,V>
,IObservable
,IObservableMap<K,V>
- Direct Known Subclasses:
BidirectionalMap
,CompositeMap
,WritableMap
public class ObservableMap<K,V> extends AbstractObservable implements IObservableMap<K,V>
This class is thread safe. All state accessing methods must be invoked from the
current realm
. Methods for adding and removing listeners may be invoked from any thread.- Since:
- 1.0
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<K,V>
wrappedMap
-
Constructor Summary
Constructors Constructor Description ObservableMap(Map<K,V> wrappedMap)
ObservableMap(Realm realm, Map<K,V> wrappedMap)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addListener(Object listenerType, IObservablesListener listener)
void
addMapChangeListener(IMapChangeListener<? super K,? super V> listener)
void
clear()
protected Object
clone()
boolean
containsKey(Object key)
boolean
containsValue(Object value)
Set<Map.Entry<K,V>>
entrySet()
boolean
equals(Object o)
protected void
fireEvent(ObservableEvent event)
protected void
fireMapChange(MapDiff<K,V> diff)
protected void
firstListenerAdded()
V
get(Object key)
Object
getKeyType()
Returns the element type for thekeyset
of this observable map, ornull
if the keyset is untyped.Realm
getRealm()
protected void
getterCalled()
Object
getValueType()
Returns the element type for thevalues
of this observable map, ornull
if the values collection is untyped.int
hashCode()
protected boolean
hasListeners()
boolean
isEmpty()
boolean
isStale()
Returns the stale state.Set<K>
keySet()
protected void
lastListenerRemoved()
V
put(K key, V value)
void
putAll(Map<? extends K,? extends V> arg0)
V
remove(Object key)
protected void
removeListener(Object listenerType, IObservablesListener listener)
void
removeMapChangeListener(IMapChangeListener<? super K,? super V> listener)
void
setStale(boolean stale)
Sets the stale state.int
size()
Collection<V>
values()
-
Methods inherited from class org.eclipse.core.databinding.observable.AbstractObservable
addChangeListener, addDisposeListener, addStaleListener, checkRealm, dispose, fireChange, fireStale, isDisposed, removeChangeListener, removeDisposeListener, removeStaleListener
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.core.databinding.observable.IObservable
addChangeListener, addDisposeListener, addStaleListener, dispose, getRealm, isDisposed, removeChangeListener, removeDisposeListener, removeStaleListener
-
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
-
-
-
-
Method Detail
-
addMapChangeListener
public void addMapChangeListener(IMapChangeListener<? super K,? super V> listener)
- Specified by:
addMapChangeListener
in interfaceIObservableMap<K,V>
- Parameters:
listener
- the change listener to add; notnull
-
removeMapChangeListener
public void removeMapChangeListener(IMapChangeListener<? super K,? super V> listener)
- Specified by:
removeMapChangeListener
in interfaceIObservableMap<K,V>
- Parameters:
listener
- the change listener to remove; notnull
-
getKeyType
public Object getKeyType()
Description copied from interface:IObservableMap
Returns the element type for thekeyset
of this observable map, ornull
if the keyset is untyped.- Specified by:
getKeyType
in interfaceIObservableMap<K,V>
- Returns:
- the element type for the
keyset
of this observable map, ornull
if the keyset is untyped. - Since:
- 1.2
-
getValueType
public Object getValueType()
Description copied from interface:IObservableMap
Returns the element type for thevalues
of this observable map, ornull
if the values collection is untyped.- Specified by:
getValueType
in interfaceIObservableMap<K,V>
- Returns:
- the element type for the
values
of this observable map, ornull
if the values collection is untyped. - Since:
- 1.2
-
getterCalled
protected void getterCalled()
-
containsKey
public boolean containsKey(Object key)
- Specified by:
containsKey
in interfaceIObservableMap<K,V>
- Specified by:
containsKey
in interfaceMap<K,V>
-
containsValue
public boolean containsValue(Object value)
- Specified by:
containsValue
in interfaceIObservableMap<K,V>
- Specified by:
containsValue
in interfaceMap<K,V>
-
isEmpty
public boolean isEmpty()
-
size
public int size()
-
values
public Collection<V> values()
-
isStale
public boolean isStale()
Returns the stale state. Must be invoked from the current realm.- Specified by:
isStale
in interfaceIObservable
- Returns:
- stale state
-
setStale
public void setStale(boolean stale)
Sets the stale state. Must be invoked from the current realm.- Parameters:
stale
- The stale state to set. This will fire a stale event if the given boolean is true and this observable set was not already stale.
-
equals
public boolean equals(Object o)
-
hashCode
public int hashCode()
-
addListener
protected void addListener(Object listenerType, IObservablesListener listener)
- Parameters:
listenerType
- arbitrary object to identify a type of the listenerlistener
- the listener to add; notnull
-
removeListener
protected void removeListener(Object listenerType, IObservablesListener listener)
- Parameters:
listenerType
- arbitrary object to identify a type of the listenerlistener
- the listener to remove; notnull
-
hasListeners
protected boolean hasListeners()
-
fireEvent
protected void fireEvent(ObservableEvent event)
-
firstListenerAdded
protected void firstListenerAdded()
-
lastListenerRemoved
protected void lastListenerRemoved()
-
getRealm
public Realm getRealm()
- Returns:
- Returns the realm.
-
clone
protected Object clone() throws CloneNotSupportedException
- Overrides:
clone
in classObject
- Throws:
CloneNotSupportedException
-
-