Class AccumulatorPathVisitor

All Implemented Interfaces:
FileVisitor<Path>, PathVisitor

public class AccumulatorPathVisitor extends CountingPathVisitor
Accumulates normalized paths during visitation.

Use with care on large file trees as each visited Path element is remembered.

Example

 Path dir = PathUtils.current();
 // We are interested in files older than one day
 Instant cutoff = Instant.now().minus(Duration.ofDays(1));
 AccumulatorPathVisitor visitor = AccumulatorPathVisitor.withLongCounters(new AgeFileFilter(cutoff));
 //
 // Walk one dir
 Files.walkFileTree(dir, Collections.emptySet(), 1, visitor);
 System.out.println(visitor.getPathCounters());
 System.out.println(visitor.getFileList());
 //
 visitor.getPathCounters().reset();
 //
 // Walk dir tree
 Files.walkFileTree(dir, visitor);
 System.out.println(visitor.getPathCounters());
 System.out.println(visitor.getDirList());
 System.out.println(visitor.getFileList());
 
Since:
2.7
  • Constructor Details

    • AccumulatorPathVisitor

      public AccumulatorPathVisitor()
      Constructs a new instance.
      Since:
      2.9.0
    • AccumulatorPathVisitor

      public AccumulatorPathVisitor(Counters.PathCounters pathCounter)
      Constructs a new instance that counts file system elements.
      Parameters:
      pathCounter - How to count path visits.
    • AccumulatorPathVisitor

      public AccumulatorPathVisitor(Counters.PathCounters pathCounter, PathFilter fileFilter, PathFilter dirFilter)
      Constructs a new instance.
      Parameters:
      pathCounter - How to count path visits.
      fileFilter - Filters which files to count.
      dirFilter - Filters which directories to count.
      Since:
      2.9.0
    • AccumulatorPathVisitor

      public AccumulatorPathVisitor(Counters.PathCounters pathCounter, PathFilter fileFilter, PathFilter dirFilter, IOBiFunction<Path,IOException,FileVisitResult> visitFileFailed)
      Constructs a new instance.
      Parameters:
      pathCounter - How to count path visits.
      fileFilter - Filters which files to count.
      dirFilter - Filters which directories to count.
      visitFileFailed - Called on SimplePathVisitor.visitFileFailed(Path, IOException).
      Since:
      2.12.0
  • Method Details

    • withBigIntegerCounters

      public static AccumulatorPathVisitor withBigIntegerCounters()
      Constructs a new instance configured with a BigInteger Counters.PathCounters.
      Returns:
      a new instance configured with a BigInteger Counters.PathCounters.
    • withBigIntegerCounters

      public static AccumulatorPathVisitor withBigIntegerCounters(PathFilter fileFilter, PathFilter dirFilter)
      Constructs a new instance configured with a BigInteger Counters.PathCounters.
      Parameters:
      fileFilter - Filters files to accumulate and count.
      dirFilter - Filters directories to accumulate and count.
      Returns:
      a new instance configured with a long Counters.PathCounters.
      Since:
      2.9.0
    • withLongCounters

      public static AccumulatorPathVisitor withLongCounters()
      Constructs a new instance configured with a long Counters.PathCounters.
      Returns:
      a new instance configured with a long Counters.PathCounters.
    • withLongCounters

      public static AccumulatorPathVisitor withLongCounters(PathFilter fileFilter, PathFilter dirFilter)
      Constructs a new instance configured with a long Counters.PathCounters.
      Parameters:
      fileFilter - Filters files to accumulate and count.
      dirFilter - Filters directories to accumulate and count.
      Returns:
      a new instance configured with a long Counters.PathCounters.
      Since:
      2.9.0
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class CountingPathVisitor
    • getDirList

      public List<Path> getDirList()
      Gets a copy of the list of visited directories.
      Returns:
      a copy of the list of visited directories.
    • getFileList

      public List<Path> getFileList()
      Gets a copy of the list of visited files.
      Returns:
      a copy of the list of visited files.
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class CountingPathVisitor
    • relativizeDirectories

      public List<Path> relativizeDirectories(Path parent, boolean sort, Comparator<? super Path> comparator)
      Relativizes each directory path with Path.relativize(Path) against the given parent, optionally sorting the result.
      Parameters:
      parent - A parent path
      sort - Whether to sort
      comparator - How to sort, null uses default sorting.
      Returns:
      A new list
    • relativizeFiles

      public List<Path> relativizeFiles(Path parent, boolean sort, Comparator<? super Path> comparator)
      Relativizes each file path with Path.relativize(Path) against the given parent, optionally sorting the result.
      Parameters:
      parent - A parent path
      sort - Whether to sort
      comparator - How to sort, null uses default sorting.
      Returns:
      A new list