001 package com.hammurapi.eventbus;
002
003 /**
004 * Event handler.
005 * @author Pavel Vlasov.
006 * @param <E> Event type.
007 * @param <P> Priority type.
008 */
009 public interface EventHandler<E, P extends Comparable<P>, C, H extends EventBus.Handle<E,P,C>, S extends EventStore<E,P,C,H,S>> extends EventHandlerBase<E, P, C> {
010
011 /**
012 * Posts event for handling.
013 * @param context Event dispatching context.
014 * @param events Events to handle. An event to handle if there is one event.
015 * A tuple of joined events to handle otherwise.
016 * @return Events to post to the bus as a result of event handling.
017 */
018 void post(EventDispatchContext<E,P,C,H,S> context, E... events);
019
020 }