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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1027 - (show 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 package dk.thoerup.traininfo.provider;
2
3
4
5
6 public class ProviderFactory {
7 private static DepartureProvider departureProvider = null;
8 private static StationProvider stationProvider = null;
9 private static TimetableProvider timetableProvider = null;
10
11 private static final boolean DEBUG = false;
12
13 //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 public static DepartureProvider getDepartureProvider() {
32 if (departureProvider == null) {
33 if (!DEBUG) {
34 departureProvider = new XmlDepartureProvider();
35 } else {
36 departureProvider = new DebugProvider();
37 }
38 }
39
40 return departureProvider;
41 }
42
43 public static StationProvider getStationProvider() {
44 if (stationProvider == null) {
45 if (!DEBUG) {
46 stationProvider = new XmlStationProvider();
47 } else {
48 stationProvider = new DebugProvider();
49 }
50 }
51
52 return stationProvider;
53 }
54
55 public static TimetableProvider getTimetableProvider() {
56 if (timetableProvider == null) {
57 if (!DEBUG) {
58 timetableProvider = new XmlTimetableProvider();
59 } else {
60 timetableProvider = new DebugProvider();
61 }
62 }
63 return timetableProvider;
64 }
65 }

  ViewVC Help
Powered by ViewVC 1.1.20