@ThreadSafe public class StackedRequestHandler extends Object implements IRequestHandler2
RequestHandler2
to execute a chain of RequestHandler2
implementations
in stack order. That is if you have request handlers R1, R2, R3 the order of execution is as
follows
R1.beforeMarshalling
R2.beforeMarshalling
R3.beforeMarshalling
R1.beforeRequest
R2.beforeRequest
R3.beforeRequest
R3.beforeUnmarshalling
R2.beforeUnmarshalling
R1.beforeUnmarshalling
R3.after(Response|Error)
R2.after(Response|Error)
R1.after(Response|Error)
Constructor and Description |
---|
StackedRequestHandler(List<RequestHandler2> requestHandlers) |
StackedRequestHandler(RequestHandler2... requestHandlers) |
Modifier and Type | Method and Description |
---|---|
void |
afterError(Request<?> request,
Response<?> response,
Exception e)
Runs any additional processing logic on a request after it has failed.
|
void |
afterResponse(Request<?> request,
Response<?> response)
Runs any additional processing logic on the specified request (after is has been executed by
the client runtime).
|
AmazonWebServiceRequest |
beforeMarshalling(AmazonWebServiceRequest origRequest)
Runs any additional processing logic on the specified request object before it is marshaled
into an HTTP request.
|
void |
beforeRequest(Request<?> request)
Runs any additional processing logic on the specified request (before it is executed by the
client runtime).
|
HttpResponse |
beforeUnmarshalling(Request<?> request,
HttpResponse origHttpResponse)
Runs any additional processing logic on the specified response before it's unmarshalled.
|
public StackedRequestHandler(RequestHandler2... requestHandlers)
public StackedRequestHandler(List<RequestHandler2> requestHandlers)
public AmazonWebServiceRequest beforeMarshalling(AmazonWebServiceRequest origRequest)
IRequestHandler2
If you're going to modify the request, make sure to clone it first, modify the clone, and return it from this method. Otherwise your changes will leak out to the user, who might reuse the request object without realizing that it was modified as part of sending it the first time.
beforeMarshalling
in interface IRequestHandler2
origRequest
- the request passed in by the userpublic void beforeRequest(Request<?> request)
IRequestHandler2
beforeRequest
in interface IRequestHandler2
request
- The low level request being processed.public HttpResponse beforeUnmarshalling(Request<?> request, HttpResponse origHttpResponse)
IRequestHandler2
AmazonServiceException
beforeUnmarshalling
in interface IRequestHandler2
request
- The low level request being processed.origHttpResponse
- The Raw HTTP response before being unmarshalledHttpResponse
to replace the actual response. May be a mutated version of the
original or a completely new HttpResponse
objectpublic void afterResponse(Request<?> request, Response<?> response)
IRequestHandler2
afterResponse
in interface IRequestHandler2
request
- The low level request being processed.response
- The response generated from the specified request.public void afterError(Request<?> request, Response<?> response, Exception e)
IRequestHandler2
afterError
in interface IRequestHandler2
request
- The request that generated an error.response
- the response or null if the failure occurred before the response is made availablee
- The error that resulted from executing the request.Copyright © 2013 Amazon Web Services, Inc. All Rights Reserved.