## org.eclipse.jetty.util
Class Scanner

    java.lang.Object
      org.eclipse.jetty.util.Scanner

    public class Scanner

extends java.lang.Object

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

Nested Class Summary
`static interface` `Scanner.BulkListener`
`static interface` `Scanner.DiscreteListener`
`static interface` `Scanner.Listener` Listener Marker for notifications re file changes.

Constructor Summary
`Scanner()`

Method Summary
`void` `addListener(Scanner.Listener listener)` Add an added/removed/changed listener
`java.io.FilenameFilter` `getFilenameFilter()` Get any filter applied to files in the scan dir.
`boolean` `getRecursive()`
`boolean` `getReportDirs()`
`boolean` `getReportExistingFilesOnStartup()`
`int` `getScanDepth()` Get the scanDepth.
`java.io.File` `getScanDir()` Deprecated. use getScanDirs() instead
`java.util.List<java.io.File>` `getScanDirs()`
`int` `getScanInterval()` Get the scan interval
`java.util.Timer` `newTimer()`
`java.util.TimerTask` `newTimerTask()`
`void` `removeListener(Scanner.Listener listener)` Remove a registered listener
`void` `reportDifferences(java.util.Map<java.lang.String,java.lang.Long> currentScan, java.util.Map<java.lang.String,java.lang.Long> 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(java.io.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(java.io.File dir)` Deprecated. use setScanDirs(List dirs) instead
`void` `setScanDirs(java.util.List<java.io.File> dirs)`
`void` `setScanInterval(int scanInterval)` Set the scan interval
`void` `start()` Start the scanning action.
`void` `stop()` Stop the scanning.

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(java.io.File dir)

  Deprecated. use setScanDirs(List dirs) instead

  Set the location of the directory to scan.

  Parameters:
    `dir` -

### getScanDir

    @Deprecated
    public java.io.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(java.util.List<java.io.File> dirs)

### getScanDirs

    public java.util.List<java.io.File> getScanDirs()

### setRecursive

    public void setRecursive(boolean recursive)

  Parameters:
    `recursive` - True if scanning is recursive
  See Also:
    `#setScanDepth()`

### 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(java.io.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 java.io.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

### start

    public void start()

  Start the scanning action.

### newTimerTask

    public java.util.TimerTask newTimerTask()

### newTimer

    public java.util.Timer newTimer()

### schedule

    public void schedule()

### stop

    public void stop()

  Stop the scanning.

### 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(java.util.Map<java.lang.String,java.lang.Long> currentScan,
                                  java.util.Map<java.lang.String,java.lang.Long> 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-2010 Mort Bay Consulting. All Rights Reserved.