public class MarshalledInstance extends Object implements Serializable
MarshalledInstance contains an object in serialized form. The contained object can
be deserialized on demand when explicitly requested. This allows an object to be sent from one VM
to another in a way that allows the receiver to control when and if the object is deserialized.
The contained object is specified at construction time and can either be provided in
unserialized or serialized form. If provided in unserialized form it will be serialized during
construction with the serialization semantics defined by MarshalOutputStream. In
particular, classes are annotated with a codebase URL from which the class can be loaded (if
available).
If the MarshalledInstance needs to deserialize the contained object
then the contained object will be deserialized with the deserialization semantics defined by
MarshalInputStream. In particular, the codebase annotations associated with the
contained object may be used to load classes referenced by the contained object.
MarshalledInstance provides functionality similar to
java.rmi.MarshalledObject, but additionally provides for the verification of
codebase integrity. Unlike java.rmi.MarshalledObject, it does not perform remote
object-to-stub replacement.
| Modifier and Type | Field and Description |
|---|---|
static String |
USE_GZIP_PROPERTY |
| Constructor and Description |
|---|
MarshalledInstance(MarshalledObject mo)
Creates a new
MarshalledInstance from an existing MarshalledObject. |
MarshalledInstance(Object obj)
Creates a new
MarshalledInstance that contains the marshalled representation of
the current state of the supplied object. |
MarshalledInstance(Object obj,
Collection context)
Creates a new
MarshalledInstance that contains the marshalled representation of
the current state of the supplied object. |
| Modifier and Type | Method and Description |
|---|---|
MarshalledObject |
convertToMarshalledObject()
Creates a new
MarshalledObject that will contain an object equivalent to the
object contained in this MarshalledInstance object. |
boolean |
equals(Object obj)
Compares this
MarshalledInstance to another object. |
boolean |
fullyEquals(Object obj)
Compares this
MarshalledInstance to another object. |
Object |
get(boolean verifyCodebaseIntegrity)
Returns a new copy of the contained object.
|
Object |
get(ClassLoader defaultLoader,
boolean verifyCodebaseIntegrity,
ClassLoader verifierLoader,
Collection context)
Returns a new copy of the contained object.
|
int |
hashCode()
Returns the hash code for this
MarshalledInstance. |
public static final String USE_GZIP_PROPERTY
public MarshalledInstance(Object obj) throws IOException
MarshalledInstance that contains the marshalled representation of
the current state of the supplied object. The object is serialized with the semantics defined
by MarshalOutputStream. The output stream used to marshal the object implements
ObjectStreamContext and returns an empty collection from its getObjectStreamContext method.obj - The Object to be contained in the new MarshalledInstanceIOException - if the object cannot be serializedpublic MarshalledInstance(Object obj, Collection context) throws IOException
MarshalledInstance that contains the marshalled representation of
the current state of the supplied object. The object is serialized with the semantics defined
by MarshalOutputStream. The output stream used to marshal the object implements
ObjectStreamContext and returns the given collection from its getObjectStreamContext method.obj - The Object to be contained in the new MarshalledInstancecontext - the collection of context information objectsIOException - if the object cannot be serializedNullPointerException - if context is nullpublic MarshalledInstance(MarshalledObject mo)
MarshalledInstance from an existing MarshalledObject.
An object equivalent to the object contained in the passed MarshalledObject will
be contained in the new MarshalledInstance. The object contained in the
passed MarshalledObject will not be unmarshalled as part of this call.
mo - The MarshalledObject that contains the object the new
MarshalledInstance should containNullPointerException - if mo is nullpublic MarshalledObject convertToMarshalledObject()
MarshalledObject that will contain an object equivalent to the
object contained in this MarshalledInstance object. The object contained in
this MarshalledInstance object will not be unmarshalled as part of this call.
MarshalledObject which contains an object equivalent to the object
contained in this MarshalledInstancepublic Object get(boolean verifyCodebaseIntegrity) throws IOException, ClassNotFoundException
MarshalInputStream. The input stream used to unmarshal the object
implements ObjectStreamContext and returns a collection from its getObjectStreamContext method which contains a
single element of type IntegrityEnforcement; the integrityEnforced method of this element returns the
specified verifyCodebaseIntegrity value. MarshalledInstance implements
this method by calling .get(null, verifyCodebaseIntegrity, null, null)
verifyCodebaseIntegrity - if true then codebase integrity is verified,
otherwise code base integrity is not verifiedIOException - if an IOException occurs while deserializing the
object from its internal representationClassNotFoundException - if any classes necessary for reconstructing the contained
object can not be found or if verifyCodebaseIntegrity
is true and the integrity of the contained
object's codebase cannot be confirmedpublic Object get(ClassLoader defaultLoader, boolean verifyCodebaseIntegrity, ClassLoader verifierLoader, Collection context) throws IOException, ClassNotFoundException
MarshalInputStream. If context is not null
the input stream used to unmarshal the object implements ObjectStreamContext and
returns the given collection from its getObjectStreamContext method. If context is null the input
stream used to unmarshal the object implements ObjectStreamContext and returns a
collection from its getObjectStreamContext
method which contains a single element of type IntegrityEnforcement; the integrityEnforced method of this element returns the
specified verifyCodebaseIntegrity value.
defaultLoader - the class loader value (possibly null) to pass as
the defaultLoader argument to
RMIClassLoader methodsverifyCodebaseIntegrity - if true then codebase integrity is verified,
otherwise code base integrity is not verifiedverifierLoader - the class loader value (possibly null) to pass to
Security.verifyCodebaseIntegrity, if verifyCodebaseIntegrity
is truecontext - the collection of context information objects or
nullIOException - if an IOException occurs while deserializing the
object from its internal representationClassNotFoundException - if any classes necessary for reconstructing the contained
object can not be found or if verifyCodebaseIntegrity
is true and the integrity of the contained
object's codebase cannot be confirmedpublic boolean fullyEquals(Object obj)
MarshalledInstance to another object. Returns true if and only if
the argument refers to an instance of MarshalledInstance that contains exactly
the same serialized form for its contained object as this object does and has the same class
codebase annotations.obj - the object to compare with this MarshalledInstancetrue if the argument contains an object with an equivalent serialized
form and codebase; otherwise returns falsepublic boolean equals(Object obj)
MarshalledInstance to another object. Returns true if and only if
the argument refers to an instance of MarshalledInstance that contains exactly
the same serialized form for its contained object as this object does. The comparison ignores
any class codebase annotations, so that two objects can be equivalent if they have the same
serialized representation, except for the codebase of each class in the serialized
representation.Copyright © GigaSpaces.