package org.resthub.web.support;
import com.fasterxml.jackson.core.type.TypeReference;
import com.ning.http.client.Response;
import org.resthub.web.Http;
import org.resthub.web.XmlHelper;
import java.io.IOException;
public class XmlBodyReader implements BodyReader {
@Override
public boolean canRead(Response response) {
return (response.getContentType() != null && (response.getContentType().startsWith(Http.XML) || response
.getContentType().endsWith("+xml")));
}
@Override
public <T> T readEntity(Response resp, Class<T> entityClass) throws IOException {
return XmlHelper.deserialize(resp.getResponseBody(), entityClass);
}
@Override
public <T> T readEntity(Response resp, Class<T> entityClass, String charset) throws IOException {
return XmlHelper.deserialize(resp.getResponseBody(charset), entityClass);
}
@Override
public <T> T readEntity(Response resp, TypeReference valueTypeRef) throws IOException {
return XmlHelper.deserialize(resp.getResponseBody(), valueTypeRef);
}
@Override
public <T> T readEntity(Response resp, TypeReference valueTypeRef, String charset) throws IOException {
return XmlHelper.deserialize(resp.getResponseBody(charset), valueTypeRef);
}
}