All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.netflix.eventbus.spi.DynamicSubscriber Maven / Gradle / Ivy

package com.netflix.eventbus.spi;

/**
 * Eventbus subscribers, by design, are statically tied to a particular type of object i.e. the class of the event it
 * is interested in. This in most cases is beneficial and easy to use, however, in some cases (typically event agnostic,
 * middlemen, which stores the event for later investigation), the event processing is much the same irrespective of the
 * type of event it receives. In such a case, it will be an overhead (even if possible) to define a subscriber for
 * each kind of event existing in the system. 
* This special subscriber is a way to achieve dynamic interests (immutable after registration) in subscribers. Although, * this subscriber can only listen to one type of event but the type is defined at runtime as opposed to compile time * in a normal subscriber.
* Although, this subscriber does not mandate that the subscriber must have a subscribe method (one annotated with * {@link Subscribe}) listening to event type {@link Object} but in most of the cases, such a subscribe method will * prove to be more useful. {@link EventBus} allows specifying the subscribe method with argument {@link Object} * only for these subscribers.
* * Implementations must only have a single subscriber method or else the registration with eventbus will be rejected. * This limitation is imposed as we do not want to make runtime decisions on which subscribe method an event must be * directed to. * * @author Nitesh Kant */ public interface DynamicSubscriber { /** * Returns the event type i.e. the class of the event that this subscriber will be interested in.
* {@link EventBus} allows specifying the subscribe method with argument {@link Object} only for * these subscribers.
* The implementers of this interface must make sure that the subscribe method accepts the event class returned by * this method. * * @return The event type i.e. the class of the event that this subscriber will be interested in.
*/ Class getEventType(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy