package com.leansoft.nanorest.parser;
import com.leansoft.nano.IReader;
import com.leansoft.nano.NanoFactory;
import com.leansoft.nanorest.exception.ParseException;
/**
* A response parser implementation using Nano xml binding framework.
*
* @author bulldog
*
* @param <T>
*/
public class NanoXmlResponseParser<T> implements HttpResponseParser<T> {
private final IReader xmlReader = NanoFactory.getXMLReader();
private final Class<T> responseType;
public NanoXmlResponseParser(Class<T> responseType) {
this.responseType = responseType;
}
@Override
public T parse(String responseBody) throws ParseException {
T t;
try {
t = xmlReader.read(responseType, responseBody);
} catch (Exception e) {
throw new ParseException("fail to unmarshall response into object of type " + responseType, e);
}
return t;
}
}