Package com.gargoylesoftware.base.io
Class CondensedObjectOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.ObjectOutputStream
-
- com.gargoylesoftware.base.io.CondensedObjectOutputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.DataOutput
,java.io.Flushable
,java.io.ObjectOutput
,java.io.ObjectStreamConstants
,java.lang.AutoCloseable
public class CondensedObjectOutputStream extends java.io.ObjectOutputStream
A specialized subclass of ObjectOutputStream that is used to serialize objects. This stream will remove duplicate objects from the stream in order to shrink the resulting byte stream.Only objects of the following types will be condensed: Character, Double, Integer, Long, Short and String. The biggest benefit will come from duplicate Strings.
- Version:
- $Revision: 1.3 $
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List
classes_
private java.lang.String[]
classNames_
The list of classes that we can try condensing.private java.util.List
objects_
-
Fields inherited from interface java.io.ObjectStreamConstants
baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_ENUM, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, SERIAL_FILTER_PERMISSION, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_ENUM, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING
-
-
Constructor Summary
Constructors Constructor Description CondensedObjectOutputStream(java.io.OutputStream stream)
Create the stream
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.Object
replaceObject(java.lang.Object object)
Overrides the superclass to perform substitutions of duplicate immutable objects.-
Methods inherited from class java.io.ObjectOutputStream
annotateClass, annotateProxyClass, close, defaultWriteObject, drain, enableReplaceObject, flush, putFields, reset, useProtocolVersion, write, write, write, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeClassDescriptor, writeDouble, writeFields, writeFloat, writeInt, writeLong, writeObject, writeObjectOverride, writeShort, writeStreamHeader, writeUnshared, writeUTF
-
-
-
-
Constructor Detail
-
CondensedObjectOutputStream
public CondensedObjectOutputStream(java.io.OutputStream stream) throws java.io.IOException
Create the stream- Parameters:
stream
- The output stream that we are wrapping- Throws:
java.io.IOException
- If the superclass throws an IOException in it's constructor.
-
-
Method Detail
-
replaceObject
protected java.lang.Object replaceObject(java.lang.Object object)
Overrides the superclass to perform substitutions of duplicate immutable objects.- Overrides:
replaceObject
in classjava.io.ObjectOutputStream
- Parameters:
object
- The object to be serialized- Returns:
- Either the object that was passed in or an identical object that had previously been passed in.
-
-