Statistics
| Revision:

root / trunk / libraries / libFMap_dataDB / src / org / gvsig / data / datastores / vectorial / db / jdbc / postgresqlbin / XTypes.java @ 20920

History | View | Annotate | Download (6.48 KB)

1
/*
2
 * Created on 26-oct-2005
3
 *
4
 * gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
5
 *
6
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
7
 *
8
 * This program is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU General Public License
10
 * as published by the Free Software Foundation; either version 2
11
 * of the License, or (at your option) any later version.
12
 *
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 * GNU General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU General Public License
19
 * along with this program; if not, write to the Free Software
20
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
21
 *
22
 * For more information, contact:
23
 *
24
 *  Generalitat Valenciana
25
 *   Conselleria d'Infraestructures i Transport
26
 *   Av. Blasco Ib??ez, 50
27
 *   46010 VALENCIA
28
 *   SPAIN
29
 *
30
 *      +34 963862235
31
 *   gvsig@gva.es
32
 *      www.gvsig.gva.es
33
 *
34
 *    or
35
 *
36
 *   IVER T.I. S.A
37
 *   Salamanca 50
38
 *   46005 Valencia
39
 *   Spain
40
 *
41
 *   +34 963163400
42
 *   dac@iver.es
43
 */
44
package org.gvsig.data.datastores.vectorial.db.jdbc.postgresqlbin;
45

    
46
import java.sql.Types;
47

    
48
public class XTypes {
49
        public final static double NUM_msSecs2000 = 9.466776E11;
50
        public final static int POINT2D = 100;
51

    
52
        public final static int LINE2D = 101;
53

    
54
        public final static int POLYGON2D = 102;
55

    
56
        public final static int MULTI2D = 103;
57

    
58
        public static String fieldTypeToString(int fieldType) {
59
                String aux = "text"; // Por defecto.
60
                switch (fieldType) {
61
                case Types.SMALLINT:
62
                        aux = "integer";
63
                        break;
64
                case Types.INTEGER:
65
                        aux = "integer";
66
                        break;
67
                case Types.BIGINT:
68
                        aux = "integer";
69
                        break;
70
                case Types.BOOLEAN:
71
                        aux = "boolean";
72
                        break;
73
                case Types.DECIMAL:
74
                        aux = "numeric";
75
                        break;
76
                case Types.DOUBLE:
77
                        aux = "float8";
78
                        break;
79
                case Types.FLOAT:
80
                        aux = "float";
81
                        break;
82
                case Types.CHAR:
83
                        aux = "char";
84
                        break;
85
                case Types.VARCHAR:
86
                        aux = "text";
87
                        break;
88
                case Types.LONGVARCHAR:
89
                        aux = "text";
90
                        break;
91

    
92
                case POINT2D:
93
                        aux = "POINT";
94
                        break;
95
                case LINE2D:
96
                        aux = "MULTILINESTRING";
97
                        break;
98
                case POLYGON2D:
99
                        aux = "MULTIPOLYGON";
100
                        break;
101
                case MULTI2D:
102
                        aux = "GEOMETRY";
103
                        break;
104

    
105
                }
106

    
107
                return aux;
108
        }
109

    
110
//        /**
111
//         * @param fieldId
112
//         * @throws SQLException
113
//         */
114
//        public static Value getValue(ResultSet rs, int fieldId) throws SQLException {
115
//                byte[] data;
116
//                data = rs.getBytes(fieldId);
117
//                Value val = null;
118
//                ResultSetMetaData metaData = rs.getMetaData();
119
//                if (data == null)
120
//                        val = ValueFactory.createNullValue();
121
//                else {
122
//                        ByteBuffer buf = ByteBuffer.wrap(data);
123
//                        if (metaData.getColumnType(fieldId) == Types.VARCHAR) {
124
//                                val = ValueFactory.createValue(rs.getString(fieldId));
125
//                        }else if (metaData.getColumnType(fieldId) == Types.FLOAT) {
126
//                                val = ValueFactory.createValue(buf.getFloat());
127
//                        }else if (metaData.getColumnType(fieldId) == Types.DOUBLE) {
128
//                                val = ValueFactory.createValue(buf.getDouble());
129
//                        }else if (metaData.getColumnType(fieldId) == Types.INTEGER){
130
//                                val = ValueFactory.createValue(buf.getInt());
131
//                        }else if (metaData.getColumnType(fieldId) == Types.SMALLINT){
132
//                                val = ValueFactory.createValue(buf.getShort());
133
//                        }else if (metaData.getColumnType(fieldId) == Types.TINYINT){
134
//                                val = ValueFactory.createValue(buf.getShort());
135
//                        }else if (metaData.getColumnType(fieldId) == Types.BIGINT){
136
//                                val = ValueFactory.createValue(buf.getLong());
137
//                        }else if (metaData.getColumnType(fieldId) == Types.BIT || metaData.getColumnType(fieldId) == Types.BOOLEAN ){
138
//                                val = ValueFactory.createValue(rs.getBoolean(fieldId));
139
//                        }else if (metaData.getColumnType(fieldId) == Types.DATE){
140
//                                val = ValueFactory.createValue(rs.getDate(fieldId));
141
//                        }else if (metaData.getColumnType(fieldId) == Types.TIME){
142
//                                val = ValueFactory.createValue(rs.getTime(fieldId));
143
//                        }else if (metaData.getColumnType(fieldId) == Types.TIMESTAMP){
144
//                                val = ValueFactory.createValue(rs.getTimestamp(fieldId));
145
//                        }
146
//
147
//                }
148
//                return val;
149
//        }
150
//
151
//        public static void updateValue(ResultSet rs, int fieldId_ceroBased,
152
//                        Value val) throws SQLException {
153
//                if (val instanceof NullValue)
154
//                        return;
155
//                // byte[] data;
156
//                ResultSetMetaData metaData = rs.getMetaData();
157
//                int fieldId = fieldId_ceroBased + 1;
158
//                // System.out.println("EScritrua: " + metaData.isDefinitelyWritable(1));
159
//                switch (val.getSQLType()) {
160
//                case Types.VARCHAR:
161
//                case Types.LONGVARCHAR:
162
//                        // Para evitar escribir en el campo geometria:
163
//                        if (metaData.getColumnType(fieldId) == Types.OTHER)
164
//                                return;
165
//                        StringValue valStr = (StringValue) val;
166
//                        rs.updateString(fieldId, valStr.getValue());
167
//                        // System.out.println("Field " + fieldId + " :" +
168
//                        // metaData.getColumnTypeName(fieldId));
169
//                        break;
170
//                case Types.FLOAT:
171
//                        FloatValue vFloat = (FloatValue) val;
172
//                        rs.updateFloat(fieldId, vFloat.getValue());
173
//                        break;
174
//                case Types.DOUBLE:
175
//                        DoubleValue vDouble = (DoubleValue) val;
176
//                        rs.updateDouble(fieldId, vDouble.getValue());
177
//                        break;
178
//                case Types.INTEGER:
179
//                        IntValue vInt = (IntValue) val;
180
//                        rs.updateInt(fieldId, vInt.getValue());
181
//                case Types.SMALLINT:
182
//                        ShortValue vShort = (ShortValue) val;
183
//                        rs.updateShort(fieldId, vShort.shortValue());
184
//                        break;
185
//                case Types.BIGINT:
186
//                        LongValue vLong = (LongValue) val;
187
//                        rs.updateLong(fieldId, vLong.getValue());
188
//                        break;
189
//                case Types.BIT:
190
//                case Types.BOOLEAN:
191
//                        BooleanValue vBool = (BooleanValue) val;
192
//                        rs.updateBoolean(fieldId, vBool.getValue());
193
//                        break;
194
//                case Types.DATE:
195
//                        DateValue vDate = (DateValue) val;
196
//                        rs.updateDate(fieldId, vDate.getValue());
197
//                        break;
198
//                case Types.TIME:
199
//                        TimeValue vTime = (TimeValue) val;
200
//                        rs.updateTime(fieldId, vTime.getValue());
201
//                        break;
202
//                case Types.TIMESTAMP:
203
//                        TimestampValue vTimeStamp = (TimestampValue) val;
204
//                        rs.updateTimestamp(fieldId, vTimeStamp.getValue());
205
//                        break;
206
//
207
//                default:
208
//                        System.err.println("Tipo no soportado:"
209
//                                        + metaData.getColumnType(fieldId) + ". Field:" + fieldId
210
//                                        + ": " + metaData.getColumnName(fieldId));
211
//                // throw new UnsupportedOperationException();
212
//
213
//                }
214
//        }
215

    
216
}