001 package com.hammurapi.eventbus;
002
003 import java.util.Set;
004
005 /**
006 * Interface for binding Java classes with annotated methods to event bus.
007 * @author Pavel Vlasov
008 *
009 * @param <C> Context type.
010 * @param <K> Registration key type.
011 */
012 public interface JavaBinder<E, C, K, H extends EventBus.Handle<E,Integer,C>, S extends EventStore<E,Integer,C,H,S>, B extends EventBus<E, Integer, C, K, H, S>, I extends C> {
013
014 /**
015 * Binds instance to the bus
016 * @param instance
017 * @param bus
018 * @return Registration keys.
019 */
020 Set<K> bind(I instance, B bus);
021 }