KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > odmg > OQLQuery


1 package org.odmg;
2
3
4
5 /**
6
7  * The interface to an OQL query object.
8
9  * @author David Jordan (as Java Editor of the Object Data Management Group)
10
11  * @version ODMG 3.0
12
13  */

14
15
16
17 public interface OQLQuery
18
19 {
20
21
22
23     /**
24
25      * Create an OQL query from the string parameter.
26
27      * In order to execute a query, an <code>OQLQuery</code> object must be created
28
29      * by calling <code>Implementation.newOQLQuery</code>, then calling the
30
31      * <code>create</code> method with the query string.
32
33      * The <code>create</code> method might throw <code>QueryInvalidException</code>
34
35      * if the query could not be compiled properly. Some implementations may not want
36
37      * to compile the query before <code>execute</code> is called. In this case
38
39      * <code>QueryInvalidException</code> is thrown when <code>execute</code> is called.
40
41      * @param query An OQL query.
42
43      * @exception QueryInvalidException The query syntax is invalid.
44
45      */

46
47     public void create(String JavaDoc query) throws QueryInvalidException;
48
49
50
51     /**
52
53      * Bind a parameter to the query.
54
55      * A parameter is denoted in the query string passed to <code>create</code> by <i>$i</i>,
56
57      * where <i>i</i> is the rank of the parameter, beginning with 1.
58
59      * The parameters are set consecutively by calling this method <code>bind</code>.
60
61      * The <i>ith</i> variable is set by the <i>ith</i> call to the <code>bind</code> method.
62
63      * If any of the <i>$i</i> are not set by a call to <code>bind</code> at the point
64
65      * <code>execute</code> is called, <code>QueryParameterCountInvalidException</code> is thrown.
66
67      * The parameters must be objects, and the result is an <code>Object</code>.
68
69      * Objects must be used instead of primitive types (<code>Integer</code> instead
70
71      * of <code>int</code>) for passing the parameters.
72
73      * <p>
74
75      * If the parameter is of the wrong type,
76
77      * <code>QueryParameterTypeInvalidException</code> is thrown.
78
79      * After executing a query, the parameter list is reset.
80
81      * @parameter A value to be substituted for a query parameter.
82
83      * @exception QueryParameterCountInvalidException The number of calls to
84
85      * <code>bind</code> has exceeded the number of parameters in the query.
86
87      * @exception QueryParameterTypeInvalidException The type of the parameter does
88
89      * not correspond with the type of the parameter in the query.
90
91      */

92
93     public void bind(Object JavaDoc parameter) throws QueryParameterCountInvalidException,
94
95             QueryParameterTypeInvalidException;
96
97
98
99     /**
100
101      * Execute the query.
102
103      * After executing a query, the parameter list is reset.
104
105      * Some implementations may throw additional exceptions that are also derived
106
107      * from <code>ODMGException</code>.
108
109      * @return The object that represents the result of the query.
110
111      * The returned data, whatever its OQL type, is encapsulated into an object.
112
113      * For instance, when OQL returns an integer, the result is put into an
114
115      * <code>Integer</code> object. When OQL returns a collection (literal or object),
116
117      * the result is always a Java collection object of the same kind
118
119      * (for instance, a <code>DList</code>).
120
121      * @exception QueryException An exception has occurred while executing the query.
122
123      */

124
125     public Object JavaDoc execute() throws QueryException;
126
127 }
128
129
Popular Tags