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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1027 - (hide annotations) (download)
Wed Sep 8 06:03:45 2010 UTC (13 years, 8 months ago) by torben
File size: 1827 byte(s)
Clean up the cache to avoid OutOfMemoryError exceptions
1 torben 237 package dk.thoerup.traininfo.provider;
2    
3    
4 torben 1027
5    
6 torben 253 public class ProviderFactory {
7     private static DepartureProvider departureProvider = null;
8     private static StationProvider stationProvider = null;
9 torben 352 private static TimetableProvider timetableProvider = null;
10 torben 237
11 torben 365 private static final boolean DEBUG = false;
12 torben 363
13 torben 1027 //TODO: this one really doesn't belong here ... and damn it is ugly code
14     public static void purgeOldEntries() {
15     synchronized (ProviderFactory.class) {
16     if (stationProvider != null && stationProvider instanceof XmlStationProvider) {
17     ((XmlStationProvider)stationProvider).stationCache.purgeOldEntries();
18     }
19    
20     if (departureProvider != null && departureProvider instanceof XmlDepartureProvider) {
21     ((XmlDepartureProvider)departureProvider).departureCache.purgeOldEntries();
22     }
23    
24     if (timetableProvider != null && timetableProvider instanceof XmlTimetableProvider) {
25     ((XmlTimetableProvider)timetableProvider).timetableCache.purgeOldEntries();
26     }
27     }
28    
29     }
30    
31 torben 253 public static DepartureProvider getDepartureProvider() {
32     if (departureProvider == null) {
33 torben 363 if (!DEBUG) {
34     departureProvider = new XmlDepartureProvider();
35     } else {
36     departureProvider = new DebugProvider();
37     }
38 torben 237 }
39    
40 torben 253 return departureProvider;
41 torben 237 }
42 torben 253
43     public static StationProvider getStationProvider() {
44     if (stationProvider == null) {
45 torben 363 if (!DEBUG) {
46     stationProvider = new XmlStationProvider();
47     } else {
48     stationProvider = new DebugProvider();
49     }
50 torben 253 }
51    
52     return stationProvider;
53     }
54 torben 352
55     public static TimetableProvider getTimetableProvider() {
56     if (timetableProvider == null) {
57 torben 363 if (!DEBUG) {
58     timetableProvider = new XmlTimetableProvider();
59     } else {
60     timetableProvider = new DebugProvider();
61     }
62 torben 352 }
63     return timetableProvider;
64     }
65 torben 237 }

  ViewVC Help
Powered by ViewVC 1.1.20