Class WebPayloadParameterResolver
java.lang.Object
io.fluxzero.sdk.web.WebPayloadParameterResolver
Resolves a method parameter from the payload of a
WebRequest.
This resolver is only applied to methods annotated with HandleWeb or any of its meta-annotations (e.g.
HandlePost). It converts the deserialized payload to the method parameter's declared type.
For raw request bodies such as multipart/form-data, this resolver can still provide the full body as
byte[] or String. Individual multipart fields and files are resolved via FormParam.
Optionally, the resolver can enforce validation and authorization:
- If
validatePayloadistrue, the resolved payload is validated usingassertValid(). - If
authoriseUseristrue, the currentUsermust be authorized to execute the payload’s type viaassertAuthorized().
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondefault booleanbooleanmatches(Parameter parameter, Annotation methodAnnotation, HasMessage value) Determines whether this resolver should be used for the given method parameter.booleanmayApply(Executable method, Class<?> targetClass) default Function<HasMessage, Object> prepare(Parameter arg0, Annotation arg1) resolve(Parameter p, Annotation methodAnnotation) Resolves the value for the given method parameter by converting the message payload to the expected parameter type.default intbooleantest(HasMessage m, Parameter p)
-
Constructor Details
-
WebPayloadParameterResolver
public WebPayloadParameterResolver()
-
-
Method Details
-
resolve
Resolves the value for the given method parameter by converting the message payload to the expected parameter type. If configured, it also validates and authorizes the payload.- Parameters:
p- the method parameter to resolvemethodAnnotation- the annotation on the handler method (typically@HandleWeb)- Returns:
- a function that resolves the parameter from a
HasMessageinstance
-
test
-
matches
Determines whether this resolver should be used for the given method parameter. This resolver is active for any method annotated withHandleWebor any annotation that is meta-annotated with it.- Parameters:
parameter- the method parametermethodAnnotation- the annotation on the methodvalue- the incoming message- Returns:
trueif the resolver is applicable to this parameter
-
mayApply
-
prepare
-
determinesSpecificity
default boolean determinesSpecificity() -
specificityPriority
default int specificityPriority()
-