82e31871827566682bdbc730a8e71c04e51d5d6b
[so/libs.git] /
1 package com.woorea.openstack.connector;
2
3 /*
4  * Modifications copyright (c) 2017 AT&T Intellectual Property
5  */
6
7 import org.jboss.resteasy.client.ClientRequest;
8 import org.jboss.resteasy.client.ClientResponse;
9 import com.woorea.openstack.base.client.OpenStackResponse;
10
11 import javax.ws.rs.core.MultivaluedMap;
12 import java.io.InputStream;
13 import java.util.HashMap;
14 import java.util.Map;
15
16 public class RESTEasyResponse implements OpenStackResponse {
17
18     private ClientRequest client;
19
20     private ClientResponse response;
21
22     public RESTEasyResponse(ClientRequest client, ClientResponse response) {
23         this.client = client;
24         this.response = response;
25     }
26
27     @Override
28     public <T> T getEntity(Class<T> returnType) {
29         return (T) response.getEntity(returnType);
30     }
31
32     @Override
33     public <T> T getErrorEntity(Class<T> returnType) {
34         return (T) response.getEntity(returnType);
35     }
36
37     @Override
38     public InputStream getInputStream() {
39                 return new RESTEasyInputStream((InputStream) response.getEntity(InputStream.class), client.getExecutor());
40     }
41
42     @Override
43     public String header(String name) {
44         return response.getHeaders().getFirst(name).toString();
45     }
46
47     @Override
48     public Map<String, String> headers() {
49         Map<String, String> headers = new HashMap<String, String>();
50         MultivaluedMap<String, Object> responseHeaders = response.getHeaders();
51
52         for (String key : responseHeaders.keySet()) {
53             headers.put(key, responseHeaders.getFirst(key).toString());
54         }
55
56         return headers;
57     }
58
59 }