]> source.dussan.org Git - vaadin-framework.git/blob
520ffd9f29a620d75b53610297c85fd6e2427cc1
[vaadin-framework.git] /
1 /*
2  * Copyright 2000-2018 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 java.io.Serializable;
19 import java.sql.Connection;
20 import java.sql.SQLException;
21 import java.util.List;
22
23 import com.vaadin.v7.data.Container.Filter;
24 import com.vaadin.v7.data.util.sqlcontainer.RowItem;
25
26 /**
27  * @deprecated As of 8.0, no replacement available.
28  */
29 @Deprecated
30 public interface FreeformQueryDelegate extends Serializable {
31     /**
32      * Should return the SQL query string to be performed. This method is
33      * responsible for gluing together the select query from the filters and the
34      * order by conditions if these are supported.
35      *
36      * @param offset
37      *            the first record (row) to fetch.
38      * @param limit
39      *            the limit of records (rows) to fetch. 0 means all records
40      *            starting from offset.
41      * @deprecated As of 6.7. Implement {@link FreeformStatementDelegate}
42      *             instead of {@link FreeformQueryDelegate}
43      */
44     @Deprecated
45     public String getQueryString(int offset, int limit)
46             throws UnsupportedOperationException;
47
48     /**
49      * Generates and executes a query to determine the current row count from
50      * the DB. Row count will be fetched using filters that are currently set to
51      * the QueryDelegate.
52      *
53      * @return row count
54      * @throws SQLException
55      * @deprecated As of 6.7. Implement {@link FreeformStatementDelegate}
56      *             instead of {@link FreeformQueryDelegate}
57      */
58     @Deprecated
59     public String getCountQuery() throws UnsupportedOperationException;
60
61     /**
62      * Sets the filters to apply when performing the SQL query. These are
63      * translated into a WHERE clause. Default filtering mode will be used.
64      *
65      * @param filters
66      *            The filters to apply.
67      * @throws UnsupportedOperationException
68      *             if the implementation doesn't support filtering.
69      */
70     public void setFilters(List<Filter> filters)
71             throws UnsupportedOperationException;
72
73     /**
74      * Sets the order in which to retrieve rows from the database. The result
75      * can be ordered by zero or more columns and each column can be in
76      * ascending or descending order. These are translated into an ORDER BY
77      * clause in the SQL query.
78      *
79      * @param orderBys
80      *            A list of the OrderBy conditions.
81      * @throws UnsupportedOperationException
82      *             if the implementation doesn't support ordering.
83      */
84     public void setOrderBy(List<OrderBy> orderBys)
85             throws UnsupportedOperationException;
86
87     /**
88      * Stores a row in the database. The implementation of this interface
89      * decides how to identify whether to store a new row or update an existing
90      * one.
91      *
92      * @param conn
93      *            the JDBC connection to use
94      * @param row
95      *            RowItem to be stored or updated.
96      * @throws UnsupportedOperationException
97      *             if the implementation is read only.
98      * @throws SQLException
99      */
100     public int storeRow(Connection conn, RowItem row)
101             throws UnsupportedOperationException, SQLException;
102
103     /**
104      * Removes the given RowItem from the database.
105      *
106      * @param conn
107      *            the JDBC connection to use
108      * @param row
109      *            RowItem to be removed
110      * @return true on success
111      * @throws UnsupportedOperationException
112      * @throws SQLException
113      */
114     public boolean removeRow(Connection conn, RowItem row)
115             throws UnsupportedOperationException, SQLException;
116
117     /**
118      * Generates an SQL Query string that allows the user of the FreeformQuery
119      * class to customize the query string used by the
120      * FreeformQuery.containsRowWithKeys() method. This is useful for cases when
121      * the logic in the containsRowWithKeys method is not enough to support more
122      * complex free form queries.
123      *
124      * @param keys
125      *            the values of the primary keys
126      * @throws UnsupportedOperationException
127      *             to use the default logic in FreeformQuery
128      * @deprecated As of 6.7. Implement {@link FreeformStatementDelegate}
129      *             instead of {@link FreeformQueryDelegate}
130      */
131     @Deprecated
132     public String getContainsRowQueryString(Object... keys)
133             throws UnsupportedOperationException;
134 }