Source code: org/objectstyle/cayenne/query/PrefetchSelectQuery.java
1 /* ====================================================================
2 *
3 * The ObjectStyle Group Software License, Version 1.0
4 *
5 * Copyright (c) 2002-2003 The ObjectStyle Group
6 * and individual authors of the software. All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 *
12 * 1. Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 *
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in
17 * the documentation and/or other materials provided with the
18 * distribution.
19 *
20 * 3. The end-user documentation included with the redistribution, if
21 * any, must include the following acknowlegement:
22 * "This product includes software developed by the
23 * ObjectStyle Group (http://objectstyle.org/)."
24 * Alternately, this acknowlegement may appear in the software itself,
25 * if and wherever such third-party acknowlegements normally appear.
26 *
27 * 4. The names "ObjectStyle Group" and "Cayenne"
28 * must not be used to endorse or promote products derived
29 * from this software without prior written permission. For written
30 * permission, please contact andrus@objectstyle.org.
31 *
32 * 5. Products derived from this software may not be called "ObjectStyle"
33 * nor may "ObjectStyle" appear in their names without prior written
34 * permission of the ObjectStyle Group.
35 *
36 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39 * DISCLAIMED. IN NO EVENT SHALL THE OBJECTSTYLE GROUP OR
40 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
42 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
43 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
44 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
46 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
47 * SUCH DAMAGE.
48 * ====================================================================
49 *
50 * This software consists of voluntary contributions made by many
51 * individuals on behalf of the ObjectStyle Group. For more
52 * information on the ObjectStyle Group, please see
53 * <http://objectstyle.org/>.
54 *
55 */package org.objectstyle.cayenne.query;
56
57 import org.objectstyle.cayenne.exp.Expression;
58 import org.objectstyle.cayenne.map.ObjEntity;
59 import org.objectstyle.cayenne.map.ObjRelationship;
60
61 /**
62 *
63 * @author Craig Miskell
64 */
65 public class PrefetchSelectQuery extends SelectQuery {
66 /** The query that provides the "root" objects of the prefetch*/
67 protected SelectQuery rootQuery;
68
69 /** The relationship path from root objects to the objects being prefetched*/
70 protected String prefetchPath;
71
72 protected ObjRelationship singleStepToManyRelationship=null;
73
74 /**
75 * Constructor for PrefetchSelectQuery.
76 */
77 public PrefetchSelectQuery() {
78 super();
79 }
80
81 /**
82 * Constructor for PrefetchSelectQuery.
83 * @param root
84 */
85 public PrefetchSelectQuery(ObjEntity root) {
86 super(root);
87 }
88
89 /**
90 * Constructor for PrefetchSelectQuery.
91 * @param root
92 * @param qualifier
93 */
94 public PrefetchSelectQuery(ObjEntity root, Expression qualifier) {
95 super(root, qualifier);
96 }
97
98 /**
99 * Constructor for PrefetchSelectQuery.
100 * @param rootClass
101 */
102 public PrefetchSelectQuery(Class rootClass) {
103 super(rootClass);
104 }
105
106 /**
107 * Constructor for PrefetchSelectQuery.
108 * @param rootClass
109 * @param qualifier
110 */
111 public PrefetchSelectQuery(Class rootClass, Expression qualifier) {
112 super(rootClass, qualifier);
113 }
114
115 /**
116 * Constructor for PrefetchSelectQuery.
117 * @param objEntityName
118 */
119 public PrefetchSelectQuery(String objEntityName) {
120 super(objEntityName);
121 }
122
123 /**
124 * Constructor for PrefetchSelectQuery.
125 * @param objEntityName
126 * @param qualifier
127 */
128 public PrefetchSelectQuery(String objEntityName, Expression qualifier) {
129 super(objEntityName, qualifier);
130 }
131
132 /**
133 * Returns the prefetchPath.
134 * @return String
135 */
136 public String getPrefetchPath() {
137 return prefetchPath;
138 }
139
140 /**
141 * Sets the prefetchPath.
142 * @param prefetchPath The prefetchPath to set
143 */
144 public void setPrefetchPath(String prefetchPath) {
145 this.prefetchPath = prefetchPath;
146 }
147
148 /**
149 * @return SelectQuery
150 */
151 public SelectQuery getRootQuery() {
152 return rootQuery;
153 }
154
155 /**
156 * Sets the rootQuery.
157 * @param rootQuery The rootQuery to set
158 */
159 public void setRootQuery(SelectQuery rootQuery) {
160 this.rootQuery = rootQuery;
161 }
162
163 /**
164 * @return ObjRelationship
165 */
166 public ObjRelationship getSingleStepToManyRelationship() {
167 return singleStepToManyRelationship;
168 }
169
170 /**
171 * Sets the singleStepToManyRelationship.
172 * @param singleStepToManyRelationship The singleStepToManyRelationship to set
173 */
174 public void setSingleStepToManyRelationship(ObjRelationship singleStepToManyRelationship) {
175 this.singleStepToManyRelationship = singleStepToManyRelationship;
176 }
177 }