Class ComputedObservableMap<K,​V>

  • Type Parameters:
    K - type of the keys to the map
    V - type of the values in the map
    All Implemented Interfaces:
    Map<K,​V>, IObservable, IObservableMap<K,​V>

    public abstract class ComputedObservableMap<K,​V>
    extends AbstractObservableMap<K,​V>
    Maps objects to one of their attributes. Tracks changes to the underlying observable set of objects (keys), as well as changes to attribute values.
    • Constructor Detail

      • ComputedObservableMap

        public ComputedObservableMap​(IObservableSet<K> keySet)
        Parameters:
        keySet -
      • ComputedObservableMap

        public ComputedObservableMap​(IObservableSet<K> keySet,
                                     Object valueType)
        Parameters:
        keySet -
        valueType -
        Since:
        1.2
    • Method Detail

      • init

        @Deprecated
        protected void init()
        Deprecated.
        Subclasses are no longer required to call this method.
      • fireSingleChange

        protected final void fireSingleChange​(K key,
                                              V oldValue,
                                              V newValue)
      • unhookListener

        protected abstract void unhookListener​(K removedKey)
        Parameters:
        removedKey -
      • hookListener

        protected abstract void hookListener​(K addedKey)
        Parameters:
        addedKey -
      • doGet

        protected abstract V doGet​(K key)
        Parameters:
        key -
        Returns:
        the value for the given key
      • doPut

        protected abstract V doPut​(K key,
                                   V value)
        Parameters:
        key -
        value -
        Returns:
        the old value for the given key
      • isStale

        public boolean isStale()
        Description copied from interface: IObservable
        Returns whether the state of this observable is stale and is expected to change soon. A non-stale observable that becomes stale will notify its stale listeners. A stale object that becomes non-stale does so by changing its state and notifying its change listeners, it does not notify its stale listeners about becoming non-stale. Clients that do not expect asynchronous changes may ignore staleness of observable objects.
        Specified by:
        isStale in interface IObservable
        Overrides:
        isStale in class AbstractObservableMap<K,​V>
        Returns:
        true if this observable's state is stale and will change soon.
      • dispose

        public void dispose()
        Description copied from interface: IObservable
        Disposes of this observable object, removing all listeners registered with this object, and all listeners this object might have registered on other objects.
        Specified by:
        dispose in interface IObservable
        Overrides:
        dispose in class AbstractObservableMap<K,​V>