This is an automated email from the ASF dual-hosted git repository. tv pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-jcs.git
commit d093cd4c22004047483dc89e2d7b4ad6ef5b3c93 Author: Thomas Vandahl <t...@apache.org> AuthorDate: Mon Feb 15 22:20:45 2021 +0100 Use composition instead of inheritance --- .../utils/serialization/CompressingSerializer.java | 27 ++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/commons-jcs-core/src/main/java/org/apache/commons/jcs3/utils/serialization/CompressingSerializer.java b/commons-jcs-core/src/main/java/org/apache/commons/jcs3/utils/serialization/CompressingSerializer.java index 9043822..b9ffb80 100644 --- a/commons-jcs-core/src/main/java/org/apache/commons/jcs3/utils/serialization/CompressingSerializer.java +++ b/commons-jcs-core/src/main/java/org/apache/commons/jcs3/utils/serialization/CompressingSerializer.java @@ -21,6 +21,7 @@ package org.apache.commons.jcs3.utils.serialization; import java.io.IOException; +import org.apache.commons.jcs3.engine.behavior.IElementSerializer; import org.apache.commons.jcs3.utils.zip.CompressionUtil; /** @@ -28,6 +29,28 @@ import org.apache.commons.jcs3.utils.zip.CompressionUtil; */ public class CompressingSerializer extends StandardSerializer { + /** Wrapped serializer */ + private final IElementSerializer serializer; + + + /** + * Default constructor + */ + public CompressingSerializer() + { + this(new StandardSerializer()); + } + + /** + * Wrapper constructor + * + * @param serializer the wrapped serializer + */ + public CompressingSerializer(IElementSerializer serializer) + { + this.serializer = serializer; + } + /** * Serializes an object using default serialization. Compresses the byte array. * <p> @@ -39,7 +62,7 @@ public class CompressingSerializer extends StandardSerializer public <T> byte[] serialize( final T obj ) throws IOException { - final byte[] uncompressed = super.serialize(obj); + final byte[] uncompressed = serializer.serialize(obj); final byte[] compressed = CompressionUtil.compressByteArray( uncompressed ); return compressed; } @@ -64,6 +87,6 @@ public class CompressingSerializer extends StandardSerializer } final byte[] decompressedByteArray = CompressionUtil.decompressByteArray( data ); - return super.deSerialize(decompressedByteArray, loader); + return serializer.deSerialize(decompressedByteArray, loader); } }