You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2020/08/19 19:30:33 UTC
[commons-compress] branch master updated: Refactor some duplication.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-compress.git
The following commit(s) were added to refs/heads/master by this push:
new aba9018 Refactor some duplication.
aba9018 is described below
commit aba901824c013297eceed7655b24144f28f3f64a
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Aug 19 15:08:23 2020 -0400
Refactor some duplication.
---
.../compress/archivers/examples/Archiver.java | 26 +++++++++-------------
1 file changed, 10 insertions(+), 16 deletions(-)
diff --git a/src/main/java/org/apache/commons/compress/archivers/examples/Archiver.java b/src/main/java/org/apache/commons/compress/archivers/examples/Archiver.java
index d4c05ae..d87fa2d 100644
--- a/src/main/java/org/apache/commons/compress/archivers/examples/Archiver.java
+++ b/src/main/java/org/apache/commons/compress/archivers/examples/Archiver.java
@@ -34,6 +34,7 @@ import java.nio.file.StandardOpenOption;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.EnumSet;
import java.util.Objects;
+import java.util.function.BiConsumer;
import org.apache.commons.compress.archivers.ArchiveEntry;
import org.apache.commons.compress.archivers.ArchiveException;
@@ -50,17 +51,18 @@ import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
*/
public class Archiver {
- private static final class ArchiverFileVisitor extends SimpleFileVisitor<Path> {
+ private static class ArchiverFileVisitor extends SimpleFileVisitor<Path> {
+ private static final LinkOption[] EMPTY_LINK_OPTIONS = new LinkOption[0];
private final ArchiveOutputStream target;
private final Path directory;
private final LinkOption[] linkOptions;
- private ArchiverFileVisitor(final ArchiveOutputStream target,
- final Path directory, final LinkOption... linkOptions /*, BiConsumer<Path,T> fileConsumer */) {
+ private ArchiverFileVisitor(final ArchiveOutputStream target, final Path directory,
+ final LinkOption... linkOptions) {
this.target = target;
this.directory = directory;
- this.linkOptions = linkOptions;
+ this.linkOptions = linkOptions == null ? EMPTY_LINK_OPTIONS : linkOptions.clone();
}
@Override
@@ -68,7 +70,7 @@ public class Archiver {
return visit(dir, attrs, false);
}
- private FileVisitResult visit(final Path path, final BasicFileAttributes attrs, final boolean isFile)
+ protected FileVisitResult visit(final Path path, final BasicFileAttributes attrs, final boolean isFile)
throws IOException {
Objects.requireNonNull(path);
Objects.requireNonNull(attrs);
@@ -159,14 +161,10 @@ public class Archiver {
*/
public void create(final SevenZOutputFile target, final Path directory) throws IOException {
// This custom SimpleFileVisitor goes away with Java 8's BiConsumer.
- Files.walkFileTree(directory, new SimpleFileVisitor<Path>() {
- @Override
- public FileVisitResult preVisitDirectory(final Path dir, final BasicFileAttributes attrs)
- throws IOException {
- return visit(dir, attrs, false);
- }
+ Files.walkFileTree(directory, new ArchiverFileVisitor(null, directory) {
- private FileVisitResult visit(final Path path, final BasicFileAttributes attrs, final boolean isFile)
+ @Override
+ protected FileVisitResult visit(final Path path, final BasicFileAttributes attrs, final boolean isFile)
throws IOException {
Objects.requireNonNull(path);
Objects.requireNonNull(attrs);
@@ -184,10 +182,6 @@ public class Archiver {
return FileVisitResult.CONTINUE;
}
- @Override
- public FileVisitResult visitFile(final Path file, final BasicFileAttributes attrs) throws IOException {
- return visit(file, attrs, true);
- }
});
target.finish();
}