Package commonj.sdo.impl
Class ExternalizableDelegator
java.lang.Object
commonj.sdo.impl.ExternalizableDelegator
- All Implemented Interfaces:
Externalizable
,Serializable
Delegates DataObject serialization while ensuring implementation independent
java.io.Serialization. An implementation of DataObject
returns an ExternalizableDelegator from its writeReplace() method.
The root DataObject is the object returned from do.getRootObject() where
do is the DataObject being serialized in a java.io.ObjectOutputStream.
When do.getContainer() == null then do is a root object.
The byte format for each DataObject in the stream is:
[0] [path] [root] // when do is not a root object
[1] [rootXML] // when do is a root object
where:
[0] is the byte 0, serialized using writeByte(0).
[1] is the byte 1, serialized using writeByte(1).
[path] is an SDO path expression from the root DataObject to the serialized
DataObject such that root.getDataObject(path) == do.
Serialized using writeUTF(path).
[root] is the root object serialized using writeObject(root).
[rootXML] is the GZip of the XML serialization of the root DataObject.
The XML serialization is the same as
XMLHelper.INSTANCE.save(root, "commonj.sdo", "dataObject", stream);
where stream is a GZIPOutputStream, length is the number of bytes
in the stream, and bytes are the contents of the stream.
Serialized using writeInt(length), write(bytes).
- See Also:
-
Nested Class Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
void
-
Constructor Details
-
ExternalizableDelegator
public ExternalizableDelegator() -
ExternalizableDelegator
-
-
Method Details
-
writeExternal
- Specified by:
writeExternal
in interfaceExternalizable
- Throws:
IOException
-
readExternal
- Specified by:
readExternal
in interfaceExternalizable
- Throws:
IOException
ClassNotFoundException
-
readResolve
- Throws:
ObjectStreamException
-