Annotation Type RestPostCall
@Target({METHOD,TYPE})
@Retention(RUNTIME)
@Inherited
@Repeatable(Array.class)
public @interface RestPostCall
Identifies a method that gets called immediately after the @RestOp annotated method gets called.
At this point, the output object returned by the method call has been set on the response, but
RestConverters
have not yet been executed and the response has not yet been written.
The list of valid parameter types are as follows:
- Servlet request/response objects:
HttpServletRequest
HttpServletResponse
- Extended request/response objects:
- Header objects:
- Other objects:
ResourceBundle
Messages
InputStream
ServletInputStream
Reader
OutputStream
ServletOutputStream
Writer
RequestHeaders
RequestQueryParams
RequestFormParams
RequestPathParams
Logger
RestContext
Parser
Locale
Swagger
RequestContent
Config
UriContext
UriResolver
Example:
Notes:
-
The method should return
void although if it does return any value, the value will be ignored. -
The method should be
public although other visibilities are valid if the security manager allows it. - Static methods can be used.
-
Multiple post-call methods can be defined on a class.
Post-call methods on parent classes are invoked before post-call methods on child classes.
The order of post-call method invocations within a class is alphabetical, then by parameter count, then by parameter types. - The method can throw any exception, although at this point it is too late to set an HTTP error status code.
-
Note that if you override a parent method, you probably need to call
.super .parentMethod(...)
The method is still considered part of the parent class for ordering purposes even though it's overridden by the child class.
See Also:
-
Optional Element Summary
-
Element Details
-
on
Dynamically apply this annotation to the specified methods.See Also:
- Returns:
- The annotation value.
- Default:
- {}
-