Class MappingListenerManager<K,​V>

  • All Implemented Interfaces:
    Listenable<K>, ListenerManager<K,​V>

    public class MappingListenerManager<K,​V>
    extends java.lang.Object
    implements ListenerManager<K,​V>
    Upgraded version of ListenerContainer that doesn't leak Guava's internals and also supports mapping/wrapping of listeners
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addListener​(K listener)
      Add the given listener.
      void addListener​(K listener, java.util.concurrent.Executor executor)
      Add the given listener.
      void clear()
      Remove all listeners
      void forEach​(java.util.function.Consumer<V> function)
      Utility - apply the given function to each listener.
      static <K,​V>
      ListenerManager<K,​V>
      mapping​(java.util.function.Function<K,​V> mapper)
      Returns a new container that wraps listeners using the given mapper
      void removeListener​(K listener)
      Remove the given listener
      int size()
      Return the number of listeners
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • mapping

        public static <K,​V> ListenerManager<K,​V> mapping​(java.util.function.Function<K,​V> mapper)
        Returns a new container that wraps listeners using the given mapper
        Parameters:
        mapper - listener mapper/wrapper
        Returns:
        new container
      • addListener

        public void addListener​(K listener)
        Description copied from interface: Listenable
        Add the given listener. The listener will be executed in the containing instance's thread.
        Specified by:
        addListener in interface Listenable<K>
        Parameters:
        listener - listener to add
      • addListener

        public void addListener​(K listener,
                                java.util.concurrent.Executor executor)
        Description copied from interface: Listenable
        Add the given listener. The listener will be executed using the given executor
        Specified by:
        addListener in interface Listenable<K>
        Parameters:
        listener - listener to add
        executor - executor to run listener in
      • removeListener

        public void removeListener​(K listener)
        Description copied from interface: Listenable
        Remove the given listener
        Specified by:
        removeListener in interface Listenable<K>
        Parameters:
        listener - listener to remove
      • size

        public int size()
        Description copied from interface: ListenerManager
        Return the number of listeners
        Specified by:
        size in interface ListenerManager<K,​V>
        Returns:
        number
      • forEach

        public void forEach​(java.util.function.Consumer<V> function)
        Description copied from interface: ListenerManager
        Utility - apply the given function to each listener. The function receives the listener as an argument.
        Specified by:
        forEach in interface ListenerManager<K,​V>
        Parameters:
        function - function to call for each listener