package com.google.sitebricks.client.transport; import com.google.inject.Inject; import com.google.inject.TypeLiteral; import com.thoughtworks.xstream.XStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; /** * @author Dhanji R. Prasanna (dhanji@gmail.com) */ class XStreamXmlTransport extends Xml { private final XStream xStream; @Inject public XStreamXmlTransport(XStream xStream) { this.xStream = xStream; } public <T> T in(InputStream in, Class<T> type) throws IOException { return type.cast(xStream.fromXML(in)); } @Override @SuppressWarnings("unchecked") public <T> T in(InputStream in, TypeLiteral<T> type) throws IOException { return (T)xStream.fromXML(in); } public <T> void out(OutputStream out, Class<T> type, T data) { xStream.toXML(data, out); } }