org.objectweb.fractal.rmi.io
Class MyRmiObjectInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.ObjectInputStream
          extended by org.objectweb.fractal.rmi.io.MyRmiObjectInputStream
All Implemented Interfaces:
java.io.Closeable, java.io.DataInput, java.io.ObjectInput, java.io.ObjectStreamConstants

public class MyRmiObjectInputStream
extends java.io.ObjectInputStream

An ObjectInputStream that replaces Ref objects with stubs.


Nested Class Summary
 
Nested classes/interfaces inherited from class java.io.ObjectInputStream
java.io.ObjectInputStream.GetField
 
Field Summary
protected  java.lang.String codeBase
          The code base to be used to load classes.
protected  ContextFactory contextFactory
          The context factory used to create hints for the bind method.
protected  NamingContext domain
          The naming context used to decode the identifiers contained in Ref objects.
 
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
MyRmiObjectInputStream(java.io.InputStream is, NamingContext domain, ContextFactory contextFactory, ClassGenerator loader)
          Constructs a new MyRmiObjectInputStream.
 
Method Summary
protected  java.lang.Class resolveClass(java.io.ObjectStreamClass desc)
           
protected  java.lang.Object resolveObject(java.lang.Object obj)
          Replaces Ref objects with corresponding stubs.
 
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, 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
 

Field Detail

domain

protected NamingContext domain
The naming context used to decode the identifiers contained in Ref objects.


contextFactory

protected ContextFactory contextFactory
The context factory used to create hints for the bind method.


codeBase

protected java.lang.String codeBase
The code base to be used to load classes.

Constructor Detail

MyRmiObjectInputStream

public MyRmiObjectInputStream(java.io.InputStream is,
                              NamingContext domain,
                              ContextFactory contextFactory,
                              ClassGenerator loader)
                       throws java.io.IOException
Constructs a new MyRmiObjectInputStream.

Parameters:
is - the underlying input stream.
domain - the naming context to be used to decode the identifiers contained in Ref objects.
contextFactory - the context factory to be used to create hints for the bind method.
Throws:
java.io.IOException - if the super constructor throws an exception.
Method Detail

resolveObject

protected java.lang.Object resolveObject(java.lang.Object obj)
                                  throws java.io.IOException
Replaces Ref objects with corresponding stubs. This method uses the domain to decode the identifier encoded in a Ref object, and then uses the bind method of the decoded identifier to get a stub corresponding to this identifier. The type stored in the Ref object is passed as an hint to the bind method.

Overrides:
resolveObject in class java.io.ObjectInputStream
Parameters:
obj - an object.
Returns:
a stub if obj is a Ref object, or obj otherwise.
Throws:
java.io.IOException - if a Ref object cannot be replaced with a stub.

resolveClass

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


Copyright © 2008 OW2 Consortium. All Rights Reserved.