Class Scanner

    • Field Detail

      • DEFAULT_SCAN_DEPTH

        public static final int DEFAULT_SCAN_DEPTH
        When walking a directory, a depth of 1 ensures that the directory's descendants are visited, not just the directory itself (as a file).
        See Also:
        Constant Field Values
    • Constructor Detail

      • Scanner

        public Scanner()
      • Scanner

        public Scanner​(Scheduler scheduler)
      • Scanner

        public Scanner​(Scheduler scheduler,
                       boolean reportRealPaths)
        Parameters:
        scheduler - The scheduler to use for scanning.
        reportRealPaths - If true, the Scanner.Listeners are called with the real path of scanned files.
    • 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.
      • setScanDirs

        public void setScanDirs​(java.util.List<java.io.File> dirs)
      • addFile

        public void addFile​(java.nio.file.Path path)
        Add a file to be scanned. The file must not be null, and must exist.
        Parameters:
        path - the Path of the file to scan.
      • addDirectory

        public IncludeExcludeSet<java.nio.file.PathMatcher,​java.nio.file.Path> addDirectory​(java.nio.file.Path p)
        Add a directory to be scanned. The directory must not be null and must exist.
        Parameters:
        p - the directory to scan.
        Returns:
        an IncludeExcludeSet to which the caller can add PathMatcher patterns to match
      • setFilenameFilter

        @Deprecated
        public void setFilenameFilter​(java.io.FilenameFilter filter)
        Deprecated.
        Apply a filter to files found in the scan directory. Only files matching the filter will be reported as added/changed/removed.
        Parameters:
        filter - the filename filter to use
      • getFilenameFilter

        @Deprecated
        public java.io.FilenameFilter getFilenameFilter()
        Deprecated.
        Get any filter applied to files in the scan dir.
        Returns:
        the filename filter
      • getScannables

        public java.util.Set<java.nio.file.Path> getScannables()
      • 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
      • 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 - true to report directory changes as well
      • getReportDirs

        public boolean getReportDirs()
      • addListener

        public void addListener​(Scanner.Listener listener)
        Add an added/removed/changed listener
        Parameters:
        listener - the listener to add
      • removeListener

        public void removeListener​(Scanner.Listener listener)
        Remove a registered listener
        Parameters:
        listener - the Listener to be removed
      • doStart

        public void doStart()
                     throws java.lang.Exception
        Start the scanning action.
        Overrides:
        doStart in class ContainerLifeCycle
        Throws:
        AbstractLifeCycle.StopException - If thrown, the lifecycle will immediately be stopped.
        java.lang.Exception - If there was a problem starting. Will cause a transition to FAILED state
      • doStop

        public void doStop()
                    throws java.lang.Exception
        Stop the scanning.
        Overrides:
        doStop in class ContainerLifeCycle
        Throws:
        java.lang.Exception - If there was a problem stopping. Will cause a transition to FAILED state
      • reset

        public void reset()
        Clear the list of scannables. The scanner must first be in the stopped state.
      • exists

        public boolean exists​(java.lang.String path)
        Parameters:
        path - tests if the path exists
        Returns:
        true if the path exists in one of the scandirs
      • nudge

        public void nudge()
        Hint to the scanner to perform a scan cycle as soon as possible. NOTE that the scan is not guaranteed to have happened by the time this method returns.
      • scan

        public void scan​(Callback complete)
        Get the scanner to perform a scan cycle as soon as possible and call the Callback when the scan is finished or failed.
        Parameters:
        complete - called when the scan cycle finishes or fails.