Exemple #1
0
 /**
  * Construct an instance with a directory and a file filter and an optional limit on the
  * <i>depth</i> navigated to.
  *
  * <p>The filters control which files and directories will be navigated to as part of the walk.
  * This constructor uses {@link FileFilterUtils#makeDirectoryOnly(IOFileFilter)} and {@link
  * FileFilterUtils#makeFileOnly(IOFileFilter)} internally to combine the filters. A {@code null}
  * filter means that no filtering should occur.
  *
  * @param directoryFilter the filter to apply to directories, null means visit all directories
  * @param fileFilter the filter to apply to files, null means visit all files
  * @param depthLimit controls how <i>deep</i> the hierarchy is navigated to (less than 0 means
  *     unlimited)
  */
 protected DirectoryWalker(
     IOFileFilter directoryFilter, IOFileFilter fileFilter, final int depthLimit) {
   if (directoryFilter == null && fileFilter == null) {
     this.filter = null;
   } else {
     directoryFilter = directoryFilter != null ? directoryFilter : TrueFileFilter.TRUE;
     fileFilter = fileFilter != null ? fileFilter : TrueFileFilter.TRUE;
     directoryFilter = FileFilterUtils.makeDirectoryOnly(directoryFilter);
     fileFilter = FileFilterUtils.makeFileOnly(fileFilter);
     this.filter = FileFilterUtils.or(directoryFilter, fileFilter);
   }
   this.depthLimit = depthLimit;
 }