org.eclipse.jetty.util
Class Scanner

java.lang.Object
  extended by org.eclipse.jetty.util.component.AbstractLifeCycle
      extended by org.eclipse.jetty.util.Scanner
All Implemented Interfaces:
LifeCycle

public class Scanner
extends AbstractLifeCycle

Scanner Utility for scanning a directory for added, removed and changed files and reporting these events via registered Listeners.


Nested Class Summary
static interface Scanner.BulkListener
           
static interface Scanner.DiscreteListener
           
static interface Scanner.Listener
          Listener Marker for notifications re file changes.
static class Scanner.Notification
           
static interface Scanner.ScanCycleListener
          Listener that notifies when a scan has started and when it has ended.
static interface Scanner.ScanListener
           
 
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener
 
Field Summary
 
Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
FAILED, RUNNING, STARTED, STARTING, STOPPED, STOPPING
 
Constructor Summary
Scanner()
           
 
Method Summary
 void addListener(Scanner.Listener listener)
          Add an added/removed/changed listener
 void addScanDir(File dir)
           
 void doStart()
          Start the scanning action.
 void doStop()
          Stop the scanning.
 FilenameFilter getFilenameFilter()
          Get any filter applied to files in the scan dir.
 boolean getRecursive()
           
 boolean getReportDirs()
           
 boolean getReportExistingFilesOnStartup()
           
 int getScanDepth()
          Get the scanDepth.
 File getScanDir()
          Deprecated. use getScanDirs() instead
 List<File> getScanDirs()
           
 int getScanInterval()
          Get the scan interval
 Timer newTimer()
           
 TimerTask newTimerTask()
           
 void removeListener(Scanner.Listener listener)
          Remove a registered listener
 void reportDifferences(Map<String,org.eclipse.jetty.util.Scanner.TimeNSize> currentScan, Map<String,org.eclipse.jetty.util.Scanner.TimeNSize> oldScan)
          Report the adds/changes/removes to the registered listeners
 void scan()
          Perform a pass of the scanner and report changes
 void scanFiles()
          Recursively scan all files in the designated directories.
 void schedule()
           
 void setFilenameFilter(FilenameFilter filter)
          Apply a filter to files found in the scan directory.
 void setRecursive(boolean recursive)
           
 void setReportDirs(boolean dirs)
          Set if found directories should be reported.
 void setReportExistingFilesOnStartup(boolean reportExisting)
          Whether or not an initial scan will report all files as being added.
 void setScanDepth(int scanDepth)
          Set the scanDepth.
 void setScanDir(File dir)
          Deprecated. use setScanDirs(List dirs) instead
 void setScanDirs(List<File> dirs)
           
 void setScanInterval(int scanInterval)
          Set the scan interval
 
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
addLifeCycleListener, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Scanner

public Scanner()
Method Detail

getScanInterval

public int getScanInterval()
Get the scan interval

Returns:
interval between scans in seconds

setScanInterval

public void setScanInterval(int scanInterval)
Set the scan interval

Parameters:
scanInterval - pause between scans in seconds, or 0 for no scan after the initial scan.

setScanDir

@Deprecated
public void setScanDir(File dir)
Deprecated. use setScanDirs(List dirs) instead

Set the location of the directory to scan.

Parameters:
dir -

getScanDir

@Deprecated
public File getScanDir()
Deprecated. use getScanDirs() instead

Get the location of the directory to scan

Returns:
the first directory (of getScanDirs() being scanned)

setScanDirs

public void setScanDirs(List<File> dirs)

addScanDir

public void addScanDir(File dir)

getScanDirs

public List<File> getScanDirs()

setRecursive

public void setRecursive(boolean recursive)
Parameters:
recursive - True if scanning is recursive
See Also:
setScanDepth(int)

getRecursive

public boolean getRecursive()
Returns:
True if scanning is fully recursive (scandepth==-1)
See Also:
getScanDepth()

getScanDepth

public int getScanDepth()
Get the scanDepth.

Returns:
the scanDepth

setScanDepth

public void setScanDepth(int scanDepth)
Set the scanDepth.

Parameters:
scanDepth - the scanDepth to set

setFilenameFilter

public void setFilenameFilter(FilenameFilter filter)
Apply a filter to files found in the scan directory. Only files matching the filter will be reported as added/changed/removed.

Parameters:
filter -

getFilenameFilter

public FilenameFilter getFilenameFilter()
Get any filter applied to files in the scan dir.

Returns:
the filename filter

setReportExistingFilesOnStartup

public void setReportExistingFilesOnStartup(boolean reportExisting)
Whether or not an initial scan will report all files as being added.

Parameters:
reportExisting - if true, all files found on initial scan will be reported as being added, otherwise not

getReportExistingFilesOnStartup

public boolean getReportExistingFilesOnStartup()

setReportDirs

public void setReportDirs(boolean dirs)
Set if found directories should be reported.

Parameters:
dirs -

getReportDirs

public boolean getReportDirs()

addListener

public void addListener(Scanner.Listener listener)
Add an added/removed/changed listener

Parameters:
listener -

removeListener

public void removeListener(Scanner.Listener listener)
Remove a registered listener

Parameters:
listener - the Listener to be removed

doStart

public void doStart()
Start the scanning action.

Overrides:
doStart in class AbstractLifeCycle

newTimerTask

public TimerTask newTimerTask()

newTimer

public Timer newTimer()

schedule

public void schedule()

doStop

public void doStop()
Stop the scanning.

Overrides:
doStop in class AbstractLifeCycle

scan

public void scan()
Perform a pass of the scanner and report changes


scanFiles

public void scanFiles()
Recursively scan all files in the designated directories.


reportDifferences

public void reportDifferences(Map<String,org.eclipse.jetty.util.Scanner.TimeNSize> currentScan,
                              Map<String,org.eclipse.jetty.util.Scanner.TimeNSize> oldScan)
Report the adds/changes/removes to the registered listeners

Parameters:
currentScan - the info from the most recent pass
oldScan - info from the previous pass


Copyright © 1995-2011 Mort Bay Consulting. All Rights Reserved.