001 package com.hammurapi.eventbus;
002
003 /**
004 * This class delegates to another event handler. The class is initialized from the master handler. Initialization parameters
005 * can be changed afterwards.
006 * @author Pavel Vlasov
007 *
008 * @param <E>
009 * @param <P>
010 * @param <C>
011 * @param <H>
012 * @param <S>
013 */
014 public class EventHandlerFilter<E, P extends Comparable<P>, C, H extends EventBus.Handle<E,P,C>, S extends EventStore<E,P,C,H,S>> extends AbstractEventHandler<E, P, C, H, S> {
015
016 private EventHandler<E, P, C, H, S> master;
017
018 public EventHandlerFilter(EventHandler<E,P,C,H,S> master) {
019 super(
020 master.getCardinality(),
021 master.getPriority(),
022 master.getContext(),
023 master.consumes(),
024 master.isOneOff(),
025 master.getMode(),
026 master.getPredicate());
027
028 this.master = master;
029 }
030
031 @Override
032 public void post(EventDispatchContext<E, P, C, H, S> context, E... events) {
033 master.post(context, events);
034 }
035
036 public EventHandler<E, P, C, H, S> getMaster() {
037 return master;
038 }
039
040 }