T
- The type of entity to which the message handler will delegate the actual handling of the messagepublic interface MessageHandlingMember<T>
Modifier and Type | Method and Description |
---|---|
Optional<Map<String,Object>> |
annotationAttributes(Class<? extends Annotation> annotationType)
Deprecated.
in favor of
attribute(String) |
default <R> Optional<R> |
attribute(String attributeKey)
Retrieve a single attributes for the given
attributeKey . |
boolean |
canHandle(Message<?> message)
Checks if this handler is capable of handling the given
message . |
boolean |
canHandleMessageType(Class<? extends Message> messageType)
Checks if this handlers is capable of handling
Message implementations of the given messageType . |
default boolean |
canHandleType(Class<?> payloadType)
Checks if this handler is capable of handling messages with the given
payloadType . |
default Class<?> |
declaringClass()
Gets the declaring class of this Message Handling Member.
|
Object |
handle(Message<?> message,
T target)
Handles the given
message by invoking the appropriate method on given target . |
boolean |
hasAnnotation(Class<? extends Annotation> annotationType)
Deprecated.
in favor of
attribute(String) |
Class<?> |
payloadType()
Returns the payload type of messages that can be processed by this handler.
|
default int |
priority()
Returns a number representing the priority of this handler over other handlers capable of processing the same
message.
|
default String |
signature()
Returns the signature of the member.
|
<HT> Optional<HT> |
unwrap(Class<HT> handlerType)
Returns the wrapped handler object if its type is an instance of the given
handlerType . |
Class<?> payloadType()
default int priority()
In general, a handler with a higher priority will receive the message before (or instead of) handlers with a lower priority. However, the priority value may not be the only indicator that is used to determine the order of invocation. For instance, a message processor may decide to ignore the priority value if one message handler is a more specific handler of the message than another handler.
boolean canHandle(@Nonnull Message<?> message)
message
.message
- The message that is to be handledtrue
if the handler is capable of handling the message, false
otherwisedefault boolean canHandleType(@Nonnull Class<?> payloadType)
payloadType
.payloadType
- The payloadType of a message that is to be handledtrue
if the handler is capable of handling the message with given type, false
otherwiseboolean canHandleMessageType(@Nonnull Class<? extends Message> messageType)
Message
implementations of the given messageType
.
It is recommended to suppress the raw type use validation of the messageType
parameter when implementing
this method, as usage of this method with a Message
generic would required reflection or casting
otherwise.
messageType
- the Message
's type to check if it can be handled by this handlertrue
if this handler can handle the given messageType
, false
otherwiseObject handle(@Nonnull Message<?> message, @Nullable T target) throws Exception
message
by invoking the appropriate method on given target
. This may result in
an exception if the given target is not capable of handling the message or if an exception is thrown during
invocation of the method.message
- The message to handletarget
- The target to handle the messageException
- when there was a problem that prevented invocation of the method or if an exception was thrown
from the invoked method<HT> Optional<HT> unwrap(Class<HT> handlerType)
handlerType
. For instance, if
this method is invoked with Executable
and the message is handled by a method of the
target entity, then this method will return the method handle as a Method
.HT
- The wrapped handler typehandlerType
- The expected type of the wrapped handlerdefault Class<?> declaringClass()
default String signature()
"__unknown__"
is returned.@Deprecated boolean hasAnnotation(Class<? extends Annotation> annotationType)
attribute(String)
annotationType
.annotationType
- Annotation to check for on the target methodtrue
if the annotation is present on the target method, false
otherwise@Deprecated Optional<Map<String,Object>> annotationAttributes(Class<? extends Annotation> annotationType)
attribute(String)
annotationType
on the method of the target entity. If the
annotation is present on the target method an Optional is returned containing the properties mapped by their
name. If the annotation is not present an empty Optional is returned.annotationType
- The annotation to check for on the target methoddefault <R> Optional<R> attribute(String attributeKey)
attributeKey
. If this MessageHandlingMember
does not
hold a value referencing the attributeKey
, an Optional.empty()
is returned. Otherwise a non-empty
Optional
containing the attribute will be provided.
When using the method, consider checking the HandlerAttributes
for a list of
common handler attributes.
attributeKey
- the key to retrieve an attribute forOptional
of the attribute referencing the given attributeKey
. Otherwise an
Optional.empty()
will be returnedCopyright © 2010–2023. All rights reserved.