ppkarwasz commented on code in PR #666:
URL: https://github.com/apache/commons-compress/pull/666#discussion_r2055467077


##########
src/main/java/org/apache/commons/compress/compressors/zstandard/ZstdCompressorOutputStream.java:
##########
@@ -23,81 +23,535 @@
 import java.io.OutputStream;
 
 import org.apache.commons.compress.compressors.CompressorOutputStream;
+import org.apache.commons.io.build.AbstractStreamBuilder;
+import org.apache.commons.lang3.ArrayUtils;
+import org.tukaani.xz.LZMA2Options;
 
 import com.github.luben.zstd.ZstdOutputStream;
 
 /**
- * {@link CompressorOutputStream} implementation to create Zstandard encoded 
stream. Library relies on <a href="https://github.com/luben/zstd-jni/";>Zstandard
- * JNI</a>
+ * {@link CompressorOutputStream} implementation to create Zstandard encoded 
stream.
+ * <p>
+ * This class avoids making the underlying {@code zstd} classes part of the 
public or protected API. The underlying implementation is provided through the
+ * <a href="https://github.com/luben/zstd-jni/";>Zstandard JNI</a> library 
which is based on <a href="https://github.com/facebook/zstd/";>zstd</a>.
+ * </p>
  *
+ * @see <a href="https://github.com/luben/zstd-jni/";>Zstandard JNI</a>
+ * @see <a href="https://github.com/facebook/zstd/";>zstd</a>
  * @since 1.16
  */
 public class ZstdCompressorOutputStream extends 
CompressorOutputStream<ZstdOutputStream> {
 
+    // @formatter:off
     /**
-     * Wraps the given stream into a zstd-jni ZstdOutputStream using the 
default values for {@code level}, {@code
-     * closeFrameOnFlush} and {@code useChecksum}.
+     * Builds a new {@link ZstdCompressorOutputStream}.
      *
-     * @param outStream the stream to write to
-     * @throws IOException if zstd-jni does
+     * <p>
+     * For example:
+     * </p>
+     * <pre>{@code
+     * ZstdCompressorOutputStream s = ZstdCompressorOutputStream.builder()
+     *   .setPath(path)
+     *   .setLevel(3)
+     *   .setStrategy(0)
+     *   .setWorkers(0)
+     *   .get();
+     * }
+     * </pre>
+     * <p>
+     * This class avoids making the underlying {@code zstd} classes part of 
the public or protected API.
+     * </p>
+     *ZstdOutputStream
+     * @see #get()
+     * @see LZMA2Options
+     * @since 1.28.0
      */
+    // @formatter:on
+    public static class Builder extends 
AbstractStreamBuilder<ZstdCompressorOutputStream, Builder> {

Review Comment:
   Should this class be `final`?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@commons.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to