| /* | |
| * Licensed to the Apache Software Foundation (ASF) under one or more | |
| * contributor license agreements. See the NOTICE file distributed with | |
| * this work for additional information regarding copyright ownership. | |
| * The ASF licenses this file to You under the Apache License, Version 2.0 | |
| * (the "License"); you may not use this file except in compliance with | |
| * the License. You may obtain a copy of the License at | |
| * | |
| * https://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software | |
| * distributed under the License is distributed on an "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| * See the License for the specific language governing permissions and | |
| * limitations under the License. | |
| */ | |
| /* | |
| * InstanceCallbacks.java | |
| * | |
| */ | |
| package javax.jdo; | |
| /** | |
| * 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. | |
| * | |
| * @since 1.0 | |
| * @version 2.0 | |
| */ | |
| public interface InstanceCallbacks | |
| extends javax.jdo.listener.ClearCallback, | |
| javax.jdo.listener.DeleteCallback, | |
| javax.jdo.listener.LoadCallback, | |
| javax.jdo.listener.StoreCallback {} |