/**
  * prunes the list of index files such that only the latest del generation files are contained.
  */
 private void pruneOldDeleteGenerations(Set<Path> files) {
   final TreeSet<Path> delFiles = new TreeSet<>();
   for (Path file : files) {
     if (file.getFileName().toString().endsWith(".liv")) {
       delFiles.add(file);
     }
   }
   Path last = null;
   for (Path current : delFiles) {
     if (last != null) {
       final String newSegmentName =
           IndexFileNames.parseSegmentName(current.getFileName().toString());
       final String oldSegmentName =
           IndexFileNames.parseSegmentName(last.getFileName().toString());
       if (newSegmentName.equals(oldSegmentName)) {
         int oldGen =
             Integer.parseInt(
                 IndexFileNames.stripExtension(
                         IndexFileNames.stripSegmentName(last.getFileName().toString()))
                     .replace("_", ""),
                 Character.MAX_RADIX);
         int newGen =
             Integer.parseInt(
                 IndexFileNames.stripExtension(
                         IndexFileNames.stripSegmentName(current.getFileName().toString()))
                     .replace("_", ""),
                 Character.MAX_RADIX);
         if (newGen > oldGen) {
           files.remove(last);
         } else {
           files.remove(current);
           continue;
         }
       }
     }
     last = current;
   }
 }