yakovsh commented on code in PR #433:
URL: https://github.com/apache/commons-compress/pull/433#discussion_r1388568582


##########
src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java:
##########
@@ -522,6 +524,39 @@ public CompressorInputStream 
createCompressorInputStream(final InputStream in) t
         return createCompressorInputStream(detect(in), in);
     }
 
+    /**
+     * Create a compressor input stream from an input stream, auto-detecting 
the
+     * compressor type from the first few bytes of the stream while 
restricting the detected type
+     * against the provided set of compressor names. The InputStream must 
support marks, like BufferedInputStream.
+     *
+     * The purpose of this method is to restrict autodetection to a smaller 
set of compressor names
+     * for applications that don't need to support decompression of all file 
types supported by the library.
+     *
+     * @param in
+     *            the input stream
+     * @param compressorNames
+     *            compressor names to limit autodetection
+     * @return the compressor input stream
+     * @throws CompressorException
+     *             if the autodetected compressor is not in the provided set 
of compressor names
+     * @throws IllegalArgumentException
+     *             if the stream is null or does not support mark
+     * @since 1.25
+     */
+    public CompressorInputStream createCompressorInputStream(final InputStream 
in, final Set<String> compressorNames)
+            throws CompressorException {
+        if (Objects.isNull(compressorNames) || compressorNames.isEmpty()) {
+            throw new IllegalArgumentException("Compressor names cannot be 
null or empty");
+        }
+
+        String detectedName = detect(in);

Review Comment:
   Let me know if the refactored code makes more sense



-- 
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