1 /*
2  * Copyright 2011-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License").
5  * You may not use this file except in compliance with the License.
6  * A copy of the License is located at
7  *
8  *  http://aws.amazon.com/apache2.0
9  *
10  * or in the "license" file accompanying this file. This file is distributed
11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12  * express or implied. See the License for the specific language governing
13  * permissions and limitations under the License.
14  */

15 package com.amazonaws.internal;
16
17 import com.amazonaws.AmazonWebServiceRequest;
18 import com.amazonaws.RequestClientOptions;
19 import com.amazonaws.RequestConfig;
20 import com.amazonaws.annotation.SdkInternalApi;
21 import com.amazonaws.auth.AWSCredentialsProvider;
22 import com.amazonaws.event.ProgressListener;
23 import com.amazonaws.metrics.RequestMetricCollector;
24
25 import java.util.Collections;
26 import java.util.List;
27 import java.util.Map;
28
29 /**
30  * Adapts the configuration present in {@link AmazonWebServiceRequest} to {@link RequestConfig}.
31  */

32 @SdkInternalApi
33 public final class AmazonWebServiceRequestAdapter extends RequestConfig {
34
35     private final AmazonWebServiceRequest request;
36
37     public AmazonWebServiceRequestAdapter(AmazonWebServiceRequest request) {
38         this.request = request;
39     }
40
41     @Override
42     public ProgressListener getProgressListener() {
43         return request.getGeneralProgressListener();
44     }
45
46     @Override
47     public RequestMetricCollector getRequestMetricsCollector() {
48         return request.getRequestMetricCollector();
49     }
50
51     @Override
52     public AWSCredentialsProvider getCredentialsProvider() {
53         return request.getRequestCredentialsProvider();
54     }
55
56     @Override
57     public Map<String, String> getCustomRequestHeaders() {
58         return (request.getCustomRequestHeaders() == null) ? Collections.<String, String>emptyMap() :
59                 request.getCustomRequestHeaders();
60     }
61
62     @Override
63     public Map<String, List<String>> getCustomQueryParameters() {
64         return (request.getCustomQueryParameters() == null) ? Collections.<String, List<String>>emptyMap() :
65                 request.getCustomQueryParameters();
66     }
67
68     @Override
69     public Integer getRequestTimeout() {
70         return request.getSdkRequestTimeout();
71     }
72
73     @Override
74     public Integer getClientExecutionTimeout() {
75         return request.getSdkClientExecutionTimeout();
76     }
77
78     @Override
79     public RequestClientOptions getRequestClientOptions() {
80         return request.getRequestClientOptions();
81     }
82
83     @Override
84     public String getRequestType() {
85         return request.getClass().getSimpleName();
86     }
87
88     @Override
89     public Object getOriginalRequest() {
90         return request;
91     }
92 }
93