public final class InvokerEventHandler implements EventHandler<ProxyEvent> { private final EventListener implementation; public InvokerEventHandler(final EventListener implementation) { this.implementation = implementation; } @Override public void onEvent(final ProxyEvent event, final long sequence, final boolean endOfBatch) throws Exception { switch(event.getMethod()) { case EVENT_TYPE_A: implementation.onEventTypeA(event.getStringArg(), event.getIntArg()); break; case EVENT_TYPE_B: implementation.onEventTypeB(event.getLongArg1(), event.getLongArg2()); break; } } }