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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1160 - (hide annotations) (download)
Mon Oct 4 08:42:12 2010 UTC (13 years, 7 months ago) by torben
File size: 1483 byte(s)
Make cache cleanup code a little more elegant
1 torben 1053 package dk.thoerup.traininfo.provider;
2    
3 torben 1066 import org.simpleframework.xml.Serializer;
4     import org.simpleframework.xml.core.Persister;
5 torben 1053
6     import android.util.Log;
7 torben 1066 import dk.thoerup.android.traininfo.common.MetroBean;
8 torben 1053 import dk.thoerup.traininfo.util.AndroidTimeoutCache;
9     import dk.thoerup.traininfo.util.DownloadUtil;
10     import dk.thoerup.traininfo.util.XmlUtil;
11    
12     public class XmlMetroProvider implements MetroProvider {
13    
14     final int CACHE_TIMEOUT = 60000;
15    
16     AndroidTimeoutCache<Integer,MetroBean> metroCache = new AndroidTimeoutCache<Integer,MetroBean>(CACHE_TIMEOUT);
17    
18    
19     @Override
20     public MetroBean lookupMetroInfo(int stationID) {
21    
22     MetroBean metro = metroCache.get(stationID);
23    
24     if (metro == null) {
25     metro = lookupMetroWorker(stationID);
26    
27     if (metro != null) {
28     metroCache.put(stationID, metro);
29     }
30    
31     } else {
32     Log.i("XmlDepartureProvider", "cache hit !!!");
33     }
34    
35     return metro;
36     }
37    
38    
39     private MetroBean lookupMetroWorker(int stationID) {
40    
41     try
42     {
43     String url = XmlUtil.SERVICE_BASE + "/MetroServlet?station=" + stationID;
44     Log.i("xmlurl",url);
45     String doc = DownloadUtil.getContentString(url, 15000, "ISO-8859-1");
46    
47 torben 1066 Serializer serializer = new Persister();
48    
49     MetroBean metro = serializer.read(MetroBean.class, doc);
50 torben 1053
51 torben 1066 return metro;
52 torben 1053
53 torben 1066
54 torben 1053 } catch (Exception e) {
55     Log.e("XmlMetroProvider", "lookupFunction", e);
56     return null;
57     }
58     }
59    
60 torben 1160 @Override
61     public void purgeOldEntries() {
62     metroCache.purgeOldEntries();
63     }
64 torben 1053 }

  ViewVC Help
Powered by ViewVC 1.1.20