<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_252) on Thu Apr 08 02:07:19 UTC 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SDOResolvable (EclipseLink 3.0.1, API Reference)</title>
<meta name="date" content="2021-04-08">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="SDOResolvable (EclipseLink 3.0.1, API Reference)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage">EclipseLink 3.0.1, API Reference</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/eclipse/persistence/sdo/SDOProperty.html" title="class in org.eclipse.persistence.sdo"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/eclipse/persistence/sdo/SDOSequence.html" title="class in org.eclipse.persistence.sdo"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/persistence/sdo/SDOResolvable.html" target="_top">Frames</a></li>
<li><a href="SDOResolvable.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.persistence.sdo</div>
<h2 title="Class SDOResolvable" class="title">Class SDOResolvable</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.persistence.sdo.SDOResolvable</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>commonj.sdo.impl.ExternalizableDelegator.Resolvable, <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Externalizable.html?is-external=true" title="class or interface in java.io">Externalizable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">SDOResolvable</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements commonj.sdo.impl.ExternalizableDelegator.Resolvable</pre>
<div class="block">INTERNAL:
 <p><b>Purpose:</b></p>
 This class performs serialization/deserialization of an SDODataObject.
 <p><b>Responsibilities:</b></p>
 <ul>
 <li>Provide/override default Java serializable access to a DataObject</li>
 </ul>
 Serialization Process

 <p>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.

 <p>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).

 <p>There are 3 levels of serialization control.
 <ul><li><i>1) Default Serialization</i><br>
     Here we make the class implement Serializable, mark non-serializable fields as
 transient and implement no new functions.</li>
 <li><i>2) Partial custom Serialization</i><br>
     Here we make the class implement Serializable and implement the optional functions
 writeObject and readObject to handle custom serialization of the current class while
 using the default serialization for super and subtypes.</li>

 <li><b>3) Fully customized Serialization - current implementation</b>.<br>
     Here we make the class implement Externalizable and implement the functions
 readResolve, writeReplace, readExternal, writeExternal.
 Supertypes and subtypes must also implement these functions.</li>
 </ul>
 <p>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.

 <ul><li><b>Security:</b><br>
     The following public functions expose a data replacement vulnerability where an
     outside client can gain access and modify their constants.
     We may need to wrap the GZIP streams in some sort of encryption when we are not
     using HTTPS or SSL/TLS on the wire.

 public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
 public void writeExternal(ObjectOutput out) throws IOException</li>
 <li><b>Concurrency:</b><br>
     Avoid synchronized classes that will queue threaded clients such as Enumeration, Vector etc.
 We need to discuss how this API will be used by containers like an EJB container that can
 invoke multithreaded clients.</li>

     <li><b>Scalability:</b><br></li>
     <li>XML Serialization Size is 4GB:<br>
     There is a limitation set by the SDO Specification on the size of the DataObject serialization.
     According to the spec we must use an integer to define the size of the GZIP buffer that is serialized.
     This size is limited to +/- 2GB.  This limitation is actually set by the JVM itself because a
     call to buffer.length returns a signed 32 bit integer.
 <p></li>
 <li><b>Performance:</b><br>
    Using custom serialization via the Externalizable interface is 30% faster than the
    default java serialization because the JVM does not need to discover the class definition.</li>
 </ul></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../serialized-form.html#org.eclipse.persistence.sdo.SDOResolvable">Serialized Form</a></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Oracle TopLink 11.1.1.0.0</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/sdo/SDOResolvable.html#DEFAULT_ROOT_ELEMENT_NAME">DEFAULT_ROOT_ELEMENT_NAME</a></span></code>
<div class="block">Root element name for all DataObjects undergoing serialization = sdo:dataObject</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/sdo/SDOResolvable.html#SDO_HELPER_CONTEXT_ID_IDENTIFIER">SDO_HELPER_CONTEXT_ID_IDENTIFIER</a></span></code>
<div class="block">root object with helper context id identifier</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/sdo/SDOResolvable.html#SDO_INTERNAL_OBJECT_IDENTIFIER">SDO_INTERNAL_OBJECT_IDENTIFIER</a></span></code>
<div class="block">internal object serialization type identifier = 0</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/sdo/SDOResolvable.html#SDO_ROOT_OBJECT_IDENTIFIER">SDO_ROOT_OBJECT_IDENTIFIER</a></span></code>
<div class="block">root object serialization type identifier = 1</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/sdo/SDOResolvable.html#SDOResolvable--">SDOResolvable</a></span>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/sdo/SDOResolvable.html#SDOResolvable-commonj.sdo.helper.HelperContext-">SDOResolvable</a></span>(commonj.sdo.helper.HelperContext&nbsp;aContext)</code>
<div class="block">Default constructor for deserialization</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/sdo/SDOResolvable.html#SDOResolvable-java.lang.Object-commonj.sdo.helper.HelperContext-">SDOResolvable</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;target,
             commonj.sdo.helper.HelperContext&nbsp;aContext)</code>
<div class="block">Constructor for serialization</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>commonj.sdo.helper.HelperContext</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/sdo/SDOResolvable.html#getHelperContext--">getHelperContext</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/sdo/SDOResolvable.html#readExternal-java.io.ObjectInput-">readExternal</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/ObjectInput.html?is-external=true" title="class or interface in java.io">ObjectInput</a>&nbsp;objectInput)</code>
<div class="block">Purpose: Deserialize from an ObjectInputStream into an SDODataObject This
 function is mandated by the Externalizable interface.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/sdo/SDOResolvable.html#readResolve--">readResolve</a></span>()</code>
