01: package org.apache.ojb.broker;
02:
03: /* Copyright 2002-2005 The Apache Software Foundation
04: *
05: * Licensed under the Apache License, Version 2.0 (the "License");
06: * you may not use this file except in compliance with the License.
07: * You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17:
18: import java.util.Iterator;
19:
20: /**
21: * OJB can handle java.util.Collection as well as user defined collection classes as collection attributes
22: * in persistent classes. In order to collaborate with the OJB mechanisms these collection must provide a minimum
23: * protocol as defined by this interface ManageableCollection.
24: * The methods have a prefix "ojb" that indicates that these methods are "technical" methods, required
25: * by OJB and not to be used in business code.
26: *
27: * @author Thomas Mahler
28: * @version $Id: ManageableCollection.java,v 1.7.2.1 2005/12/21 22:22:08 tomdz Exp $
29: */
30: public interface ManageableCollection extends java.io.Serializable {
31: /**
32: * Adds a single object to the Collection. This method is used during reading collection elements
33: * from the database. Thus it is safe to cast the object to the underlying element type of the
34: * collection.
35: *
36: * @param anObject The object to add
37: */
38: void ojbAdd(Object anObject);
39:
40: /**
41: * Adds another collection to this collection. Used in reading extents from the database.
42: * Thus it is safe to cast the given collection to this class.
43: *
44: * @param otherCollection The added collection
45: */
46: void ojbAddAll(ManageableCollection otherCollection);
47:
48: /**
49: * Returns an iterator over all elements in the collection. Used during store and delete
50: * operations. If the implementor does not return an iterator over ALL elements, OJB cannot
51: * store and delete all elements properly.
52: *
53: * @return The iterator
54: */
55: Iterator ojbIterator();
56:
57: /**
58: * A callback method to implement 'removal-aware' (track removed objects and delete
59: * them by its own) collection implementations.
60: *
61: * @param broker The persistence broker
62: */
63: public void afterStore(PersistenceBroker broker)
64: throws PersistenceBrokerException;
65: }
|