org.objectweb.easybeans.util.marshalling
Class CtxClassLoaderObjectInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.ObjectInputStream
          extended by org.objectweb.easybeans.util.marshalling.CtxClassLoaderObjectInputStream
All Implemented Interfaces:
java.io.Closeable, java.io.DataInput, java.io.ObjectInput, java.io.ObjectStreamConstants

public class CtxClassLoaderObjectInputStream
extends java.io.ObjectInputStream

Reader which set the context classloader when recreating the object.

Author:
Florent Benoit

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
CtxClassLoaderObjectInputStream(java.io.InputStream inputStream)
          This inputstream reader needs an input stream for its constructor.
 
Method Summary
protected  java.lang.Class<?> resolveClass(java.io.ObjectStreamClass desc)
          Load the local class equivalent of the specified stream class description.
protected  java.lang.Class<?> resolveProxyClass(java.lang.String[] interfacesName)
          Returns a proxy class that implements the interfaces named in a proxy class descriptor; subclasses may implement this method to read custom data from the stream along with the descriptors for dynamic proxy classes, allowing them to use an alternate loading mechanism for the interfaces and the proxy class.
 
Methods inherited from class java.io.ObjectInputStream
available, close, defaultReadObject, enableResolveObject, read, read, readBoolean, readByte, readChar, readClassDescriptor, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveObject, 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

CtxClassLoaderObjectInputStream

public CtxClassLoaderObjectInputStream(java.io.InputStream inputStream)
                                throws java.io.IOException
This inputstream reader needs an input stream for its constructor.

Parameters:
inputStream - input stream containing bytes
Throws:
java.io.IOException - if super class fails
Method Detail

resolveClass

protected java.lang.Class<?> resolveClass(java.io.ObjectStreamClass desc)
                                   throws java.io.IOException,
                                          java.lang.ClassNotFoundException
Load the local class equivalent of the specified stream class description.

Overrides:
resolveClass in class java.io.ObjectInputStream
Parameters:
desc - an instance of class ObjectStreamClass
Returns:
a Class object corresponding to desc
Throws:
java.io.IOException - any of the usual input/output exceptions
java.lang.ClassNotFoundException - if class of a serialized object cannot be found

resolveProxyClass

protected java.lang.Class<?> resolveProxyClass(java.lang.String[] interfacesName)
                                        throws java.io.IOException,
                                               java.lang.ClassNotFoundException
Returns a proxy class that implements the interfaces named in a proxy class descriptor; subclasses may implement this method to read custom data from the stream along with the descriptors for dynamic proxy classes, allowing them to use an alternate loading mechanism for the interfaces and the proxy class.

Overrides:
resolveProxyClass in class java.io.ObjectInputStream
Parameters:
interfacesName - the list of interface names that were deserialized in the proxy class descriptor
Returns:
a proxy class for the specified interfaces
Throws:
java.io.IOException - any exception thrown by the underlying InputStream
java.lang.ClassNotFoundException - if the proxy class or any of the named interfaces could not be found
Since:
1.3
See Also:
ObjectOutputStream.annotateProxyClass(Class)