Revision 9524 branches/piloto3d/libraries/libFMap/src/com/iver/cit/gvsig/fmap/drivers/XTypes.java

View differences:

XTypes.java
43 43
 */
44 44
package com.iver.cit.gvsig.fmap.drivers;
45 45

  
46
import java.math.BigDecimal;
46 47
import java.nio.ByteBuffer;
47 48
import java.sql.ResultSet;
48 49
import java.sql.ResultSetMetaData;
49 50
import java.sql.SQLException;
51
import java.sql.Timestamp;
50 52
import java.sql.Types;
51 53

  
52 54
import com.hardcode.gdbms.engine.values.BooleanValue;
......
63 65
import com.hardcode.gdbms.engine.values.Value;
64 66
import com.hardcode.gdbms.engine.values.ValueFactory;
65 67

  
66
public class XTypes{
67
    public final static int POINT2D         =  100;
68
    public final static int LINE2D         =  101;
69
    public final static int POLYGON2D         =  102;
70
    public final static int MULTI2D         =  103;
71
    
72
    public static String fieldTypeToString(int fieldType)
73
    {
74
        String aux = "text"; // Por defecto.
75
        switch (fieldType)
76
        {
77
            case Types.SMALLINT:
78
                aux = "integer";
79
                break;
80
            case Types.INTEGER:
81
                aux = "integer";
82
                break;
83
            case Types.BIGINT:
84
                aux = "integer";
85
                break;
86
            case Types.BOOLEAN:
87
                aux = "boolean";
88
                break;
89
            case Types.DECIMAL:
90
                aux = "numeric";
91
                break;
92
            case Types.DOUBLE:
93
                aux = "float8";
94
                break;
95
            case Types.FLOAT:
96
                aux = "float";
97
                break;
98
            case Types.CHAR:
99
                aux = "char";
100
                break;
101
            case Types.VARCHAR:
102
                aux = "text";
103
                break;
104
            case Types.LONGVARCHAR:
105
                aux = "text";
106
                break;
107
               
108
            case POINT2D:
109
                aux = "POINT";
110
                break;
111
            case LINE2D:
112
                aux = "MULTILINESTRING";
113
                break;
114
            case POLYGON2D:
115
                aux = "MULTIPOLYGON";
116
                break;
117
            case MULTI2D:
118
                aux = "GEOMETRY";
119
                break;
120
                
121
                
122
        }
123
        
124
        return aux;
125
    }
126
    
68
public class XTypes {
69
	public final static double NUM_msSecs2000 = 9.466776E11; 
70
	public final static int POINT2D = 100;
71

  
72
	public final static int LINE2D = 101;
73

  
74
	public final static int POLYGON2D = 102;
75

  
76
	public final static int MULTI2D = 103;
77

  
78
	public static String fieldTypeToString(int fieldType) {
79
		String aux = "text"; // Por defecto.
80
		switch (fieldType) {
81
		case Types.SMALLINT:
82
			aux = "integer";
83
			break;
84
		case Types.INTEGER:
85
			aux = "integer";
86
			break;
87
		case Types.BIGINT:
88
			aux = "integer";
89
			break;
90
		case Types.BOOLEAN:
91
			aux = "boolean";
92
			break;
93
		case Types.DECIMAL:
94
			aux = "numeric";
95
			break;
96
		case Types.DOUBLE:
97
			aux = "float8";
98
			break;
99
		case Types.FLOAT:
100
			aux = "float";
101
			break;
102
		case Types.CHAR:
103
			aux = "char";
104
			break;
105
		case Types.VARCHAR:
106
			aux = "text";
107
			break;
108
		case Types.LONGVARCHAR:
109
			aux = "text";
110
			break;
111

  
112
		case POINT2D:
113
			aux = "POINT";
114
			break;
115
		case LINE2D:
116
			aux = "MULTILINESTRING";
117
			break;
118
		case POLYGON2D:
119
			aux = "MULTIPOLYGON";
120
			break;
121
		case MULTI2D:
122
			aux = "GEOMETRY";
123
			break;
124

  
125
		}
126

  
127
		return aux;
128
	}
129

  
127 130
	/**
128 131
	 * @param fieldId
129 132
	 * @throws SQLException
......
148 151
			if (metaData.getColumnType(fieldId) == Types.SMALLINT)
149 152
				val = ValueFactory.createValue(buf.getShort());
150 153
			if (metaData.getColumnType(fieldId) == Types.TINYINT)
151
				val = ValueFactory.createValue(buf.getShort());						
154
				val = ValueFactory.createValue(buf.getShort());
152 155
			if (metaData.getColumnType(fieldId) == Types.BIGINT)
153 156
				val = ValueFactory.createValue(buf.getLong());
154 157
			if (metaData.getColumnType(fieldId) == Types.BIT)
......
159 162
				val = ValueFactory.createValue(rs.getTime(fieldId));
160 163
			if (metaData.getColumnType(fieldId) == Types.TIMESTAMP)
161 164
				val = ValueFactory.createValue(rs.getTimestamp(fieldId));
162
			
165

  
163 166
		}
164 167
		return val;
165 168
	}
166 169

  
167
	public static void updateValue(ResultSet rs, int fieldId_ceroBased, Value val) throws SQLException {
170
	public static void updateValue(ResultSet rs, int fieldId_ceroBased,
171
			Value val) throws SQLException {
168 172
		if (val instanceof NullValue)
169 173
			return;
170 174
		// byte[] data;
171 175
		ResultSetMetaData metaData = rs.getMetaData();
172 176
		int fieldId = fieldId_ceroBased + 1;
173 177
		// System.out.println("EScritrua: " + metaData.isDefinitelyWritable(1));
174
		switch (val.getSQLType())
175
		{
178
		switch (val.getSQLType()) {
176 179
		case Types.VARCHAR:
177 180
		case Types.LONGVARCHAR:
178 181
			// Para evitar escribir en el campo geometria:
......
180 183
				return;
181 184
			StringValue valStr = (StringValue) val;
182 185
			rs.updateString(fieldId, valStr.getValue());
183
			// System.out.println("Field " + fieldId + " :" + metaData.getColumnTypeName(fieldId));
186
			// System.out.println("Field " + fieldId + " :" +
187
			// metaData.getColumnTypeName(fieldId));
184 188
			break;
185 189
		case Types.FLOAT:
186 190
			FloatValue vFloat = (FloatValue) val;
......
192 196
			break;
193 197
		case Types.INTEGER:
194 198
			IntValue vInt = (IntValue) val;
195
			rs.updateInt(fieldId, vInt.getValue());			
199
			rs.updateInt(fieldId, vInt.getValue());
196 200
		case Types.SMALLINT:
197 201
			ShortValue vShort = (ShortValue) val;
198 202
			rs.updateShort(fieldId, vShort.shortValue());
......
208 212
			break;
209 213
		case Types.DATE:
210 214
			DateValue vDate = (DateValue) val;
211
			rs.updateDate(fieldId, vDate.getValue());			
215
			rs.updateDate(fieldId, vDate.getValue());
212 216
		case Types.TIME:
213 217
			TimeValue vTime = (TimeValue) val;
214 218
			rs.updateTime(fieldId, vTime.getValue());
......
217 221
			TimestampValue vTimeStamp = (TimestampValue) val;
218 222
			rs.updateTimestamp(fieldId, vTimeStamp.getValue());
219 223
			break;
220
			
224

  
221 225
		default:
222
			System.err.println("Tipo no soportado:" + metaData.getColumnType(fieldId) + ". Field:" + fieldId + ": " + metaData.getColumnName(fieldId));
223
			// throw new UnsupportedOperationException();
224
				
226
			System.err.println("Tipo no soportado:"
227
					+ metaData.getColumnType(fieldId) + ". Field:" + fieldId
228
					+ ": " + metaData.getColumnName(fieldId));
229
		// throw new UnsupportedOperationException();
230

  
225 231
		}
226 232
	}
227
	
228 233

  
229 234
}

Also available in: Unified diff