AbstractEventManager.java
package fr.paris.lutece.portal.service.event;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Consumer;
import fr.paris.lutece.portal.business.event.AbstractLuteceEvent;
import fr.paris.lutece.portal.service.util.AppLogService;
public abstract class AbstractEventManager <T extends AbstractLuteceEvent>
{
private Map<String, Consumer<T>> _listeners = new HashMap<>( );
/**
* Subscribe to this listener.
*
* @param listener
* the listener
*/
public void register( String strName, Consumer<T> consumerFunction )
{
_listeners.put( strName, consumerFunction );
AppLogService.info( "New Lutece event listener registered : {}", strName );
}
/**
* Subscribe to this listener.
*
* @param listener
* the listener
*/
public void notifyListeners( T event )
{
for ( String key : _listeners.keySet( ) )
{
_listeners.get( key ).accept( event );
}
}
}