package com.yoursway.fsmonitor; import java.io.File; import com.yoursway.fsmonitor.spi.ChangesDetector; import com.yoursway.fsmonitor.spi.ChangesListener; import com.yoursway.fsmonitor.spi.MonitoringRequest; public class FileSystemMonitoringContext { private ChangesDetector detector; public FileSystemMonitoringContext() { detector = createDetector(); } public void dispose() { if (detector != null) detector.dispose(); } @SuppressWarnings("unchecked") private ChangesDetector createDetector() { try { Class<ChangesDetector> detector = (Class<ChangesDetector>) Class .forName("com.yoursway.fsmonitor.ChangesDetectorImpl"); return detector.newInstance(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return null; } public void run() { } MonitoringRequest add(File directory, ChangesListener listener) { return detector.monitor(directory, listener); } }