01: package org.apache.ojb.broker.accesslayer;
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.Collection;
19:
20: import org.apache.ojb.broker.metadata.ClassDescriptor;
21:
22: /**
23: * Interface for Relationship Prefetchers.
24: * Each Prefetcher handles a single Relationship (1:1 or 1:n)
25: *
26: * @author <a href="mailto:jbraeuchi@gmx.ch">Jakob Braeuchi</a>
27: * @version $Id: RelationshipPrefetcher.java,v 1.5.2.1 2005/12/21 22:22:58 tomdz Exp $
28: */
29: public interface RelationshipPrefetcher {
30: /**
31: * Returns the ClassDescriptor of the item Class
32: * @return ClassDescriptor
33: */
34: public ClassDescriptor getItemClassDescriptor();
35:
36: /**
37: * Prepare the Relationship for prefetch (ie: disable auto-retrieve)
38: */
39: public void prepareRelationshipSettings();
40:
41: /**
42: * Prefetch the Relationship for the owners (the 1 side of a 1:n)
43: */
44: public void prefetchRelationship(Collection owners);
45:
46: /**
47: * Restore the Relationship settings(ie: enable auto-retrieve)
48: */
49: public void restoreRelationshipSettings();
50:
51: /**
52: * The limit of objects loaded by one SQL query
53: */
54: public int getLimit();
55: }
|