You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by tv...@apache.org on 2021/02/15 21:24:04 UTC
[commons-jcs] 01/06: Use composition instead of inheritance
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 <tv...@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);
}
}