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