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-io.git
commit febaf104e5cae831db100ae539ffe2c724ca061c Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Wed May 3 07:38:54 2023 -0400 Use a builder instead of new custom factory method --- .../io/output/UncheckedFilterOutputStream.java | 39 +++++++++++++++++++--- .../io/output/UncheckedFilterOutputStreamTest.java | 4 +-- 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/apache/commons/io/output/UncheckedFilterOutputStream.java b/src/main/java/org/apache/commons/io/output/UncheckedFilterOutputStream.java index 31dd5ef7..fe7223ac 100644 --- a/src/main/java/org/apache/commons/io/output/UncheckedFilterOutputStream.java +++ b/src/main/java/org/apache/commons/io/output/UncheckedFilterOutputStream.java @@ -22,6 +22,7 @@ import java.io.IOException; import java.io.OutputStream; import java.io.UncheckedIOException; +import org.apache.commons.io.build.AbstractStreamBuilder; import org.apache.commons.io.function.Uncheck; /** @@ -35,13 +36,41 @@ import org.apache.commons.io.function.Uncheck; public class UncheckedFilterOutputStream extends FilterOutputStream { /** - * Creates a new instance. + * Builds a new {@link UncheckedFilterOutputStream} instance. + * <p> + * Using File IO: + * </p> + * <pre>{@code + * UncheckedFilterOutputStream s = UncheckedFilterOutputStream.builder() + * .setFile(file) + * .get()} + * </pre> + * <p> + * Using NIO Path: + * </p> + * <pre>{@code + * UncheckedFilterOutputStream s = UncheckedFilterOutputStream.builder() + * .setPath(path) + * .get()} + * </pre> + */ + public static class Builder extends AbstractStreamBuilder<UncheckedFilterOutputStream, Builder> { + + @SuppressWarnings("resource") + @Override + public UncheckedFilterOutputStream get() throws IOException { + return new UncheckedFilterOutputStream(getOrigin().getOutputStream()); + } + + } + + /** + * Constructs a new {@link Builder}. * - * @param outputStream an OutputStream object providing the underlying stream. - * @return a new UncheckedFilterOutputStream. + * @return a new {@link Builder}. */ - public static UncheckedFilterOutputStream on(final OutputStream outputStream) { - return new UncheckedFilterOutputStream(outputStream); + public static Builder builder() { + return new Builder(); } /** diff --git a/src/test/java/org/apache/commons/io/output/UncheckedFilterOutputStreamTest.java b/src/test/java/org/apache/commons/io/output/UncheckedFilterOutputStreamTest.java index 4eff6581..9ff19ec2 100644 --- a/src/test/java/org/apache/commons/io/output/UncheckedFilterOutputStreamTest.java +++ b/src/test/java/org/apache/commons/io/output/UncheckedFilterOutputStreamTest.java @@ -42,8 +42,8 @@ public class UncheckedFilterOutputStreamTest { @BeforeEach public void setUp() throws IOException { exception = new IOException("test exception"); - brokenWriter = UncheckedFilterOutputStream.on(new BrokenOutputStream(exception)); - stringWriter = UncheckedFilterOutputStream.on(WriterOutputStream.builder().setWriter(new StringWriter()).setCharset(Charset.defaultCharset()).get()); + brokenWriter = UncheckedFilterOutputStream.builder().setOutputStream(new BrokenOutputStream(exception)).get(); + stringWriter = UncheckedFilterOutputStream.builder().setOutputStream(WriterOutputStream.builder().setWriter(new StringWriter()).setCharset(Charset.defaultCharset()).get()).get(); } @Test