]> source.dussan.org Git - vaadin-framework.git/blob
7160a52c0f997967593f672ba95270affe5c7055
[vaadin-framework.git] /
1 /*
2  * Copyright 2000-2021 Vaadin Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5  * use this file except in compliance with the License. You may obtain a copy of
6  * the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13  * License for the specific language governing permissions and limitations under
14  * the License.
15  */
16 package com.vaadin.v7.data.util.sqlcontainer.query;
17
18 import com.vaadin.v7.data.util.sqlcontainer.query.generator.StatementHelper;
19
20 /**
21  * FreeformStatementDelegate is an extension to FreeformQueryDelegate that
22  * provides definitions for methods that produce StatementHelper objects instead
23  * of basic query strings. This allows the FreeformQuery query delegate to use
24  * PreparedStatements instead of regular Statement when accessing the database.
25  *
26  * Due to the injection protection and other benefits of prepared statements, it
27  * is advisable to implement this interface instead of the FreeformQueryDelegate
28  * whenever possible.
29  *
30  * @deprecated As of 8.0, no replacement available.
31  */
32 @Deprecated
33 public interface FreeformStatementDelegate extends FreeformQueryDelegate {
34     /**
35      * Should return a new instance of StatementHelper that contains the query
36      * string and parameter values required to create a PreparedStatement. This
37      * method is responsible for gluing together the select query from the
38      * filters and the order by conditions if these are supported.
39      *
40      * @param offset
41      *            the first record (row) to fetch.
42      * @param limit
43      *            the limit of records (rows) to fetch. 0 means all records
44      *            starting from offset.
45      */
46     public StatementHelper getQueryStatement(int offset, int limit)
47             throws UnsupportedOperationException;
48
49     /**
50      * Should return a new instance of StatementHelper that contains the query
51      * string and parameter values required to create a PreparedStatement that
52      * will fetch the row count from the DB. Row count should be fetched using
53      * filters that are currently set to the QueryDelegate.
54      */
55     public StatementHelper getCountStatement()
56             throws UnsupportedOperationException;
57
58     /**
59      * Should return a new instance of StatementHelper that contains the query
60      * string and parameter values required to create a PreparedStatement used
61      * by the FreeformQuery.containsRowWithKeys() method. This is useful for
62      * cases when the default logic in said method is not enough to support more
63      * complex free form queries.
64      *
65      * @param keys
66      *            the values of the primary keys
67      * @throws UnsupportedOperationException
68      *             to use the default logic in FreeformQuery
69      */
70     public StatementHelper getContainsRowQueryStatement(Object... keys)
71             throws UnsupportedOperationException;
72 }