Skip navigation links

Oracle Fusion Middleware Java API Reference for Oracle TopLink
11g Release 1 (11.1.1)

E28847-01


org.eclipse.persistence.sdo
Class SDOResolvable

java.lang.Object
  extended by org.eclipse.persistence.sdo.SDOResolvable


public class SDOResolvable
extends java.lang.Object

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.

Since:
Oracle TopLink 11.1.1.0.0

Field Summary
private  HelperContext aHelperContext
          hold the context containing all helpers so that we can preserve inter-helper relationships
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
private static long serialVersionUID
          Unique hash ID of this Externalizable class.
private  SDODataObject theSDODataObject
          member field holding DataObject being serialized/deserialized

 

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

serialVersionUID

private static final long serialVersionUID
Unique hash ID of this Externalizable class. Use [serialver org.eclipse.persistence.sdo.SDOResolvable]
See Also:
Constant Field Values

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

theSDODataObject

private transient SDODataObject theSDODataObject
member field holding DataObject being serialized/deserialized

aHelperContext

private transient HelperContext aHelperContext
hold the context containing all helpers so that we can preserve inter-helper relationships

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
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
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()
Throws:
java.io.IOException
java.lang.ClassNotFoundException

getHelperContext

public HelperContext getHelperContext()
Returns:

setHelperContext

public void setHelperContext(HelperContext helperContext)
Parameters:
helperContext -

Skip navigation links

Copyright © 1998, 2012, Oracle. All Rights Reserved.