javax.jdo.InstanceCallbacks Maven / Gradle / Ivy
Show all versions of jdo-api Show documentation
/*
* 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
*
* http://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 PersistenceCapable
class that provides callback methods for life
* cycle events implements this interface.
*
* For JDO 2.0, InstanceCallbacks
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 InstanceCallbacks
interface is preserved.
*
*
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.
*
*
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.
*
*
To implement this, the application programmer would implement
* jdoPostLoad
to put itself into the list of managed
* instances, and implement jdoPreClear
to remove itself from
* the list. With JDO 1.0, the domain class would be declared to implement
* InstanceCallbacks
. With JDO 2.0, the domain class
* would be declared to implement
* javax.jdo.listener.LoadCallback
and
* javax.jdo.listener.ClearCallback
.
*
*
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 {
}