@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 | beforeExecution(AmazonWebServiceRequest origRequest)Runs any additional processing logic on the specified request object as soon as the request
 is provided to the service client. | 
| 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 beforeExecution(AmazonWebServiceRequest origRequest)
IRequestHandler2This request handler is excluded from the client execution time metrics and is run on the application's thread, even for asynchronous requests.
Warning: Modifications to this message 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. For this
 reason, we recommend that you only modify the request in the IRequestHandler2.beforeRequest(Request)
 method. If you require data that is not available in that method, you should create a
 AmazonWebServiceRequest.clone() of the request (which performs a deep copy of the
 handler context map), add any context data you require in the IRequestHandler2.beforeRequest(Request)
 method using AmazonWebServiceRequest.addHandlerContext(HandlerContextKey, Object), and
 return your cloned message from this method. You can then extract that data for use in the
 request using HandlerContextAware.getHandlerContext(HandlerContextKey).
beforeExecution in interface IRequestHandler2origRequest - the request passed in by the userpublic AmazonWebServiceRequest beforeMarshalling(AmazonWebServiceRequest origRequest)
IRequestHandler2Warning: Modifications to this message 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. For this
 reason, we recommend that you only modify the request in the IRequestHandler2.beforeRequest(Request)
 method. If you require data that is not available in that method, you should create a
 AmazonWebServiceRequest.clone() of the request (which performs a deep copy of the
 handler context map), add any context data you require in the IRequestHandler2.beforeRequest(Request)
 method using AmazonWebServiceRequest.addHandlerContext(HandlerContextKey, Object), and
 return your cloned message from this method. You can then extract that data for use in the
 request using HandlerContextAware.getHandlerContext(HandlerContextKey).
beforeMarshalling in interface IRequestHandler2origRequest - the request passed in by the userpublic void beforeRequest(Request<?> request)
IRequestHandler2beforeRequest in interface IRequestHandler2request - The low level request being processed.public HttpResponse beforeUnmarshalling(Request<?> request, HttpResponse origHttpResponse)
IRequestHandler2AmazonServiceExceptionbeforeUnmarshalling in interface IRequestHandler2request - 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)
IRequestHandler2afterResponse in interface IRequestHandler2request - The low level request being processed.response - The response generated from the specified request.public void afterError(Request<?> request, Response<?> response, Exception e)
IRequestHandler2afterError in interface IRequestHandler2request - 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.