package dk.thoerup.traininfo.provider; public class ProviderFactory { private static DepartureProvider departureProvider = null; private static StationProvider stationProvider = null; private static TimetableProvider timetableProvider = null; private static MetroProvider metroProvider = null; private static final boolean DEBUG = false; //TODO: this one really doesn't belong here ... but where should it go ? public static void purgeOldEntries() { synchronized (ProviderFactory.class) { if (stationProvider != null ) { stationProvider.purgeOldEntries(); } if (departureProvider != null ) { departureProvider.purgeOldEntries(); } if (timetableProvider != null ) { timetableProvider.purgeOldEntries(); } if (metroProvider != null ) { metroProvider.purgeOldEntries(); } } } public static DepartureProvider getDepartureProvider() { if (departureProvider == null) { if (!DEBUG) { departureProvider = new XmlDepartureProvider(); } else { departureProvider = new DebugProvider(); } } return departureProvider; } public static StationProvider getStationProvider() { if (stationProvider == null) { if (!DEBUG) { stationProvider = new XmlStationProvider(); } else { stationProvider = new DebugProvider(); } } return stationProvider; } public static TimetableProvider getTimetableProvider() { if (timetableProvider == null) { if (!DEBUG) { timetableProvider = new XmlTimetableProvider(); } else { timetableProvider = new DebugProvider(); } } return timetableProvider; } public static MetroProvider getMetroProvider() { if (metroProvider == null) { if (!DEBUG) { metroProvider = new XmlMetroProvider(); } else { metroProvider = new DebugProvider(); } } return metroProvider; } }