<div class="block">Purpose: This function is called after readExternal to return the
 recently deserialized object retrieved from the ObjectInputStream.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/sdo/SDOResolvable.html#setHelperContext-commonj.sdo.helper.HelperContext-">setHelperContext</a></span>(commonj.sdo.helper.HelperContext&nbsp;helperContext)</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/persistence/sdo/SDOResolvable.html#writeExternal-java.io.ObjectOutput-">writeExternal</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/ObjectOutput.html?is-external=true" title="class or interface in java.io">ObjectOutput</a>&nbsp;objectOutput)</code>
<div class="block">Purpose: Serialize an SDODataObject to an ObjectOutputStream This
 function is mandated by the Externalizable interface.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a name="DEFAULT_ROOT_ELEMENT_NAME">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_ROOT_ELEMENT_NAME</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DEFAULT_ROOT_ELEMENT_NAME</pre>
<div class="block">Root element name for all DataObjects undergoing serialization = sdo:dataObject</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.eclipse.persistence.sdo.SDOResolvable.DEFAULT_ROOT_ELEMENT_NAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SDO_HELPER_CONTEXT_ID_IDENTIFIER">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SDO_HELPER_CONTEXT_ID_IDENTIFIER</h4>
<pre>public static final&nbsp;int SDO_HELPER_CONTEXT_ID_IDENTIFIER</pre>
<div class="block">root object with helper context id identifier</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.eclipse.persistence.sdo.SDOResolvable.SDO_HELPER_CONTEXT_ID_IDENTIFIER">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SDO_ROOT_OBJECT_IDENTIFIER">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SDO_ROOT_OBJECT_IDENTIFIER</h4>
<pre>public static final&nbsp;int SDO_ROOT_OBJECT_IDENTIFIER</pre>
<div class="block">root object serialization type identifier = 1</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.eclipse.persistence.sdo.SDOResolvable.SDO_ROOT_OBJECT_IDENTIFIER">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SDO_INTERNAL_OBJECT_IDENTIFIER">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SDO_INTERNAL_OBJECT_IDENTIFIER</h4>
<pre>public static final&nbsp;int SDO_INTERNAL_OBJECT_IDENTIFIER</pre>
<div class="block">internal object serialization type identifier = 0</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.eclipse.persistence.sdo.SDOResolvable.SDO_INTERNAL_OBJECT_IDENTIFIER">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="SDOResolvable--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SDOResolvable</h4>
<pre>public&nbsp;SDOResolvable()</pre>
</li>
</ul>
<a name="SDOResolvable-commonj.sdo.helper.HelperContext-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SDOResolvable</h4>
<pre>public&nbsp;SDOResolvable(commonj.sdo.helper.HelperContext&nbsp;aContext)</pre>
<div class="block">Default constructor for deserialization</div>
</li>
</ul>
<a name="SDOResolvable-java.lang.Object-commonj.sdo.helper.HelperContext-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SDOResolvable</h4>
<pre>public&nbsp;SDOResolvable(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;target,
                     commonj.sdo.helper.HelperContext&nbsp;aContext)</pre>
<div class="block">Constructor for serialization</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="readResolve--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readResolve</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;readResolve()
                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/ObjectStreamException.html?is-external=true" title="class or interface in java.io">ObjectStreamException</a></pre>
<div class="block">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</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>readResolve</code>&nbsp;in interface&nbsp;<code>commonj.sdo.impl.ExternalizableDelegator.Resolvable</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/ObjectStreamException.html?is-external=true" title="class or interface in java.io">ObjectStreamException</a></code></dd>
</dl>
</li>
</ul>
<a name="writeExternal-java.io.ObjectOutput-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeExternal</h4>
<pre>public&nbsp;void&nbsp;writeExternal(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/ObjectOutput.html?is-external=true" title="class or interface in java.io">ObjectOutput</a>&nbsp;objectOutput)
                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">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</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Externalizable.html?is-external=true#writeExternal-java.io.ObjectOutput-" title="class or interface in java.io">writeExternal</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Externalizable.html?is-external=true" title="class or interface in java.io">Externalizable</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="readExternal-java.io.ObjectInput-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readExternal</h4>
<pre>public&nbsp;void&nbsp;readExternal(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/ObjectInput.html?is-external=true" title="class or interface in java.io">ObjectInput</a>&nbsp;objectInput)
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></pre>
<div class="block">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()</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Externalizable.html?is-external=true#readExternal-java.io.ObjectInput-" title="class or interface in java.io">readExternal</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Externalizable.html?is-external=true" title="class or interface in java.io">Externalizable</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a name="getHelperContext--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHelperContext</h4>
<pre>public&nbsp;commonj.sdo.helper.HelperContext&nbsp;getHelperContext()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="setHelperContext-commonj.sdo.helper.HelperContext-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setHelperContext</h4>
<pre>public&nbsp;void&nbsp;setHelperContext(commonj.sdo.helper.HelperContext&nbsp;helperContext)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>helperContext</code> - </dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage">EclipseLink 3.0.1, API Reference</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/eclipse/persistence/sdo/SDOProperty.html" title="class in org.eclipse.persistence.sdo"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/eclipse/persistence/sdo/SDOSequence.html" title="class in org.eclipse.persistence.sdo"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/persistence/sdo/SDOResolvable.html" target="_top">Frames</a></li>
<li><a href="SDOResolvable.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="http://www.eclipse.org/eclipselink">Eclipse.org - EclipseLink Project</a>. All rights reserved.</small></p>
</body>
</html>
