X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=support%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fio%2FDirectoryMonitor.java;h=685a0cb5ca5f5673902ac6c7b89f284d5ea4f844;hb=4a575582a5c2999bd816b197d9cf274b4b3ddcd7;hp=301349803044a9dc09335f235b51da53a70f8946;hpb=8de36ff0206c996baf3ee4adc3e2293b12ff5f39;p=utils diff --git a/support/general/src/main/java/org/wamblee/io/DirectoryMonitor.java b/support/general/src/main/java/org/wamblee/io/DirectoryMonitor.java index 30134980..685a0cb5 100644 --- a/support/general/src/main/java/org/wamblee/io/DirectoryMonitor.java +++ b/support/general/src/main/java/org/wamblee/io/DirectoryMonitor.java @@ -1,12 +1,12 @@ /* - * Copyright 2006 the original author or authors. - * + * Copyright 2005-2010 the original author or authors. + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -15,9 +15,6 @@ */ package org.wamblee.io; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - import java.io.File; import java.io.FileFilter; @@ -26,14 +23,17 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; +import java.util.logging.Logger; /** - * Monitors a directory for changes. + * Monitors a directory for changes. The currernt implementation only checks + * files not directories and does not check for modifications in subdirectories. * * @author Erik Brakkee */ public class DirectoryMonitor { - private static final Log LOG = LogFactory.getLog(DirectoryMonitor.class); + private static final Logger LOG = Logger.getLogger(DirectoryMonitor.class + .getName()); private File directory; @@ -68,7 +68,7 @@ public class DirectoryMonitor { * for the same changes. */ public void poll() { - LOG.debug("Polling " + directory); + LOG.fine("Polling " + directory); Map newContents = new HashMap(); File[] files = directory.listFiles(filter); @@ -110,11 +110,29 @@ public class DirectoryMonitor { contents = newContents; } + /** + * Listener interface to be provided by users of the directory monitor to + * get notified of changes. + * + * @author Erik Brakkee + */ public static interface Listener { + /** + * @param aFile + * File that has changed. + */ void fileChanged(File aFile); + /** + * @param aFile + * File that was created. + */ void fileCreated(File aFile); + /** + * @param aFile + * File that was deleted. + */ void fileDeleted(File aFile); } }