AbstractEventManager.java

  1. package fr.paris.lutece.portal.service.event;

  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import java.util.function.Consumer;

  5. import fr.paris.lutece.portal.business.event.AbstractLuteceEvent;
  6. import fr.paris.lutece.portal.service.util.AppLogService;

  7. public  abstract class  AbstractEventManager <T extends AbstractLuteceEvent>
  8. {

  9.     private Map<String, Consumer<T>> _listeners = new HashMap<>( );
  10.    
  11.     /**
  12.      * Subscribe to this listener.
  13.      *
  14.      * @param listener
  15.      *            the listener
  16.      */
  17.     public void register( String strName, Consumer<T> consumerFunction )
  18.     {
  19.         _listeners.put( strName, consumerFunction );
  20.         AppLogService.info( "New Lutece event listener registered : {}", strName );
  21.     }
  22.    
  23.     /**
  24.      * Subscribe to this listener.
  25.      *
  26.      * @param listener
  27.      *            the listener
  28.      */
  29.     public void notifyListeners( T event )
  30.     {
  31.         for ( String key : _listeners.keySet( ) )
  32.         {
  33.             _listeners.get( key ).accept( event );            
  34.         }
  35.     }
  36. }