• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements.  See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License.  You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 package javax.sql;
19 
20 import java.sql.ResultSetMetaData;
21 import java.sql.SQLException;
22 
23 /**
24  * An interface which provides facilities for getting information about the
25  * columns in a {@code RowSet}.
26  * <p>
27  * {@code RowSetMetaData} extends {@link java.sql.ResultSetMetaData}, adding new
28  * operations for carrying out value sets.
29  * <p>
30  * Application code would not normally call this interface directly. It would be
31  * called internally when {@code RowSet.execute} is called.
32  *
33  * @see RowSetInternal#setMetaData(RowSetMetaData)
34  */
35 public interface RowSetMetaData extends ResultSetMetaData {
36 
37     /**
38      * Sets automatic numbering for a specified column in the {@code RowSet}. If
39      * automatic numbering is on, the column is read-only. The default value for
40      * the auto increment parameter is {@code false}.
41      *
42      * @param columnIndex
43      *            the index number for the column; the first column's index is
44      *            1.
45      * @param autoIncrement
46      *            {@code true} to set automatic numbering on, {@code false} to
47      *            turn it off (default).
48      * @throws SQLException
49      *             if a problem occurs accessing the database.
50      */
setAutoIncrement(int columnIndex, boolean autoIncrement)51     public void setAutoIncrement(int columnIndex, boolean autoIncrement)
52             throws SQLException;
53 
54     /**
55      * Sets the case sensitive property for a specified column in the {@code
56      * RowSet}. The default is that the column is not case sensitive.
57      *
58      * @param columnIndex
59      *            the index number for the column; the first column's index is
60      *            1.
61      * @param caseSensitive
62      *            {@code true} to make the column case sensitive, {@code false}
63      *            to make it case insensitive (default).
64      * @throws SQLException
65      *             if a problem occurs accessing the database.
66      */
setCaseSensitive(int columnIndex, boolean caseSensitive)67     public void setCaseSensitive(int columnIndex, boolean caseSensitive)
68             throws SQLException;
69 
70     /**
71      * Sets the catalog name for a specified column in the {@code RowSet}.
72      *
73      * @param columnIndex
74      *            the index number for the column; the first column's index is
75      *            1.
76      * @param catalogName
77      *            the new catalog's name.
78      * @throws SQLException
79      *             if a problem occurs accessing the database.
80      */
setCatalogName(int columnIndex, String catalogName)81     public void setCatalogName(int columnIndex, String catalogName)
82             throws SQLException;
83 
84     /**
85      * Sets the number of columns contained in the row set.
86      *
87      * @param columnCount
88      *            the number of columns contained in the {@code RowSet}.
89      * @throws SQLException
90      *             if a problem occurs accessing the database.
91      */
setColumnCount(int columnCount)92     public void setColumnCount(int columnCount) throws SQLException;
93 
94     /**
95      * Sets the normal maximum width in characters for a specified column in the
96      * {@code RowSet}.
97      *
98      * @param columnIndex
99      *            the index number for the column; the first column's index is
100      *            1.
101      * @param displaySize
102      *            the normal maximum column width in characters.
103      * @throws SQLException
104      *             if a problem occurs accessing the database.
105      */
setColumnDisplaySize(int columnIndex, int displaySize)106     public void setColumnDisplaySize(int columnIndex, int displaySize)
107             throws SQLException;
108 
109     /**
110      * Sets the suggested name as label for the column contained in the {@code
111      * RowSet}. The label is an alias for printing and displaying purposes.
112      *
113      * @param columnIndex
114      *            the index number for the column; the first column's index is
115      *            1.
116      * @param theLabel
117      *            the alias name for the column.
118      * @throws SQLException
119      *             if a problem occurs accessing the database.
120      */
setColumnLabel(int columnIndex, String theLabel)121     public void setColumnLabel(int columnIndex, String theLabel)
122             throws SQLException;
123 
124     /**
125      * Sets the column name for a specified column in the {@code RowSet}.
126      *
127      * @param columnIndex
128      *            the index number for the column; the first column's index is
129      *            1.
130      * @param theColumnName
131      *            the column's label.
132      * @throws SQLException
133      *             if a problem occurs accessing the database.
134      */
setColumnName(int columnIndex, String theColumnName)135     public void setColumnName(int columnIndex, String theColumnName)
136             throws SQLException;
137 
138     /**
139      * Sets the SQL type for a specified column in the {@code RowSet}.
140      *
141      * @param columnIndex
142      *            the index number for the column; the first column's index is
143      *            1.
144      * @param theSQLType
145      *            the SQL Type, as defined by {@code java.sql.Types}.
146      * @throws SQLException
147      *             if a problem occurs accessing the database.
148      */
setColumnType(int columnIndex, int theSQLType)149     public void setColumnType(int columnIndex, int theSQLType)
150             throws SQLException;
151 
152     /**
153      * Sets the type name for a specified column in the {@code RowSet}, where
154      * the data type is specific to the data source.
155      *
156      * @param columnIndex
157      *            the index number for the column; the first column's index is
158      *            1.
159      * @param theTypeName
160      *            the SQL type name for the column.
161      * @throws SQLException
162      *             if a problem occurs accessing the database.
163      */
setColumnTypeName(int columnIndex, String theTypeName)164     public void setColumnTypeName(int columnIndex, String theTypeName)
165             throws SQLException;
166 
167     /**
168      * Sets whether a specified column is a currency value. The default value is
169      * {@code false}.
170      *
171      * @param columnIndex
172      *            the index number for the column; the first column's index is
173      *            1.
174      * @param isCurrency
175      *            {@code true} if the column should be treated as a currency
176      *            value, {@code false} if it should not be treated as a currency
177      *            value (default).
178      * @throws SQLException
179      *             if a problem occurs accessing the database.
180      */
setCurrency(int columnIndex, boolean isCurrency)181     public void setCurrency(int columnIndex, boolean isCurrency)
182             throws SQLException;
183 
184     /**
185      * Sets whether a specified column can contain SQL {@code NULL} values.
186      *
187      * @param columnIndex
188      *            the index number for the column; the first column's index is
189      *            1.
190      * @param nullability
191      *            an integer which is one of the following values:
192      *            <ul>
193      *            <li>{@code ResultSetMetaData.columnNoNulls}</li>
194      *            <li>{@code ResultSetMetaData.columnNullable}</li>
195      *            <li>{@code ResultSetMetaData.columnNullableUnknown}</li>
196      *            </ul>
197      *            <p>
198      *            The default value is {@code
199      *            ResultSetMetaData.columnNullableUnknown}.
200      * @throws SQLException
201      *             if a problem occurs accessing the database.
202      */
setNullable(int columnIndex, int nullability)203     public void setNullable(int columnIndex, int nullability)
204             throws SQLException;
205 
206     /**
207      * Sets the number of decimal digits for a specified column in the {@code
208      * RowSet}.
209      *
210      * @param columnIndex
211      *            the index number for the column; the first column's index is
212      *            1.
213      * @param thePrecision
214      *            the number of decimal digits.
215      * @throws SQLException
216      *             if a problem occurs accessing the database.
217      */
setPrecision(int columnIndex, int thePrecision)218     public void setPrecision(int columnIndex, int thePrecision)
219             throws SQLException;
220 
221     /**
222      * Declares how many decimal digits there should be after a decimal point
223      * for the column specified by {@code columnIndex}.
224      *
225      * @param columnIndex
226      *            the index number for the column; the first column's index is
227      *            1.
228      * @param theScale
229      *            the number of digits after the decimal point.
230      * @throws SQLException
231      *             if a problem occurs accessing the database.
232      */
setScale(int columnIndex, int theScale)233     public void setScale(int columnIndex, int theScale) throws SQLException;
234 
235     /**
236      * Sets the schema name for a specified column in the {@code RowSet}.
237      *
238      * @param columnIndex
239      *            the index number for the column; the first column's index is
240      *            1.
241      * @param theSchemaName
242      *            a {@code String} containing the schema name.
243      * @throws SQLException
244      *             if a problem occurs accessing the database.
245      */
setSchemaName(int columnIndex, String theSchemaName)246     public void setSchemaName(int columnIndex, String theSchemaName)
247             throws SQLException;
248 
249     /**
250      * Sets whether a specified column can be used in a search involving a
251      * {@code WHERE} clause. The default value is {@code false}.
252      *
253      * @param columnIndex
254      *            the index number for the column; the first column's index is
255      *            1.
256      * @param isSearchable
257      *            {@code true} of the column can be used in a {@code WHERE}
258      *            clause search, {@code false} otherwise.
259      * @throws SQLException
260      *             if a problem occurs accessing the database.
261      */
setSearchable(int columnIndex, boolean isSearchable)262     public void setSearchable(int columnIndex, boolean isSearchable)
263             throws SQLException;
264 
265     /**
266      * Sets if a specified column can contain signed numbers.
267      *
268      * @param columnIndex
269      *            the index number for the column; the first column's index is
270      *            1.
271      * @param isSigned
272      *            {@code true} if the column can contain signed numbers, {@code
273      *            false} otherwise.
274      * @throws SQLException
275      *             if a problem occurs accessing the database.
276      */
setSigned(int columnIndex, boolean isSigned)277     public void setSigned(int columnIndex, boolean isSigned)
278             throws SQLException;
279 
280     /**
281      * Sets the table name for a specified column in the {@code RowSet}.
282      *
283      * @param columnIndex
284      *            the index number for the column; the first column's index is
285      *            1.
286      * @param theTableName
287      *            the table name for the column.
288      * @throws SQLException
289      *             if a problem occurs accessing the database.
290      */
setTableName(int columnIndex, String theTableName)291     public void setTableName(int columnIndex, String theTableName)
292             throws SQLException;
293 }
294