package org.odata4j.examples.cxf.consumer;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import org.apache.http.Header;
import org.apache.http.HeaderElement;
import org.apache.http.HttpResponse;
import org.odata4j.consumer.ODataClientResponse;
import org.odata4j.core.Throwables;
import org.odata4j.producer.resources.HeaderMap;
public class CxfClientResponse implements ODataClientResponse {
private final HttpResponse httpResponse;
public CxfClientResponse(HttpResponse httpResponse) {
this.httpResponse = httpResponse;
}
public HttpResponse getHttpResponse() {
return httpResponse;
}
@Override
public MultivaluedMap<String, String> getHeaders() {
HeaderMap headers = new HeaderMap();
for (Header header : httpResponse.getAllHeaders()) {
List<String> valueList = new ArrayList<String>();
for (HeaderElement element : header.getElements())
valueList.add(element.toString());
headers.put(header.getName(), valueList);
}
return headers;
}
@Override
public void close() {
try {
if (httpResponse.getEntity() != null)
httpResponse.getEntity().getContent().close();
} catch (IOException e) {
Throwables.propagate(e);
}
}
@Override
public InputStream getEntityInputStream() {
// TODO Auto-generated method stub
return null;
}
@Override
public MediaType getMediaType() {
// TODO Auto-generated method stub
return null;
}
}