org.jboss.util.stream
Class CustomObjectInputStreamWithClassloader

java.lang.Object
  extended byjava.io.InputStream
      extended byjava.io.ObjectInputStream
          extended byorg.jboss.util.stream.CustomObjectInputStreamWithClassloader
All Implemented Interfaces:
java.io.DataInput, java.io.ObjectInput, java.io.ObjectStreamConstants

public class CustomObjectInputStreamWithClassloader
extends java.io.ObjectInputStream

Customized object input stream that


Nested Class Summary
 
Nested classes 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_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
CustomObjectInputStreamWithClassloader(java.io.InputStream in, java.lang.ClassLoader cl)
          Constructs a new instance with the given classloader and input stream.
 
Method Summary
protected  java.io.ObjectStreamClass readClassDescriptor()
          Reads just the class name from this input stream.
protected  java.lang.Class resolveClass(java.io.ObjectStreamClass classdesc)
          Resolves the class described in the classdesc parameter.
protected  java.lang.Class resolveProxyClass(java.lang.String[] interfaces)
          Resolves the proxy class for the specified array of interfaces.
 
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, 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

CustomObjectInputStreamWithClassloader

public CustomObjectInputStreamWithClassloader(java.io.InputStream in,
                                              java.lang.ClassLoader cl)
                                       throws java.io.IOException
Constructs a new instance with the given classloader and input stream.

Parameters:
in - stream to read objects from
cl - classloader to use
Method Detail

readClassDescriptor

protected java.io.ObjectStreamClass readClassDescriptor()
                                                 throws java.io.IOException,
                                                        java.lang.ClassNotFoundException
Reads just the class name from this input stream.

Returns:
a class description object
Throws:
java.io.IOException
java.lang.ClassNotFoundException

resolveClass

protected java.lang.Class resolveClass(java.io.ObjectStreamClass classdesc)
                                throws java.io.IOException,
                                       java.lang.ClassNotFoundException
Resolves the class described in the classdesc parameter. First, try the default classloader (implemented by the super class). If it cannot load the class, try the classloader given to this instance.

Parameters:
classdesc - class description object
Returns:
the Class corresponding to class description
Throws:
java.io.IOException - if an I/O error occurs
java.lang.ClassNotFoundException - if the class cannot be found by the classloader

resolveProxyClass

protected java.lang.Class resolveProxyClass(java.lang.String[] interfaces)
                                     throws java.io.IOException,
                                            java.lang.ClassNotFoundException
Resolves the proxy class for the specified array of interfaces.

Parameters:
interfaces - an array of interfaces
Returns:
the proxy class
Throws:
java.io.IOException - if an I/O error occurs
java.lang.ClassNotFoundException - if the class cannot be found by the classloader