Class ListenerService

  • All Implemented Interfaces:
    org.picocontainer.Startable

    public class ListenerService
    extends Object
    implements org.picocontainer.Startable
    Created by The eXo Platform SAS
    Listener Service is reponsible for notifying the Listener when a given event is broadcasted.
    Author:
    : Nhu Dinh Thuan.
    eXo level API
    Platform
    • Constructor Detail

      • ListenerService

        public ListenerService​(org.exoplatform.container.ExoContainerContext ctx)
        Construct a listener service.
      • ListenerService

        public ListenerService​(org.exoplatform.container.ExoContainerContext ctx,
                               InitialContextInitializer initializer)
        Construct a listener service.
      • ListenerService

        public ListenerService​(org.exoplatform.container.ExoContainerContext ctx,
                               org.exoplatform.container.xml.InitParams params)
        Construct a listener service.
      • ListenerService

        public ListenerService​(org.exoplatform.container.ExoContainerContext ctx,
                               InitialContextInitializer initializer,
                               org.exoplatform.container.xml.InitParams params)
        Construct a listener service.
    • Method Detail

      • addListener

        public void addListener​(Listener listener)
        This method is used to register a Listener to the events of the same name. It is similar to addListener(listener.getName(), listener)
        Parameters:
        listener - the listener to notify any time an even of the same name is triggered
      • addListener

        public void addListener​(String eventName,
                                Listener listener)
        This method is used to register a new Listener. Any time an event of the given event name has been triggered, the Listener will be notified. This method will:
        1. Check if it exists a list of listeners that have been registered for the given event name, create a new list if no list exists
        2. Add the listener to the list
        Parameters:
        eventName - The name of the event to listen to
        listener - The Listener to notify any time the event with the given name is triggered
      • broadcast

        public final <S,​D> void broadcast​(String name,
                                                S source,
                                                D data)
                                         throws Exception
        This method is used to broadcast an event. This method should: 1. Check if there is a list of listener that listen to the event name. 2. If there is a list of listener, create the event object with the given name , source and data 3. For each listener in the listener list, invoke the method onEvent(Event)
        Type Parameters:
        S - The type of the source that broacast the event
        D - The type of the data that the source object is working on
        Parameters:
        name - The name of the event
        source - The source object instance
        data - The data object instance
        Throws:
        Exception - if an exception occurs
      • broadcast

        public final <T extends Event> void broadcast​(T event)
                                               throws Exception
        This method is used when a developer want to implement his own event object and broadcast the event. The method should: 1. Check if there is a list of listener that listen to the event name. 2. If there is a list of the listener, ror each listener in the listener list, invoke the method onEvent(Event)
        Type Parameters:
        T - The type of the event object, the type of the event object has to be extended from the Event type
        Parameters:
        event - The event instance
        Throws:
        Exception
      • start

        public void start()
        Specified by:
        start in interface org.picocontainer.Startable
      • stop

        public void stop()
        Specified by:
        stop in interface org.picocontainer.Startable