package com.link_intersystems.gitdirstat.domain; import java.io.IOException; import java.util.Collection; import java.util.HashSet; public class PathDeletionIndexFilter implements IndexFilter { private Collection<String> pathsToDelete; public PathDeletionIndexFilter(Collection<String> pathsToDelete) { this.pathsToDelete = pathsToDelete; } @Override public void apply(CommitUpdate commitUpdate) throws IOException { TreeUpdate treeUpdate = commitUpdate.getTreeUpdate(); Collection<String> actualPathsToDelete = new HashSet<String>( pathsToDelete); while (treeUpdate.hasNext()) { TreeFileUpdate fileUpdate = treeUpdate.next(); String path = fileUpdate.getPath(); if (actualPathsToDelete.remove(path)) { fileUpdate.delete(); } if (actualPathsToDelete.isEmpty()) { break; } } } }