public class NamedEventInterceptorBuilder extends Object implements ParameterizedBuilder<com.tangosol.net.events.internal.NamedEventInterceptor>, BuilderCustomization<EventInterceptor>
NamedEventInterceptor, which wraps an EventInterceptor. The
wrapped EventInterceptor will be constructed based on its instance /
class-scheme XML declaration, honoring any init-params
defined.
The construction of a NamedEventInterceptor allows metadata associated
with the EventInterceptor to be held. This metadata is used to determine
eligibility against EventDispatchers and
for registration purposes.
In addition to XML being used as input in defining an EventInterceptor and
its metadata the presence of an annotation (Interceptor) can also
contribute. This annotation can define the identifier for this interceptor,
the event types to subscribe to and whether to be placed first in the chain
of EventInterceptors (Interceptor.Order.HIGH.
NamedEventInterceptor objects also use class level generic type definitions as input for configuration. The generic type definition allows EventInterceptor implementations to restrict on event types by narrowing the type definition within the reference to the EventInterceptor interface. For example, the following interceptor restricts to only accept transfer events:
class MyInterceptor
implements EventInterceptor<TransferEvent>
{
public void onEvent(TransferEvent event);
}
The precedence, in highest order first reading left to right, for
configuration is as follows:
XML -> Annotation -> Generic Type Bounds
ParameterizedBuilder.ReflectionSupport| Constructor and Description |
|---|
NamedEventInterceptorBuilder() |
| Modifier and Type | Method and Description |
|---|---|
ParameterizedBuilder<EventInterceptor> |
getCustomBuilder()
Obtains the custom
ParameterizedBuilder. |
String |
getName()
Get the logical name / identifier for this
EventInterceptor. |
Interceptor.Order |
getOrder()
Return the
Interceptor.Order of this interceptor. |
RegistrationBehavior |
getRegistrationBehavior()
Returns the behavior upon duplicate registration.
|
boolean |
isFirst()
Whether this
EventInterceptor should be head of the stack. |
com.tangosol.net.events.internal.NamedEventInterceptor |
realize(com.tangosol.config.expression.ParameterResolver resolver,
ClassLoader loader,
ParameterList listParameters)
Realizes (creates if necessary) an instance of a object of type T, using the provided
ParameterResolver
to resolve values any referenced Parameters. |
void |
setCustomBuilder(ParameterizedBuilder<EventInterceptor> bldr)
Sets the
ParameterizedBuilder to be used as the alternate builder. |
NamedEventInterceptorBuilder |
setName(String sName)
Set the logical name / identifier for this
EventInterceptor. |
NamedEventInterceptorBuilder |
setOrder(Interceptor.Order order)
Set the
EventInterceptor's order (HIGH || LOW), hence
whether it should be at the start of the chain of interceptors. |
NamedEventInterceptorBuilder |
setRegistrationBehavior(RegistrationBehavior behavior)
Specifies the behavior upon duplicate registration.
|
String |
toString() |
public com.tangosol.net.events.internal.NamedEventInterceptor realize(com.tangosol.config.expression.ParameterResolver resolver,
ClassLoader loader,
ParameterList listParameters)
ParameterResolver
to resolve values any referenced Parameters.realize in interface ParameterizedBuilder<com.tangosol.net.events.internal.NamedEventInterceptor>resolver - the ParameterResolver for resolving named Parametersloader - the ClassLoader for loading any necessary classes and if null the
ClassLoader used to load the builder will be used insteadlistParameters - an optional ParameterList (may be null) to be used for realizing the
instance, eg: used as constructor parameterspublic ParameterizedBuilder<EventInterceptor> getCustomBuilder()
ParameterizedBuilder.getCustomBuilder in interface BuilderCustomization<EventInterceptor>ParameterizedBuilderpublic void setCustomBuilder(ParameterizedBuilder<EventInterceptor> bldr)
ParameterizedBuilder to be used as the alternate builder.setCustomBuilder in interface BuilderCustomization<EventInterceptor>bldr - the ParameterizedBuilderpublic String getName()
EventInterceptor.EventInterceptor@Injectable public NamedEventInterceptorBuilder setName(String sName)
EventInterceptor.sName - logical name / identifier for this EventInterceptor.this builderpublic boolean isFirst()
EventInterceptor should be head of the stack.EventInterceptor should be head of the stackpublic Interceptor.Order getOrder()
Interceptor.Order of this interceptor.Interceptor.Order of this interceptor@Injectable public NamedEventInterceptorBuilder setOrder(Interceptor.Order order)
EventInterceptor's order (HIGH || LOW), hence
whether it should be at the start of the chain of interceptors.order - whether this EventInterceptor should be
head of the stack based on the values Interceptor.Order.HIGH
or Interceptor.Order.LOWthis builderpublic RegistrationBehavior getRegistrationBehavior()
@Injectable public NamedEventInterceptorBuilder setRegistrationBehavior(RegistrationBehavior behavior)
behavior - the behavior upon duplicate registrationthis builder