org.jcon.persistance
Class LookupOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by java.io.ObjectOutputStream
          extended by org.jcon.persistance.LookupOutputStream
All Implemented Interfaces:
java.io.Closeable, java.io.DataOutput, java.io.Flushable, java.io.ObjectOutput, java.io.ObjectStreamConstants

public class LookupOutputStream
extends java.io.ObjectOutputStream

An output stream that exchanges references to objects found in a lookup table for a lookup index that can be used during deserialization to locate the original object.

Version:
1.0 8/14/97
Author:
Paul Reavis

Nested Class Summary
 
Nested classes/interfaces inherited from class java.io.ObjectOutputStream
java.io.ObjectOutputStream.PutField
 
Field Summary
 
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, 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
LookupOutputStream(java.io.OutputStream outie, LookupDatabase lookup)
          Creates a new LookupOutputStream on the OutputStream.
 
Method Summary
 LookupDatabase getLookup()
          The lookup database used.
protected  java.lang.Object replaceObject(java.lang.Object obj)
          This is where the magic happens.
 void setLookup(LookupDatabase newLookup)
          The lookup database used.
 
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

LookupOutputStream

public LookupOutputStream(java.io.OutputStream outie,
                          LookupDatabase lookup)
                   throws java.io.IOException
Creates a new LookupOutputStream on the OutputStream.

Throws:
java.io.IOException
Method Detail

getLookup

public LookupDatabase getLookup()
The lookup database used.


setLookup

public void setLookup(LookupDatabase newLookup)
The lookup database used.


replaceObject

protected java.lang.Object replaceObject(java.lang.Object obj)
                                  throws java.io.IOException
This is where the magic happens.

Overrides:
replaceObject in class java.io.ObjectOutputStream
Throws:
java.io.IOException