EclipseLink 2.2.0, build 'v20110202-r8913' API Reference

org.eclipse.persistence.sdo
Class SDOResolvable

java.lang.Object
  extended by org.eclipse.persistence.sdo.SDOResolvable
All Implemented Interfaces:
ExternalizableDelegator.Resolvable, java.io.Externalizable, java.io.Serializable

public class SDOResolvable
extends java.lang.Object
implements ExternalizableDelegator.Resolvable

INTERNAL:

Purpose:

This class performs serialization/deserialization of an SDODataObject.

Responsibilities:

Serialization Process

Serialization and de-serialization of objects occurs during DAS transactions, Web Service transactions in the SOAP envelope, EJB container passivation, web container session saving or directly in an application using the function ObjectOutputStream.writeObject(Object). The Serializable and Externalizable framework handles automatic or user defined reading/writing of streams depending on which interface functions are realized in the implementing classes.

The Serializable interface has no operations - therefore a class that implements it needs to add no additional functionality. Why do this? - For security. The security manager in the JVM will only serialize objects at runtime if they are flagged as Serializable (or Externalizable) so that by default java classes do not expose themselves to serialization. (See p49 of Java Security 2nd edition).

There are 3 levels of serialization control.

The SDO 2.01 specification details the high level structure of the serialization format on page 64, section 6 - Java Serialization of DataObjects. The process will involve gzip serialization of the xml data with UTF representation of the Xpath address of the current DataObject inside the entire tree along with its identification as root/no-root in binary 1/0 format as follows.

See Also:
Serialized Form
Since:
Oracle TopLink 11.1.1.0.0

Field Summary
static java.lang.String DEFAULT_ROOT_ELEMENT_NAME
          Root element name for all DataObjects undergoing serialization = sdo:dataObject
static int SDO_HELPER_CONTEXT_ID_IDENTIFIER
          root object with helper context id identifier
static int SDO_INTERNAL_OBJECT_IDENTIFIER
          internal object serialization type identifier = 0
static int SDO_ROOT_OBJECT_IDENTIFIER
          root object serialization type identifier = 1
 
Constructor Summary
SDOResolvable()
           
SDOResolvable(HelperContext aContext)
          Default constructor for deserialization
SDOResolvable(java.lang.Object target, HelperContext aContext)
          Constructor for serialization
 
Method Summary
 HelperContext getHelperContext()
           
 void readExternal(java.io.ObjectInput objectInput)
          Purpose: Deserialize from an ObjectInputStream into an SDODataObject This function is mandated by the Externalizable interface.
 java.lang.Object readResolve()
          Purpose: This function is called after readExternal to return the recently deserialized object retrieved from the ObjectInputStream.
 void setHelperContext(HelperContext helperContext)
           
 void writeExternal(java.io.ObjectOutput objectOutput)
          Purpose: Serialize an SDODataObject to an ObjectOutputStream This function is mandated by the Externalizable interface.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_ROOT_ELEMENT_NAME

public static final java.lang.String DEFAULT_ROOT_ELEMENT_NAME
Root element name for all DataObjects undergoing serialization = sdo:dataObject

See Also:
Constant Field Values

SDO_HELPER_CONTEXT_ID_IDENTIFIER

public static final int SDO_HELPER_CONTEXT_ID_IDENTIFIER
root object with helper context id identifier

See Also:
Constant Field Values

SDO_ROOT_OBJECT_IDENTIFIER

public static final int SDO_ROOT_OBJECT_IDENTIFIER
root object serialization type identifier = 1

See Also:
Constant Field Values

SDO_INTERNAL_OBJECT_IDENTIFIER

public static final int SDO_INTERNAL_OBJECT_IDENTIFIER
internal object serialization type identifier = 0

See Also:
Constant Field Values
Constructor Detail

SDOResolvable

public SDOResolvable()

SDOResolvable

public SDOResolvable(HelperContext aContext)
Default constructor for deserialization


SDOResolvable

public SDOResolvable(java.lang.Object target,
                     HelperContext aContext)
Constructor for serialization

Method Detail

readResolve

public java.lang.Object readResolve()
                             throws java.io.ObjectStreamException
Purpose: This function is called after readExternal to return the recently deserialized object retrieved from the ObjectInputStream. Here there is an opportunity to replace the object with a Singleton version

Specified by:
readResolve in interface ExternalizableDelegator.Resolvable
Throws:
java.io.ObjectStreamException

writeExternal

public void writeExternal(java.io.ObjectOutput objectOutput)
                   throws java.io.IOException
Purpose: Serialize an SDODataObject to an ObjectOutputStream This function is mandated by the Externalizable interface. It writes binary data in the same order as was will be read back in readExternal(). Prerequisites: An object has already been constructed and associated with the theSDODataObject member

Specified by:
writeExternal in interface java.io.Externalizable
Throws:
java.io.IOException

readExternal

public void readExternal(java.io.ObjectInput objectInput)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
Purpose: Deserialize from an ObjectInputStream into an SDODataObject This function is mandated by the Externalizable interface. It reads back binary data in the same order as was written in writeExternal(). An object has already been constructed with the no-arg constructor before this function fills in the member fields. The deserialized object will be returned later in a call from the ObjectInputStream to readResolve()

Specified by:
readExternal in interface java.io.Externalizable
Throws:
java.io.IOException
java.lang.ClassNotFoundException

getHelperContext

public HelperContext getHelperContext()
Returns:

setHelperContext

public void setHelperContext(HelperContext helperContext)
Parameters:
helperContext -

EclipseLink 2.2.0, build 'v20110202-r8913' API Reference