Package net.engio.mbassy.listener
Annotation Type Handler
-
@Retention(RUNTIME) @Inherited @Target({METHOD,ANNOTATION_TYPE}) public @interface Handler
Mark any method of any class(=listener) as a message handler and configure the handler using different properties.
-
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description java.lang.String
condition
Defines a filter condition as Expression Language.Invoke
delivery
Define the mode in which a message is delivered to each listener.boolean
enabled
Enable or disable the handler.Filter[]
filters
Add any numbers of filters to the handler.java.lang.Class<? extends HandlerInvocation>
invocation
Each handler call is implemented as an invocation object that implements the invocation mechanism.int
priority
Handlers are ordered by priority and handlers with higher priority are processed before those with lower priority, i.e.boolean
rejectSubtypes
Define whether or not the handler accepts sub types of the message type it declares in its signature.
-
-
-
Element Detail
-
filters
Filter[] filters
Add any numbers of filters to the handler. All filters are evaluated before the handler is actually invoked, which is only if all the filters accept the message.- Default:
- {}
-
-
-
condition
java.lang.String condition
Defines a filter condition as Expression Language. This can be used to filter the events based on attributes of the event object. Note that the expression must resolve to eithertrue
to allow the event orfalse
to block it from delivery to the handler. The message itself is available as "msg" variable.- Returns:
- the condition in EL syntax.
- Default:
- ""
-
-
-
delivery
Invoke delivery
Define the mode in which a message is delivered to each listener. Listeners can be notified sequentially or concurrently.- Default:
- net.engio.mbassy.listener.Invoke.Synchronously
-
-
-
invocation
java.lang.Class<? extends HandlerInvocation> invocation
Each handler call is implemented as an invocation object that implements the invocation mechanism. The basic implementation uses reflection and is the default. It is possible though to provide a custom invocation to add additional logic. Note: Providing a custom invocation will most likely reduce performance, since the JIT-Compiler can not do some of its sophisticated byte code optimizations.- Default:
- net.engio.mbassy.dispatch.ReflectiveHandlerInvocation.class
-
-