1 18 package org.columba.core.filemonitor; 19 20 import java.io.File ; 21 import java.io.FileNotFoundException ; 22 import java.util.ArrayList ; 23 import java.util.List ; 24 25 import org.columba.core.scripting.service.api.IColumbaService; 26 27 30 public class FileMonitorService implements IColumbaService { 31 32 private List <FileObserver> observerList; 33 34 private ObserverThread observerThread; 35 36 public FileMonitorService() { 37 observerList = new ArrayList (); 38 39 observerThread = new ObserverThread( 40 ObserverThread.DEFAULT_POLLING_INTERVAL); 41 } 42 43 public void startService() { 44 observerThread.start(); 45 } 46 47 public void disposeService() { 48 } 49 50 public boolean initService() { 51 return true; 52 } 53 54 public void stopService() { 55 56 for (FileObserver obs : observerList) 57 obs.stoppingService(); 58 59 observerList.clear(); 60 61 } 62 63 public void monitorFile(File file, FileObserver observer) 64 throws FileNotFoundException , FileMonitorException { 65 66 if (!file.exists()) 67 throw new FileNotFoundException (file.getName()); 68 69 if (file.isDirectory()) 70 throw new FileMonitorException( 71 "Monitoring directories not yet supported"); 72 73 if (!observerList.contains(observer)) 74 observerList.add(observer); 75 76 observerThread.monitorFile(file, observer); 77 78 } 79 80 } 81 | Popular Tags |