org.jdesktop.wonderland.common.comms
Class WonderlandObjectInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.ObjectInputStream
          extended by org.jdesktop.wonderland.common.comms.WonderlandObjectInputStream
All Implemented Interfaces:
java.io.Closeable, java.io.DataInput, java.io.ObjectInput, java.io.ObjectStreamConstants

public class WonderlandObjectInputStream
extends java.io.ObjectInputStream

A specialized ObjectInputStream that reduces the size of serialized core wonderland objects. For known classes this stream reads an (int) id instead of the large serialization class header. For unknown classes it reads the class name in the stream, which again is usually much smaller than the serialization header.

Author:
paulby

Nested Class Summary
 
Nested classes/interfaces inherited from class java.io.ObjectInputStream
java.io.ObjectInputStream.GetField
 
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
WonderlandObjectInputStream(java.io.InputStream in)
           
WonderlandObjectInputStream(java.io.InputStream in, java.lang.ClassLoader classLoader)
           
 
Method Summary
protected  java.io.ObjectStreamClass readClassDescriptor()
           
protected  java.lang.Class<?> resolveClass(java.io.ObjectStreamClass osc)
          Override the default class resolution to use the provided classloader.
 
Methods inherited from class java.io.ObjectInputStream
available, close, defaultReadObject, enableResolveObject, read, read, readBoolean, readByte, readChar, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveObject, resolveProxyClass, skipBytes
 
Methods inherited from class java.io.InputStream
mark, markSupported, read, reset, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.io.ObjectInput
read, skip
 

Constructor Detail

WonderlandObjectInputStream

public WonderlandObjectInputStream(java.io.InputStream in)
                            throws java.io.IOException
Throws:
java.io.IOException

WonderlandObjectInputStream

public WonderlandObjectInputStream(java.io.InputStream in,
                                   java.lang.ClassLoader classLoader)
                            throws java.io.IOException
Throws:
java.io.IOException
Method Detail

resolveClass

protected java.lang.Class<?> resolveClass(java.io.ObjectStreamClass osc)
                                   throws java.io.IOException,
                                          java.lang.ClassNotFoundException
Override the default class resolution to use the provided classloader.

Overrides:
resolveClass in class java.io.ObjectInputStream
Parameters:
osc - the class to resolve
Returns:
the class for the given stream
Throws:
java.io.IOException
java.lang.ClassNotFoundException

readClassDescriptor

protected java.io.ObjectStreamClass readClassDescriptor()
                                                 throws java.lang.ClassNotFoundException,
                                                        java.io.IOException
Overrides:
readClassDescriptor in class java.io.ObjectInputStream
Throws:
java.lang.ClassNotFoundException
java.io.IOException


Open Wonderland - http://openwonderland.org