/[projects]/android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlDepartureProvider.java
ViewVC logotype

Contents of /android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlDepartureProvider.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1066 - (show annotations) (download)
Thu Sep 16 15:32:42 2010 UTC (13 years, 8 months ago) by torben
File size: 1900 byte(s)
Experimental #5, update TrainInfo client to use common data-beans
1 package dk.thoerup.traininfo.provider;
2
3
4
5 import org.simpleframework.xml.Serializer;
6 import org.simpleframework.xml.core.Persister;
7
8
9 import android.util.Log;
10 import dk.thoerup.android.traininfo.common.DepartureBean;
11 import dk.thoerup.android.traininfo.common.DepartureEntry;
12 import dk.thoerup.traininfo.util.AndroidTimeoutCache;
13 import dk.thoerup.traininfo.util.DownloadUtil;
14 import dk.thoerup.traininfo.util.XmlUtil;
15
16 public class XmlDepartureProvider implements DepartureProvider {
17
18 final static int CACHE_TIMEOUT = 60*1000;
19
20
21 AndroidTimeoutCache<String,DepartureBean> departureCache = new AndroidTimeoutCache<String,DepartureBean>(CACHE_TIMEOUT);
22
23
24
25 DepartureEntry tempDeparture;
26 StringBuilder builder = new StringBuilder(512);
27
28
29
30 @Override
31 public DepartureBean lookupDepartures(int stationID, boolean arrival) {
32
33 String key = "" + stationID + ":" + arrival;
34
35 DepartureBean departures = departureCache.get(key);
36
37 if (departures == null) {
38 departures = lookupDeparturesWorker(stationID, arrival);
39
40 if (departures != null) {
41 departureCache.put(key, departures);
42 }
43
44 } else {
45 Log.i("XmlDepartureProvider", "cache hit !!!");
46 }
47
48 return departures;
49 }
50
51 private DepartureBean lookupDeparturesWorker(int stationID, boolean arrival) {
52
53 try
54 {
55 int iArrival = arrival ? 1 : 0;
56 String url = XmlUtil.SERVICE_BASE + "/DepartureServlet?format=xml&station=" + stationID + "&arrival=" + iArrival;
57 Log.i("xmlurl",url);
58 String doc = DownloadUtil.getContentString(url, 30000, "ISO-8859-1");
59
60 Serializer serializer = new Persister();
61
62 DepartureBean departures = serializer.read(DepartureBean.class, doc);
63
64
65 return departures;
66
67
68 } catch (Exception e) {
69 Log.e("XmlDepartureProvider", "looupFunction", e);
70 return null;
71 }
72 }
73
74 }

  ViewVC Help
Powered by ViewVC 1.1.20