garydgregory commented on code in PR #580:
URL: 
https://github.com/apache/httpcomponents-client/pull/580#discussion_r1768582843


##########
httpclient5/src/main/java/org/apache/hc/client5/http/entity/CompressingEntity.java:
##########
@@ -0,0 +1,135 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+package org.apache.hc.client5.http.entity;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.hc.core5.http.HttpEntity;
+import org.apache.hc.core5.http.io.entity.HttpEntityWrapper;
+import org.apache.hc.core5.util.Args;
+
+
+/**
+ * An {@link HttpEntity} wrapper that applies compression to the content 
before writing it to
+ * an output stream. This class supports various compression algorithms based 
on the
+ * specified content encoding.
+ *
+ * <p>Compression is performed using {@link CompressorFactory}, which returns 
a corresponding
+ * {@link OutputStream} for the requested compression type. This class does 
not support
+ * reading the content directly through {@link #getContent()} as the content 
is always compressed
+ * during write operations.</p>
+ *
+ * @since 5.4
+ */
+public class CompressingEntity extends HttpEntityWrapper {
+
+    /**
+     * The content encoding type, e.g., "gzip", "deflate", etc.
+     */
+    private final String contentEncoding;
+
+    /**
+     * Creates a new {@link CompressingEntity} that compresses the wrapped 
entity's content
+     * using the specified content encoding.
+     *
+     * @param entity          the {@link HttpEntity} to wrap and compress; 
must not be {@code null}.
+     * @param contentEncoding the content encoding to use for compression, 
e.g., "gzip".
+     */
+    public CompressingEntity(final HttpEntity entity, final String 
contentEncoding) {
+        super(entity);
+        this.contentEncoding = Args.notNull(contentEncoding, "Content 
encoding");
+    }
+
+    /**
+     * Returns the content encoding used for compression.
+     *
+     * @return the content encoding (e.g., "gzip", "deflate").
+     */
+    @Override
+    public String getContentEncoding() {
+        return contentEncoding;
+    }
+
+    /**
+     * Returns the length of the wrapped entity. As the content is compressed,
+     * this will return the length of the wrapped entity's compressed data.
+     *
+     * @return the length of the compressed content, or {@code -1} if unknown.
+     */
+    @Override
+    public long getContentLength() {
+        return super.getContentLength();

Review Comment:
   These 2 calls to `super` are redundant, the comments can go in the class 
Javadoc IMO.



-- 
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: dev-unsubscr...@hc.apache.org

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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org

Reply via email to