com.gargoylesoftware.base.io
Class CondensedObjectOutputStream

java.lang.Object
  extended byjava.io.OutputStream
      extended byjava.io.ObjectOutputStream
          extended bycom.gargoylesoftware.base.io.CondensedObjectOutputStream
All Implemented Interfaces:
DataOutput, ObjectOutput, ObjectStreamConstants

public class CondensedObjectOutputStream
extends 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.4 $
Author:
Mike Bowler

Nested Class Summary
 
Nested classes inherited from class java.io.ObjectOutputStream
ObjectOutputStream.PutField
 
Field Summary
 
Fields inherited from interface java.io.ObjectStreamConstants
baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING
 
Constructor Summary
CondensedObjectOutputStream(OutputStream stream)
          Create the stream
 
Method Summary
protected  Object replaceObject(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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CondensedObjectOutputStream

public CondensedObjectOutputStream(OutputStream stream)
                            throws IOException
Create the stream

Parameters:
stream - The output stream that we are wrapping
Throws:
IOException - If the superclass throws an IOException in it's constructor.
Method Detail

replaceObject

protected Object replaceObject(Object object)
Overrides the superclass to perform substitutions of duplicate immutable objects.

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.


Copyright © 1998-2005 Gargoyle Software Inc.. All Rights Reserved.