1
1
package com .taobao .tddl .executor .rowset ;
2
2
3
+ import java .math .BigDecimal ;
3
4
import java .sql .Date ;
5
+ import java .sql .Time ;
4
6
import java .sql .Timestamp ;
5
7
import java .util .List ;
6
8
7
9
import com .taobao .tddl .executor .cursor .ICursorMeta ;
8
10
import com .taobao .tddl .optimizer .config .table .ColumnMeta ;
11
+ import com .taobao .tddl .optimizer .core .datatype .DataType ;
9
12
10
13
/**
11
14
* @author mengshi.sunmengshi 2013-12-3 上午11:06:04
@@ -27,22 +30,8 @@ public ICursorMeta getParentCursorMeta() {
27
30
28
31
@ Override
29
32
public Integer getInteger (int index ) {
30
-
31
33
ColumnMeta cm = iCursorMeta .getColumns ().get (index );
32
- return (Integer ) cm .getDataType ().getResultGetter ().get (this , index );
33
-
34
- // Object val = this.getObject(index);
35
- // if (val == null) return 0;
36
- //
37
- // if (val instanceof Integer) return (Integer) val;
38
- //
39
- // if (val instanceof Number) return ((Number) val).intValue();
40
- //
41
- // if (val instanceof BigDecimal) return ((BigDecimal) val).intValue();
42
- //
43
- // String strVal = this.getString(index);
44
- //
45
- // return Integer.valueOf(strVal);
34
+ return DataType .IntegerType .convertFrom (cm .getDataType ().getResultGetter ().get (this , index ));
46
35
}
47
36
48
37
@ Override
@@ -52,48 +41,19 @@ public void setInteger(int index, Integer value) {
52
41
53
42
@ Override
54
43
public Long getLong (int index ) {
55
-
56
44
ColumnMeta cm = iCursorMeta .getColumns ().get (index );
57
- return (Long ) cm .getDataType ().getResultGetter ().get (this , index );
58
-
59
- // Object val = this.getObject(index);
60
- // if (val == null) return 0L;
61
- //
62
- // if (val instanceof Long) return (Long) val;
63
- //
64
- // if (val instanceof Number) return ((Number) val).longValue();
65
- //
66
- // if (val instanceof BigDecimal) return ((BigDecimal) val).longValue();
67
- //
68
- // String strVal = this.getString(index);
69
- //
70
- // return Long.valueOf(strVal);
45
+ return DataType .LongType .convertFrom (cm .getDataType ().getResultGetter ().get (this , index ));
71
46
}
72
47
73
48
@ Override
74
49
public void setLong (int index , Long value ) {
75
50
setObject (index , value );
76
51
}
77
52
78
- @ Override
79
- public List <Object > getValues () {
80
- throw new UnsupportedOperationException ();
81
- }
82
-
83
- @ Override
84
- public String toString () {
85
- StringBuilder sb = new StringBuilder ();
86
-
87
- for (ColumnMeta cm : this .getParentCursorMeta ().getColumns ()) {
88
- int index = this .getParentCursorMeta ().getIndex (cm .getTableName (), cm .getName ());
89
- sb .append (cm .getName () + ":" + this .getValues ().get (index ) + " " );
90
- }
91
- return sb .toString ();
92
- }
93
-
94
53
@ Override
95
54
public String getString (int index ) {
96
- return String .valueOf (getObject (index ));
55
+ ColumnMeta cm = iCursorMeta .getColumns ().get (index );
56
+ return DataType .StringType .convertFrom (cm .getDataType ().getResultGetter ().get (this , index ));
97
57
}
98
58
99
59
@ Override
@@ -103,19 +63,8 @@ public void setString(int index, String str) {
103
63
104
64
@ Override
105
65
public Boolean getBoolean (int index ) {
106
-
107
66
ColumnMeta cm = iCursorMeta .getColumns ().get (index );
108
- return (Boolean ) cm .getDataType ().getResultGetter ().get (this , index );
109
-
110
- // Object val = this.getObject(index);
111
- // // -1 || >0 是true
112
- // if (val == null) return false;
113
- //
114
- // if (val instanceof Boolean) return (Boolean) val;
115
- //
116
- // String strVal = this.getString(index);
117
- //
118
- // return Boolean.valueOf(strVal);
67
+ return DataType .BooleanType .convertFrom (cm .getDataType ().getResultGetter ().get (this , index ));
119
68
}
120
69
121
70
@ Override
@@ -125,23 +74,8 @@ public void setBoolean(int index, Boolean bool) {
125
74
126
75
@ Override
127
76
public Short getShort (int index ) {
128
-
129
77
ColumnMeta cm = iCursorMeta .getColumns ().get (index );
130
- return (Short ) cm .getDataType ().getResultGetter ().get (this , index );
131
-
132
- // Object val = this.getObject(index);
133
- // if (val == null) return 0;
134
- //
135
- // if (val instanceof Short) return (Short) val;
136
- //
137
- // if (val instanceof Number) return ((Number) val).shortValue();
138
- //
139
- // if (val instanceof BigDecimal) return ((BigDecimal)
140
- // val).shortValue();
141
- //
142
- // String strVal = this.getString(index);
143
- //
144
- // return Short.valueOf(strVal);
78
+ return DataType .ShortType .convertFrom (cm .getDataType ().getResultGetter ().get (this , index ));
145
79
}
146
80
147
81
@ Override
@@ -151,23 +85,8 @@ public void setShort(int index, Short shortval) {
151
85
152
86
@ Override
153
87
public Float getFloat (int index ) {
154
-
155
88
ColumnMeta cm = iCursorMeta .getColumns ().get (index );
156
- return (Float ) cm .getDataType ().getResultGetter ().get (this , index );
157
-
158
- // Object val = this.getObject(index);
159
- // if (val == null) return (float) 0.0;
160
- //
161
- // if (val instanceof Float) return (Float) val;
162
- //
163
- // if (val instanceof Number) return ((Number) val).floatValue();
164
- //
165
- // if (val instanceof BigDecimal) return ((BigDecimal)
166
- // val).floatValue();
167
- //
168
- // String strVal = this.getString(index);
169
- //
170
- // return Float.valueOf(strVal);
89
+ return DataType .FloatType .convertFrom (cm .getDataType ().getResultGetter ().get (this , index ));
171
90
}
172
91
173
92
@ Override
@@ -178,21 +97,7 @@ public void setFloat(int index, Float fl) {
178
97
@ Override
179
98
public Double getDouble (int index ) {
180
99
ColumnMeta cm = iCursorMeta .getColumns ().get (index );
181
- return (Double ) cm .getDataType ().getResultGetter ().get (this , index );
182
-
183
- // Object val = this.getObject(index);
184
- // if (val == null) return 0.0;
185
- //
186
- // if (val instanceof Double) return (Double) val;
187
- //
188
- // if (val instanceof Number) return ((Number) val).doubleValue();
189
- //
190
- // if (val instanceof BigDecimal) return ((BigDecimal)
191
- // val).doubleValue();
192
- //
193
- // String strVal = this.getString(index);
194
- //
195
- // return Double.valueOf(strVal);
100
+ return DataType .DoubleType .convertFrom (cm .getDataType ().getResultGetter ().get (this , index ));
196
101
}
197
102
198
103
@ Override
@@ -202,15 +107,8 @@ public void setDouble(int index, Double doub) {
202
107
203
108
@ Override
204
109
public byte [] getBytes (int index ) {
205
-
206
110
ColumnMeta cm = iCursorMeta .getColumns ().get (index );
207
- return (byte []) cm .getDataType ().getResultGetter ().get (this , index );
208
-
209
- // Object obj = getObject(index);
210
- // if (obj == null) return null;
211
- // if (obj instanceof byte[]) return (byte[]) obj;
212
- // else throw new RuntimeException("暂不支持类型:" + obj.getClass() +
213
- // " 的getBytes操作");
111
+ return DataType .BytesType .convertFrom (cm .getDataType ().getResultGetter ().get (this , index ));
214
112
}
215
113
216
114
@ Override
@@ -220,17 +118,8 @@ public void setBytes(int index, byte[] bytes) {
220
118
221
119
@ Override
222
120
public Date getDate (int index ) {
223
-
224
121
ColumnMeta cm = iCursorMeta .getColumns ().get (index );
225
- return (Date ) cm .getDataType ().getResultGetter ().get (this , index );
226
-
227
- // Object obj = getObject(index);
228
- // if (obj == null) return null;
229
- // if (obj instanceof Date) return (Date) obj;
230
- // if (obj instanceof java.util.Date) {
231
- // return new Date(((java.util.Date) obj).getTime());
232
- // } else throw new RuntimeException("暂不支持类型:" + obj.getClass() +
233
- // " 的getDate操作");
122
+ return DataType .DateType .convertFrom (cm .getDataType ().getResultGetter ().get (this , index ));
234
123
}
235
124
236
125
@ Override
@@ -241,19 +130,49 @@ public void setDate(int index, Date date) {
241
130
@ Override
242
131
public Timestamp getTimestamp (int index ) {
243
132
ColumnMeta cm = iCursorMeta .getColumns ().get (index );
244
- return (Timestamp ) cm .getDataType ().getResultGetter ().get (this , index );
245
- // Object obj = getObject(index);
246
- // if (obj == null) return null;
247
- // if (obj instanceof Timestamp) return (Timestamp) obj;
248
- // if (obj instanceof java.util.Date) {
249
- // return new Timestamp(((java.util.Date) obj).getTime());
250
- // } else throw new RuntimeException("暂不支持类型:" + obj.getClass() +
251
- // " 的getTimestamp操作");
133
+ return DataType .TimestampType .convertFrom (cm .getDataType ().getResultGetter ().get (this , index ));
252
134
}
253
135
254
136
@ Override
255
137
public void setTimestamp (int index , Timestamp timestamp ) {
256
138
setObject (index , timestamp );
257
139
}
258
140
141
+ @ Override
142
+ public Time getTime (int index ) {
143
+ ColumnMeta cm = iCursorMeta .getColumns ().get (index );
144
+ return DataType .TimeType .convertFrom (cm .getDataType ().getResultGetter ().get (this , index ));
145
+ }
146
+
147
+ @ Override
148
+ public void setTime (int index , Time time ) {
149
+ setObject (index , time );
150
+ }
151
+
152
+ @ Override
153
+ public BigDecimal getBigDecimal (int index ) {
154
+ ColumnMeta cm = iCursorMeta .getColumns ().get (index );
155
+ return DataType .BigDecimalType .convertFrom (cm .getDataType ().getResultGetter ().get (this , index ));
156
+ }
157
+
158
+ @ Override
159
+ public void setBigDecimal (int index , BigDecimal bigDecimal ) {
160
+ setObject (index , bigDecimal );
161
+ }
162
+
163
+ @ Override
164
+ public List <Object > getValues () {
165
+ throw new UnsupportedOperationException ();
166
+ }
167
+
168
+ @ Override
169
+ public String toString () {
170
+ StringBuilder sb = new StringBuilder ();
171
+
172
+ for (ColumnMeta cm : this .getParentCursorMeta ().getColumns ()) {
173
+ int index = this .getParentCursorMeta ().getIndex (cm .getTableName (), cm .getName ());
174
+ sb .append (cm .getName () + ":" + this .getValues ().get (index ) + " " );
175
+ }
176
+ return sb .toString ();
177
+ }
259
178
}
0 commit comments