--- android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlTimetableProvider.java 2010/09/16 15:31:31 1065 +++ android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlTimetableProvider.java 2010/09/16 15:32:42 1066 @@ -1,15 +1,10 @@ package dk.thoerup.traininfo.provider; -import java.util.ArrayList; -import java.util.List; - -import org.w3c.dom.Document; - -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; +import org.simpleframework.xml.Serializer; +import org.simpleframework.xml.core.Persister; import android.util.Log; -import dk.thoerup.traininfo.TimetableBean; +import dk.thoerup.android.traininfo.common.TimetableBean; import dk.thoerup.traininfo.util.AndroidTimeoutCache; import dk.thoerup.traininfo.util.DownloadUtil; import dk.thoerup.traininfo.util.XmlUtil; @@ -18,15 +13,15 @@ final static int CACHE_TIMEOUT = 60*1000; - AndroidTimeoutCache> timetableCache = new AndroidTimeoutCache>(CACHE_TIMEOUT); + AndroidTimeoutCache timetableCache = new AndroidTimeoutCache(CACHE_TIMEOUT); @Override - public List lookupTimetable(String type, String trainID) { + public TimetableBean lookupTimetable(String type, String trainID) { String trainNumber = extractTrainNumber(trainID); String key = type + "-" + trainID; - List timetables = timetableCache.get(key); + TimetableBean timetables = timetableCache.get(key); if (timetables == null) { timetables = lookupTimetableWorker(type, trainNumber); @@ -43,64 +38,19 @@ } - public List lookupTimetableWorker(String type, String trainNumber) { + public TimetableBean lookupTimetableWorker(String type, String trainNumber) { String url = XmlUtil.SERVICE_BASE + "/TimetableServlet?train=" + trainNumber + "&type=" + type; Log.i("url", url); try { - List timetables = new ArrayList(); String xml = DownloadUtil.getContentString(url, 15000, "ISO-8859-1"); + Serializer serializer = new Persister(); + + TimetableBean timetables = serializer.read(TimetableBean.class, xml); - Document doc = XmlUtil.parseXML(xml); - Node rootNode = doc.getDocumentElement(); // stations - NodeList stationList = rootNode.getChildNodes(); - - for (int i=0; i