| <!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_60) on Sat Jan 11 18:35:16 CET 2020 --> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <title>InstanceCallbacks (JDO API 3.1)</title> |
| <meta name="date" content="2020-01-11"> |
| <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="InstanceCallbacks (JDO API 3.1)"; |
| } |
| } |
| catch(err) { |
| } |
| //--> |
| </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="class-use/InstanceCallbacks.html">Use</a></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> |
| <div class="subNav"> |
| <ul class="navList"> |
| <li><a href="../../javax/jdo/FetchPlan.html" title="interface in javax.jdo"><span class="typeNameLink">Prev Class</span></a></li> |
| <li><a href="../../javax/jdo/JDOCanRetryException.html" title="class in javax.jdo"><span class="typeNameLink">Next Class</span></a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../index.html?javax/jdo/InstanceCallbacks.html" target="_top">Frames</a></li> |
| <li><a href="InstanceCallbacks.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_top"> |
| <li><a href="../../allclasses-noframe.html">All 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: </li> |
| <li>Nested | </li> |
| <li>Field | </li> |
| <li>Constr | </li> |
| <li>Method</li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li>Field | </li> |
| <li>Constr | </li> |
| <li>Method</li> |
| </ul> |
| </div> |
| <a name="skip.navbar.top"> |
| <!-- --> |
| </a></div> |
| <!-- ========= END OF TOP NAVBAR ========= --> |
| <!-- ======== START OF CLASS DATA ======== --> |
| <div class="header"> |
| <div class="subTitle">javax.jdo</div> |
| <h2 title="Interface InstanceCallbacks" class="title">Interface InstanceCallbacks</h2> |
| </div> |
| <div class="contentContainer"> |
| <div class="description"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <dl> |
| <dt>All Superinterfaces:</dt> |
| <dd><a href="../../javax/jdo/listener/ClearCallback.html" title="interface in javax.jdo.listener">ClearCallback</a>, <a href="../../javax/jdo/listener/DeleteCallback.html" title="interface in javax.jdo.listener">DeleteCallback</a>, <a href="../../javax/jdo/listener/LoadCallback.html" title="interface in javax.jdo.listener">LoadCallback</a>, <a href="../../javax/jdo/listener/StoreCallback.html" title="interface in javax.jdo.listener">StoreCallback</a></dd> |
| </dl> |
| <hr> |
| <br> |
| <pre>public interface <span class="typeNameLabel">InstanceCallbacks</span> |
| extends <a href="../../javax/jdo/listener/ClearCallback.html" title="interface in javax.jdo.listener">ClearCallback</a>, <a href="../../javax/jdo/listener/DeleteCallback.html" title="interface in javax.jdo.listener">DeleteCallback</a>, <a href="../../javax/jdo/listener/LoadCallback.html" title="interface in javax.jdo.listener">LoadCallback</a>, <a href="../../javax/jdo/listener/StoreCallback.html" title="interface in javax.jdo.listener">StoreCallback</a></pre> |
| <div class="block">A <code>PersistenceCapable</code> class that provides callback methods for life |
| cycle events implements this interface. |
| |
| <P>For JDO 2.0, <code>InstanceCallbacks</code> has been refactored to extend |
| four other interfaces, without changing any of the methods or semantics. |
| This allows fine-grained control over callbacks, for |
| example to allow a class to implement the load callback without |
| implementing any of the other callbacks. For backward compatibility |
| with JDO 1.0, the <code>InstanceCallbacks</code> interface is preserved. |
| |
| <P>Classes which include non-persistent fields whose values depend |
| on the values of persistent fields require callbacks on specific |
| JDO instance life cycle events in order to correctly populate the |
| values in these fields. |
| |
| <P>The callbacks might also be used if the persistent instances |
| need to be put into the runtime infrastructure of the application. |
| For example, a persistent instance might notify other instances |
| on changes to state. The persistent instance might be in a list of |
| managed instances. When the persistent instance is made hollow, |
| it can no longer generate change events, and the persistent |
| instance should be removed from the list of managed instances. |
| |
| <P>To implement this, the application programmer would implement |
| <code>jdoPostLoad</code> to put itself into the list of managed |
| instances, and implement <code>jdoPreClear</code> to remove itself from |
| the list. With JDO 1.0, the domain class would be declared to implement |
| <code>InstanceCallbacks</code>. With JDO 2.0, the domain class |
| would be declared to implement |
| <code>javax.jdo.listener.LoadCallback</code> and |
| <code>javax.jdo.listener.ClearCallback</code>. |
| |
| <P>Note that JDO does not manage the state of non-persistent |
| fields, and when a JDO instance transitions to hollow, JDO clears |
| the persistent fields. It is the programmer's responsibility to |
| clear non-persistent fields so that garbage collection of |
| referred instances can occur.</div> |
| <dl> |
| <dt><span class="simpleTagLabel">Since:</span></dt> |
| <dd>1.0</dd> |
| <dt><span class="simpleTagLabel">Version:</span></dt> |
| <dd>2.0</dd> |
| </dl> |
| </li> |
| </ul> |
| </div> |
| <div class="summary"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <!-- ========== METHOD SUMMARY =========== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="method.summary"> |
| <!-- --> |
| </a> |
| <h3>Method Summary</h3> |
| <ul class="blockList"> |
| <li class="blockList"><a name="methods.inherited.from.class.javax.jdo.listener.ClearCallback"> |
| <!-- --> |
| </a> |
| <h3>Methods inherited from interface javax.jdo.listener.<a href="../../javax/jdo/listener/ClearCallback.html" title="interface in javax.jdo.listener">ClearCallback</a></h3> |
| <code><a href="../../javax/jdo/listener/ClearCallback.html#jdoPreClear--">jdoPreClear</a></code></li> |
| </ul> |
| <ul class="blockList"> |
| <li class="blockList"><a name="methods.inherited.from.class.javax.jdo.listener.DeleteCallback"> |
| <!-- --> |
| </a> |
| <h3>Methods inherited from interface javax.jdo.listener.<a href="../../javax/jdo/listener/DeleteCallback.html" title="interface in javax.jdo.listener">DeleteCallback</a></h3> |
| <code><a href="../../javax/jdo/listener/DeleteCallback.html#jdoPreDelete--">jdoPreDelete</a></code></li> |
| </ul> |
| <ul class="blockList"> |
| <li class="blockList"><a name="methods.inherited.from.class.javax.jdo.listener.LoadCallback"> |
| <!-- --> |
| </a> |
| <h3>Methods inherited from interface javax.jdo.listener.<a href="../../javax/jdo/listener/LoadCallback.html" title="interface in javax.jdo.listener">LoadCallback</a></h3> |
| <code><a href="../../javax/jdo/listener/LoadCallback.html#jdoPostLoad--">jdoPostLoad</a></code></li> |
| </ul> |
| <ul class="blockList"> |
| <li class="blockList"><a name="methods.inherited.from.class.javax.jdo.listener.StoreCallback"> |
| <!-- --> |
| </a> |
| <h3>Methods inherited from interface javax.jdo.listener.<a href="../../javax/jdo/listener/StoreCallback.html" title="interface in javax.jdo.listener">StoreCallback</a></h3> |
| <code><a href="../../javax/jdo/listener/StoreCallback.html#jdoPreStore--">jdoPreStore</a></code></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="class-use/InstanceCallbacks.html">Use</a></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> |
| <div class="subNav"> |
| <ul class="navList"> |
| <li><a href="../../javax/jdo/FetchPlan.html" title="interface in javax.jdo"><span class="typeNameLink">Prev Class</span></a></li> |
| <li><a href="../../javax/jdo/JDOCanRetryException.html" title="class in javax.jdo"><span class="typeNameLink">Next Class</span></a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../index.html?javax/jdo/InstanceCallbacks.html" target="_top">Frames</a></li> |
| <li><a href="InstanceCallbacks.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_bottom"> |
| <li><a href="../../allclasses-noframe.html">All 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: </li> |
| <li>Nested | </li> |
| <li>Field | </li> |
| <li>Constr | </li> |
| <li>Method</li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li>Field | </li> |
| <li>Constr | </li> |
| <li>Method</li> |
| </ul> |
| </div> |
| <a name="skip.navbar.bottom"> |
| <!-- --> |
| </a></div> |
| <!-- ======== END OF BOTTOM NAVBAR ======= --> |
| <p class="legalCopy"><small>Copyright © 2005–2020 <a href="http://www.apache.org">Apache Software Foundation</a>. All rights reserved.</small></p> |
| </body> |
| </html> |