/* * Copyright 2011-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ package com.amazonaws.client; import com.amazonaws.AmazonServiceException; import com.amazonaws.Request; import com.amazonaws.RequestConfig; import com.amazonaws.SdkBaseException; import com.amazonaws.annotation.NotThreadSafe; import com.amazonaws.annotation.SdkProtectedApi; import com.amazonaws.http.HttpResponseHandler; import com.amazonaws.transform.Marshaller; /** * Encapsulates parameters needed for a particular API call. Captures input and output pojo types. * * @param <Input> Input POJO type. * @param <Output> Output POJO type. */ @SdkProtectedApi @NotThreadSafe public class ClientExecutionParams<Input, Output> { private Input input; private Marshaller<Request<Input>, Input> marshaller; private HttpResponseHandler<Output> responseHandler; private HttpResponseHandler<? extends SdkBaseException> errorResponseHandler; private RequestConfig requestConfig; public Marshaller<Request<Input>, Input> getMarshaller() { return marshaller; } public ClientExecutionParams<Input, Output> withMarshaller( Marshaller<Request<Input>, Input> marshaller) { this.marshaller = marshaller; return this; } public Input getInput() { return input; } public ClientExecutionParams<Input, Output> withInput(Input input) { this.input = input; return this; } public HttpResponseHandler<Output> getResponseHandler() { return responseHandler; } public ClientExecutionParams<Input, Output> withResponseHandler( HttpResponseHandler<Output> responseHandler) { this.responseHandler = responseHandler; return this; } public HttpResponseHandler<? extends SdkBaseException> getErrorResponseHandler() { return errorResponseHandler; } public ClientExecutionParams<Input, Output> withErrorResponseHandler( HttpResponseHandler<? extends SdkBaseException> errorResponseHandler) { this.errorResponseHandler = errorResponseHandler; return this; } public RequestConfig getRequestConfig() { return requestConfig; } public ClientExecutionParams<Input, Output> withRequestConfig(RequestConfig requestConfig) { this.requestConfig = requestConfig; return this; } }