package hk.reality.stock.service;
import hk.reality.stock.model.Portfolio;
import hk.reality.stock.model.Stock;
import hk.reality.stock.model.StockDetail;
import java.io.Reader;
import java.util.List;
import com.thoughtworks.xstream.XStream;
public class PortfolioSerializer {
public static String toXML(List<Portfolio> portfolios) {
XStream xstream = getXStream();
return xstream.toXML(portfolios);
}
@SuppressWarnings("unchecked")
public static List<Portfolio> fromXML(String xml) {
XStream xstream = getXStream();
return (List<Portfolio>) xstream.fromXML(xml);
}
@SuppressWarnings("unchecked")
public static List<Portfolio> fromXML(Reader xml) {
XStream xstream = getXStream();
return (List<Portfolio>) xstream.fromXML(xml);
}
private static XStream getXStream() {
XStream xstream = new XStream();
xstream.alias("sk", Stock.class);
xstream.alias("po", Portfolio.class);
xstream.alias("sd", StockDetail.class);
xstream.aliasField("q", StockDetail.class, "quote");
xstream.aliasField("n", StockDetail.class, "name");
xstream.aliasField("su", StockDetail.class, "sourceUrl");
xstream.aliasField("v", StockDetail.class, "volume");
xstream.aliasField("p", StockDetail.class, "price");
xstream.aliasField("cp", StockDetail.class, "changePrice");
xstream.aliasField("cpp", StockDetail.class, "changePricePercent");
xstream.aliasField("h", StockDetail.class, "dayHigh");
xstream.aliasField("l", StockDetail.class, "dayLow");
xstream.aliasField("ud", StockDetail.class, "updatedAt");
return xstream;
}
}