Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jboss.util.stream
Class CustomObjectInputStreamWithClassloader

    java.lang.Object
      java.io.InputStream
          java.io.ObjectInputStream
              org.jboss.util.stream.CustomObjectInputStreamWithClassloader

All Implemented Interfaces:
  DataInput, ObjectInput, ObjectStreamConstants

public class CustomObjectInputStreamWithClassloader
extends ObjectInputStream

Customized object input stream that

- redefines `readClassDescriptor()` in order to read a short class descriptor (just the class name) when deserializing an object
- takes a class loader in its constructor and uses it to retrieve the class definitions.

Version:
  $Revision: 1.1 $
Author:
  Rickard Oberg, Francisco Reverbel

Nested Class Summary

Nested classes inherited from class java.io.ObjectInputStream
`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(InputStream in, ClassLoader cl)` Constructs a new instance with the given classloader and input stream.

Method Summary
`protected ObjectStreamClass` | `readClassDescriptor()` Reads just the class name from this input stream.
`protected Class` | `resolveClass(ObjectStreamClass classdesc)` Resolves the class described in the classdesc parameter.
`protected Class` | `resolveProxyClass(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(InputStream in,
                                                  ClassLoader cl)
                                           throws 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 ObjectStreamClass readClassDescriptor()
                                             throws IOException,
                                                    ClassNotFoundException

  Reads just the class name from this input stream.

  Returns:
    a class description object
  Throws:
    `IOException`
    `ClassNotFoundException`

### resolveClass

    protected Class resolveClass(ObjectStreamClass classdesc)
                          throws IOException,
                                 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:
    `IOException` - if an I/O error occurs
    `ClassNotFoundException` - if the class cannot be found by the classloader

### resolveProxyClass

    protected Class resolveProxyClass(String[] interfaces)
                               throws IOException,
                                      ClassNotFoundException

  Resolves the proxy class for the specified array of interfaces.

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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002 JBoss Group, LLC. All Rights Reserved.