Class MetadataParameterResolver
java.lang.Object
io.fluxcapacitor.common.handling.TypedParameterResolver<Object>
io.fluxcapacitor.javaclient.tracking.handling.MetadataParameterResolver
- All Implemented Interfaces:
ParameterResolver<Object>
Resolves handler method parameters of type
Metadata
.
This resolver can inject metadata into handler methods in two ways:
- If the message being handled implements
HasMetadata
, its metadata is directly returned. - Otherwise, the metadata is extracted from the current
DeserializingMessage
(if available).
Example handler:
@HandleCommand
public void handle(MyCommand command, Metadata metadata) {
String user = metadata.get("userId");
}
-
Constructor Summary
Constructors -
Method Summary
Methods inherited from class io.fluxcapacitor.common.handling.TypedParameterResolver
matches
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.fluxcapacitor.common.handling.ParameterResolver
determinesSpecificity, filterMessage
-
Constructor Details
-
MetadataParameterResolver
public MetadataParameterResolver()
-
-
Method Details
-
resolve
Description copied from interface:ParameterResolver
Resolves aParameter
of a handler method into a value function based on the given message.If the parameter cannot be resolved by this resolver and
ParameterResolver.matches(java.lang.reflect.Parameter, java.lang.annotation.Annotation, M)
is not implemented, this method must returnnull
.- Parameters:
p
- the parameter to resolvemethodAnnotation
- the annotation present on the handler method (e.g.,@HandleEvent
)- Returns:
- a function that takes a message and returns a value to be injected into the method parameter, or
null
if the parameter cannot be resolved andParameterResolver.matches(java.lang.reflect.Parameter, java.lang.annotation.Annotation, M)
is not implemented.
-