f27f3374b382ddc61af9b4b170517a51c9ebc685
[so/libs.git] /
1 package com.woorea.openstack.connector;
2
3 /*
4  * Modifications copyright (c) 2017 AT&T Intellectual Property
5  */
6
7 import java.io.InputStream;
8 import java.util.HashMap;
9 import java.util.Map;
10
11 import javax.ws.rs.core.Response;
12
13 import com.woorea.openstack.base.client.OpenStackResponse;
14 import com.woorea.openstack.base.client.OpenStackResponseException;
15
16 public class JaxRs20Response implements OpenStackResponse {
17         
18         private Response response;
19         
20         public JaxRs20Response(Response response) {
21                 this.response = response;
22         }
23
24         @Override
25         public <T> T getEntity(Class<T> returnType) {
26                 if(response.getStatus() >= 400) {
27                         throw new OpenStackResponseException(response.getStatusInfo().getReasonPhrase(),
28                                         response.getStatusInfo().getStatusCode(), this);
29                 }
30                 return response.readEntity(returnType);
31         }
32
33         @Override
34         public <T> T getErrorEntity(Class<T> returnType) {
35                 if(response.getStatus() >= 400 && response.hasEntity()) {
36                         return response.readEntity(returnType);
37                 }
38                 return null;
39         }
40         
41
42         @Override
43         public InputStream getInputStream() {
44                 return (InputStream) response.getEntity();
45         }
46
47         @Override
48         public String header(String name) {
49                 return response.getHeaderString(name);
50         }
51
52         @Override
53         public Map<String, String> headers() {
54                 Map<String, String> headers = new HashMap<String, String>();
55                 for(String k : response.getHeaders().keySet()) {
56                         headers.put(k, response.getHeaderString(k));
57                 }
58                 return headers;
59         }
60
61 }