This project has retired. For details please refer to its Attic page.
QueryStatement xref

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   * http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.chemistry.opencmis.client.api;
20  
21  import java.net.URI;
22  import java.net.URL;
23  import java.util.Calendar;
24  import java.util.Date;
25  
26  import org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
27  
28  /**
29   * Query Statement.
30   * 
31   * <p>
32   * Example: <blockquote>
33   * 
34   * <pre>
35   * Calendar cal = ...
36   * Folder folder = ...
37   * 
38   * QueryStatement qs = session.createQueryStatement("SELECT ?, ? FROM ? WHERE ? > TIMESTAMP ? AND IN_FOLDER(?) OR ? IN (?)");
39   * 
40   * qs.setProperty(1, "cmis:document", "cmis:name");
41   * qs.setProperty(2, "cmis:document", "cmis:objectId");
42   * qs.setType(3, "cmis:document");
43   * 
44   * qs.setProperty(4, "cmis:document", "cmis:creationDate");
45   * qs.setDateTime(5, cal);
46   * 
47   * qs.setId(6, folder);
48   * 
49   * qs.setProperty(7, "cmis:document", "cmis:createdBy");
50   * qs.setString(8, "bob", "tom", "lisa"); 
51   * 
52   * String statement = qs.toQueryString();
53   * </pre>
54   * 
55   * </blockquote>
56   * </p>
57   */
58  public interface QueryStatement extends Cloneable {
59  
60      /**
61       * Sets the designated parameter to the query name of the given type id.
62       */
63      void setType(int parameterIndex, String typeId);
64  
65      /**
66       * Sets the designated parameter to the query name of the given type.
67       */
68      void setType(int parameterIndex, ObjectType type);
69  
70      /**
71       * Sets the designated parameter to the query name of the given property.
72       */
73      void setProperty(int parameterIndex, String typeId, String propertyId);
74  
75      /**
76       * Sets the designated parameter to the query name of the given property.
77       */
78      void setProperty(int parameterIndex, PropertyDefinition<?> propertyDefinition);
79  
80      /**
81       * Sets the designated parameter to the given number.
82       */
83      void setNumber(int parameterIndex, Number... num);
84  
85      /**
86       * Sets the designated parameter to the given string.
87       */
88      void setString(int parameterIndex, String... str);
89  
90      /**
91       * Sets the designated parameter to the given string. It does not escape
92       * backslashes ('\') in front of "%' and '_'.
93       */
94      void setStringLike(int parameterIndex, String str);
95  
96      /**
97       * Sets the designated parameter to the given object id.
98       */
99      void setId(int parameterIndex, ObjectId... id);
100 
101     /**
102      * Sets the designated parameter to the given URI.
103      */
104     void setUri(int parameterIndex, URI... uri);
105 
106     /**
107      * Sets the designated parameter to the given URL.
108      */
109     void setUrl(int parameterIndex, URL... url);
110 
111     /**
112      * Sets the designated parameter to the given boolean.
113      */
114     void setBoolean(int parameterIndex, boolean... bool);
115 
116     /**
117      * Sets the designated parameter to the given timestamp.
118      */
119     void setDateTime(int parameterIndex, Calendar... cal);
120 
121     /**
122      * Sets the designated parameter to the given timestamp.
123      */
124     void setDateTime(int parameterIndex, Date... date);
125 
126     /**
127      * Sets the designated parameter to the given timestamp.
128      */
129     void setDateTime(int parameterIndex, long... ms);
130 
131     /**
132      * Returns the query statement.
133      */
134     String toQueryString();
135 
136     /**
137      * Executes the query.
138      * 
139      * @see Session#query(String, boolean)
140      */
141     ItemIterable<QueryResult> query(boolean searchAllVersions);
142 
143     /**
144      * Executes the query.
145      * 
146      * @see Session#query(String, boolean, OperationContext)
147      */
148     ItemIterable<QueryResult> query(boolean searchAllVersions, OperationContext context);
149 }