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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.20