PathIterator pathIterator() { if (dataset.getDescriptor().isPartitioned()) { return new PathIterator(fs, root, partitionIterator()); } else { return new PathIterator(fs, root, null); } }
/** * Returns an iterator that provides all leaf-level directories in this view. * * @return leaf-directory iterator */ Iterator<Path> dirIterator() { if (dataset.getDescriptor().isPartitioned()) { return Iterators.transform(partitionIterator(), new Function<StorageKey, Path>() { @Override @edu.umd.cs.findbugs.annotations.SuppressWarnings( value="NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE", justification="False positive, initialized above as non-null.") public Path apply(@Nullable StorageKey key) { return new Path(root, key.getPath()); } }); } else { return Iterators.singletonIterator(root); } }
boolean deleteAllUnsafe(boolean useTrash) { boolean deleted = false; if (dataset.getDescriptor().isPartitioned()) { for (StorageKey key : partitionIterator()) { deleted = (useTrash ? FileSystemUtil.cleanlyMoveToTrash(fs, root, key.getPath()) : FileSystemUtil.cleanlyDelete(fs, root, key.getPath())) || deleted; if (listener != null) { // the relative path is the partition name, so we can simply delete it // in Hive listener.partitionDeleted(dataset.getNamespace(), dataset.getName(), key.getPath().toString()); } } } else { for (Path path : pathIterator()) { deleted = (useTrash ? FileSystemUtil.cleanlyMoveToTrash(fs, root, path) : FileSystemUtil.cleanlyDelete(fs, root, path)) || deleted; } } return deleted; }