KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > hsqldb > util > TransferHelper


1 /* Copyright (c) 2001-2005, The HSQL Development Group
2  * All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are met:
6  *
7  * Redistributions of source code must retain the above copyright notice, this
8  * list of conditions and the following disclaimer.
9  *
10  * Redistributions in binary form must reproduce the above copyright notice,
11  * this list of conditions and the following disclaimer in the documentation
12  * and/or other materials provided with the distribution.
13  *
14  * Neither the name of the HSQL Development Group nor the names of its
15  * contributors may be used to endorse or promote products derived from this
16  * software without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
22  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */

30
31
32 package org.hsqldb.util;
33
34 import java.sql.ResultSet JavaDoc;
35 import java.sql.ResultSetMetaData JavaDoc;
36 import java.sql.SQLException JavaDoc;
37 import java.util.Hashtable JavaDoc;
38
39 /**
40  * Base class for conversion from a different databases
41  *
42  * @author sqlbob@users
43  * @version 1.7.0
44  */

45 class TransferHelper {
46
47     protected TransferDb db;
48     protected Traceable tracer;
49     protected String JavaDoc sSchema;
50     protected JDBCTypes JDBCT;
51     private String JavaDoc quote;
52
53     TransferHelper() {
54
55         db = null;
56         tracer = null;
57         quote = "\'";
58         JDBCT = new JDBCTypes();
59     }
60
61     TransferHelper(TransferDb database, Traceable t, String JavaDoc q) {
62
63         db = database;
64         tracer = t;
65         quote = q;
66         JDBCT = new JDBCTypes();
67     }
68
69     void set(TransferDb database, Traceable t, String JavaDoc q) {
70
71         db = database;
72         tracer = t;
73         quote = q;
74     }
75
76     String JavaDoc formatIdentifier(String JavaDoc id) {
77
78         if (id == null) {
79             return id;
80         }
81
82         if (id.equals("")) {
83             return id;
84         }
85
86         if (!Character.isLetter(id.charAt(0)) || (id.indexOf(' ') != -1)) {
87             return (quote + id + quote);
88         }
89
90         return id;
91     }
92
93     void setSchema(String JavaDoc _Schema) {
94         sSchema = _Schema;
95     }
96
97     String JavaDoc formatName(String JavaDoc t) {
98
99         String JavaDoc Name = "";
100
101         if ((sSchema != null) && (sSchema.length() > 0)) {
102             Name = sSchema + ".";
103         }
104
105         Name += formatIdentifier(t);
106
107         return Name;
108     }
109
110     int convertFromType(int type) {
111         return (type);
112     }
113
114     int convertToType(int type) {
115         return (type);
116     }
117
118     Hashtable JavaDoc getSupportedTypes() {
119
120         Hashtable JavaDoc hTypes = new Hashtable JavaDoc();
121
122         if (db != null) {
123             try {
124                 ResultSet JavaDoc result = db.meta.getTypeInfo();
125
126                 while (result.next()) {
127                     Integer JavaDoc intobj = new Integer JavaDoc(result.getShort(2));
128
129                     if (hTypes.get(intobj) == null) {
130                         try {
131                             hTypes.put(intobj,
132                                        JDBCT.toString(result.getShort(2)));
133                         } catch (Exception JavaDoc e) {}
134                     }
135                 }
136
137                 result.close();
138             } catch (SQLException JavaDoc e) {}
139         }
140
141         if (hTypes.isEmpty()) {
142             hTypes = JDBCT.getHashtable();
143         }
144
145         return hTypes;
146     }
147
148     String JavaDoc fixupColumnDefRead(TransferTable t, ResultSetMetaData JavaDoc meta,
149                               String JavaDoc columnType, ResultSet JavaDoc columnDesc,
150                               int columnIndex) throws SQLException JavaDoc {
151         return (columnType);
152     }
153
154     String JavaDoc fixupColumnDefWrite(TransferTable t, ResultSetMetaData JavaDoc meta,
155                                String JavaDoc columnType, ResultSet JavaDoc columnDesc,
156                                int columnIndex) throws SQLException JavaDoc {
157         return (columnType);
158     }
159
160     boolean needTransferTransaction() {
161         return (false);
162     }
163
164     Object JavaDoc convertColumnValue(Object JavaDoc value, int column, int type) {
165         return (value);
166     }
167
168     void beginDataTransfer() {}
169
170     void endDataTransfer() {}
171
172     String JavaDoc fixupColumnDefRead(String JavaDoc aTableName, ResultSetMetaData JavaDoc meta,
173                               String JavaDoc columnType, ResultSet JavaDoc columnDesc,
174                               int columnIndex) throws SQLException JavaDoc {
175         return columnType;
176     }
177
178     String JavaDoc fixupColumnDefWrite(String JavaDoc aTableName, ResultSetMetaData JavaDoc meta,
179                                String JavaDoc columnType, ResultSet JavaDoc columnDesc,
180                                int columnIndex) throws SQLException JavaDoc {
181         return columnType;
182     }
183 }
184
Popular Tags