KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > relique > jdbc > csv > CsvResultSetMetaData


1 /**
2     Copyright (C) 2002-2003 Together
3
4     This library is free software; you can redistribute it and/or
5     modify it under the terms of the GNU Lesser General Public
6     License as published by the Free Software Foundation; either
7     version 2.1 of the License, or (at your option) any later version.
8
9     This library is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12     Lesser General Public License for more details.
13
14     You should have received a copy of the GNU Lesser General Public
15     License along with this library; if not, write to the Free Software
16     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
18 */

19
20 package org.relique.jdbc.csv;
21
22 import java.sql.ResultSetMetaData JavaDoc;
23 import java.sql.SQLException JavaDoc;
24 import java.sql.Types JavaDoc;
25 import java.util.Map JavaDoc;
26
27 /**
28  *This class implements the ResultSetMetaData interface for the CsvJdbc driver.
29  *
30  * @author Zoran Milakovic
31  */

32 public class CsvResultSetMetaData implements ResultSetMetaData JavaDoc
33 {
34   /** Default value for getColumnDisplaySize */
35   final static int DISPLAY_SIZE = 20;
36   /** Names of columns */
37   protected String JavaDoc[] columnNames;
38   /** Types of columns */
39   protected Map JavaDoc columnTypes;
40   /** Name of table */
41   protected String JavaDoc tableName;
42
43   /**Constructor for the CsvResultSetMetaData object
44    *
45    * @param tableName Name of table
46    * @param columnNames Names of columns in table
47    */

48   CsvResultSetMetaData(String JavaDoc tableName, String JavaDoc[] columnNames, Map JavaDoc columnTypes)
49   {
50     this.tableName = tableName;
51     this.columnNames = columnNames;
52     this.columnTypes = columnTypes;
53   }
54
55
56   /**Returns the name of the class for the specified column. Always returns
57    * String.
58    *
59    * @param column The column number
60    * @return The name of the class for the requested column
61    * @exception SQLException Thrown if there was a problem
62    */

63   public String JavaDoc getColumnClassName(int column) throws SQLException JavaDoc
64   {
65     return String JavaDoc.class.getName();
66   }
67
68
69   /** Returns the number of columns in the table.
70    *
71    * @return The number of columns in the table
72    * @exception SQLException Thrown if there is a a problem
73    */

74   public int getColumnCount() throws SQLException JavaDoc
75   {
76     return columnNames.length;
77   }
78
79
80   /** Returns the name of the catalog for the specified column. Returns "".
81    *
82    * @param column The column to get the catalog for
83    * @return The catalog name (always "")
84    * @exception SQLException Thrown if there is a problem
85    */

86   public String JavaDoc getCatalogName(int column) throws SQLException JavaDoc
87   {
88     return "";
89   }
90
91
92   /**Returns the display column size for the specified column. Always returns 20.
93    *
94    * @param column The column to get the size of
95    * @return The size of the requested column
96    * @exception SQLException Thrown if there is a problem.
97    */

98   public int getColumnDisplaySize(int column) throws SQLException JavaDoc
99   {
100     return DISPLAY_SIZE;
101   }
102
103
104   /**Gets the auto increment falg for the specfied column.
105    *
106    * @param column The column to get the flag for
107    * @return The autoIncrement flag (always false)
108    * @exception SQLException Thrown if there is a problem
109    */

110   public boolean isAutoIncrement(int column) throws SQLException JavaDoc
111   {
112     return false;
113   }
114
115
116   /**Returns the case sensitivity flag for the specfied column
117    *
118    * @param column The column to return the flag for
119    * @return The caseSensitive flag (always false)
120    * @exception SQLException Thrown if there is a problem
121    */

122   public boolean isCaseSensitive(int column) throws SQLException JavaDoc
123   {
124     //all columns are uppercase
125
return false;
126   }
127
128
129   /** Returns the searchable flag for the specified column
130    *
131    * @param column the column to return the flag form
132    * @return The searchable flag (always false)
133    * @exception SQLException Thrown if there is a problem
134    */

135   public boolean isSearchable(int column) throws SQLException JavaDoc
136   {
137     return true;
138   }
139
140
141   /**Returns the currency flag for the specified column
142    *
143    * @param column The column to get the flag for
144    * @return The currency flag (always false)
145    * @exception SQLException Thrown if there is a problem
146    */

147   public boolean isCurrency(int column) throws SQLException JavaDoc
148   {
149     return false;
150   }
151
152
153   /** Returns the nullable flag for the specfied column
154    *
155    * @param column The column to return the flag for
156    * @return The nullable flag (always unknown)
157    * @exception SQLException Thrown if there is a problem
158    */

159   public int isNullable(int column) throws SQLException JavaDoc
160   {
161     return ResultSetMetaData.columnNullableUnknown;
162   }
163
164
165   /**Returns the signed flag for the specfied column
166    *
167    * @param column The column to return the flag for
168    * @return The signed flag (always false)
169    * @exception SQLException Thrown if there is a problem
170    */

171   public boolean isSigned(int column) throws SQLException JavaDoc
172   {
173     return false;
174   }
175
176
177   /** Returns the label for the specified column
178    *
179    * @param column The column to get the label for
180    * @return the label for the specified column
181    * @exception SQLException Thrown if there is a problem
182    */

183   public String JavaDoc getColumnLabel(int column) throws SQLException JavaDoc
184   {
185     // SQL column numbers start at 1
186
return columnNames[column-1];
187   }
188
189
190   /**Returns the name of the specified column
191    *
192    * @param column The column to get the name of
193    * @return The name of the column
194    * @exception SQLException Thrown if there is a problem
195    */

196   public String JavaDoc getColumnName(int column) throws SQLException JavaDoc
197   {
198     // SQL column numbers start at 1
199
return columnNames[column-1];
200   }
201
202
203   /**Comments to be done
204    */

205   public String JavaDoc getSchemaName(int column) throws SQLException JavaDoc
206   {
207     return "";
208   }
209
210
211   /**Comments to be done
212    */

213   public int getPrecision(int column) throws SQLException JavaDoc
214   {
215     // All the fields are text, should this throw an SQLException?
216
return 0;
217   }
218
219
220   /**Comments to be done
221    */

222   public int getScale(int column) throws SQLException JavaDoc
223   {
224     // All the fields are text, should this throw an SQLException?
225
return 0;
226   }
227
228
229   /**Comments to be done
230    */

231   public String JavaDoc getTableName(int column) throws SQLException JavaDoc
232   {
233     return tableName;
234   }
235
236
237   /**Comments to be done
238    */

239   public int getColumnType(int column) throws SQLException JavaDoc
240   {
241     return Types.VARCHAR;
242   }
243
244
245   /**Comments to be done
246    */

247   public String JavaDoc getColumnTypeName(int column) throws SQLException JavaDoc
248   {
249       return (String JavaDoc)columnTypes.get(columnNames[column-1]);
250   }
251
252     
253   /**Comments to be done
254    */

255   public boolean isReadOnly(int column) throws SQLException JavaDoc
256   {
257     return true;
258   }
259
260
261   /**Comments to be done
262    */

263   public boolean isWritable(int column) throws SQLException JavaDoc
264   {
265     return false;
266   }
267
268
269   /**Comments to be done
270    */

271   public boolean isDefinitelyWritable(int column) throws SQLException JavaDoc
272   {
273     return false;
274   }
275
276 }
277
278
Popular Tags