OSDN Git Service

i
[luz/luz.git] / luz2 / src / com / lavans / luz2 / sql / cluster / ClusterResultSet.java
1 /* $Id: ClusterResultSet.java 94 2008-12-18 11:07:17Z dobashi $\r
2  * create: 2004/10/28\r
3  * (c)2004 Lavans Networks Inc. All Rights Reserved.\r
4  */\r
5 package com.lavans.luz2.sql.cluster;\r
6 \r
7 import java.io.InputStream;\r
8 import java.io.Reader;\r
9 import java.math.BigDecimal;\r
10 import java.net.URL;\r
11 import java.sql.Array;\r
12 import java.sql.Blob;\r
13 import java.sql.Clob;\r
14 import java.sql.Date;\r
15 import java.sql.NClob;\r
16 import java.sql.Ref;\r
17 import java.sql.ResultSet;\r
18 import java.sql.ResultSetMetaData;\r
19 import java.sql.RowId;\r
20 import java.sql.SQLException;\r
21 import java.sql.SQLWarning;\r
22 import java.sql.SQLXML;\r
23 import java.sql.Statement;\r
24 import java.sql.Time;\r
25 import java.sql.Timestamp;\r
26 import java.util.ArrayList;\r
27 import java.util.Calendar;\r
28 import java.util.List;\r
29 import java.util.Map;\r
30 \r
31 import org.apache.commons.logging.Log;\r
32 import org.apache.commons.logging.LogFactory;\r
33 \r
34 /**\r
35  * クラスタ接続対応ResultSet。\r
36  * getString(),getInt()等のデータを取得する処理の最中に\r
37  * Exceptionが発生した場合に、DB接続先の切り替えを行う。\r
38  *\r
39  * 一つのStatementから複数のResultSetを生成している場合、\r
40  * ResultSet内でDB切替が起きると最後に生成したResultSetを\r
41  * 再生成する。従って、利用する側では先に取得したResultSetに\r
42  * 対する処理をすべて終わらせてclose()してから次の\r
43  * ResultSetを取得するようにすること。複数のResultSetを\r
44  * 取得するより、Statementを複数生成するようにした方が\r
45  * 望ましい。\r
46  *\r
47  * △\r
48  * st = con.createStatement();\r
49  * rs1 = st.executeQuery(sql1);\r
50  * rs2 = st.executeQuery(sql2);\r
51  * ○\r
52  * st1 = con.createStatement();\r
53  * st2 = con.createStatement();\r
54  * rs1 = st1.executeQuery(sql1);\r
55  * rs2 = st2.executeQuery(sql2);\r
56  *\r
57  *\r
58  * @author dobashi\r
59  * @version 1.00\r
60  */\r
61 public class ClusterResultSet implements ResultSet {\r
62         /** Messageクラスに移動? */\r
63         protected static final String MSG_WARN_SWITCH_DB="ResultSet内で障害が出たので接続先を切り替えます。";\r
64         protected static final String MSG_ERR_RECREATE="ResultSetの再生成に失敗。";\r
65 \r
66         /** 処理移譲先 */\r
67         private ResultSet rs = null;\r
68 \r
69         /**\r
70          * 自分を生成したStatement。\r
71          * ClusterStatement/ClusterPreparedStatement/ClusterCollableStatementのどれか。\r
72          */\r
73         private ClusterStatementInterface st = null;\r
74 \r
75         /** ロガー。debug用 */\r
76         private static Log logger = LogFactory.getLog(ClusterResultSet.class);\r
77 \r
78         /**\r
79          * 保存しておくメソッドのリスト。\r
80          * 障害が発生した場合、ResultSetに対する操作を操作が行われた\r
81          * 順序どおりに再実行する必要がある。\r
82          *\r
83          * ただし、first(),beforeFirst(),last(),afterLast()が呼び出された場合は、\r
84          * それ以前に実行されたカーソル移動系メソッドは無視してよいので、\r
85          * methodListから削除する処理を追加したい。\r
86          */\r
87         private List<CalledMethod> methodList = null;\r
88 \r
89         /**\r
90          * コンストラクタ。\r
91          * @param rs\r
92          */\r
93         public ClusterResultSet(ClusterStatementInterface st, ResultSet rs){\r
94                 this.st = st;\r
95                 this.rs = rs;\r
96                 methodList = new ArrayList<CalledMethod>();\r
97         }\r
98 \r
99         /**\r
100          * とっておいたResultSetへのアクセスを再設定(障害時切替用)。\r
101          * @param rs 新しいResultSet\r
102          */\r
103         private void setParameters(ResultSet rs) throws SQLException{\r
104                 for(int i=0; i<methodList.size(); i++){\r
105                         CalledMethod calledMethod = methodList.get(i);\r
106                         try{\r
107                                 calledMethod.invoke(rs);        // 戻り値は無視して良い\r
108                         }catch (Exception e) {\r
109                                 logger.error(MSG_ERR_RECREATE, e);\r
110                                 throw new SQLException(MSG_ERR_RECREATE);\r
111                         }\r
112                 }\r
113         }\r
114 \r
115         /**\r
116          * クラスタリング対応のメソッド実行処理。\r
117          * @param methodName\r
118          * @param args\r
119          * @return\r
120          * @throws SQLException\r
121          */\r
122         private Object clusterCall(String methodName, Object[] args, Class<?>[] parameterTypes) throws SQLException{\r
123                 Object result = null;\r
124                 CalledMethod calledMethod = new CalledMethod(methodName, args, parameterTypes);\r
125                 try{\r
126                         result = calledMethod.invoke(rs);\r
127                 }catch (Exception e) {\r
128                         logger.debug(MSG_WARN_SWITCH_DB+e.getMessage());\r
129                         try { rs.close(); } catch (SQLException se) {}\r
130                         rs = st.getAnotherResultSet();\r
131                         try{\r
132                                 setParameters(rs);\r
133                                 result = calledMethod.invoke(rs);\r
134                         }catch (Exception e2) {\r
135                                 // 再度実行。ここでもさらにエラーがでるならSQLExceptionにラップする。\r
136                                 throw new SQLException(e2.getMessage());\r
137                         }\r
138                 }\r
139                 methodList.add(calledMethod);\r
140 \r
141                 return result;\r
142         }\r
143 \r
144         /**\r
145          * @see java.sql.ResultSet#getConcurrency()\r
146          */\r
147         public int getConcurrency() throws SQLException {\r
148                 return ((Integer)clusterCall("getConcurrency", null, null)).intValue();\r
149         }\r
150 \r
151         /**\r
152          * @see java.sql.ResultSet#getFetchDirection()\r
153          */\r
154         public int getFetchDirection() throws SQLException {\r
155                 return ((Integer)clusterCall("getFetchDirection", null, null)).intValue();\r
156         }\r
157 \r
158         /**\r
159          * @see java.sql.ResultSet#getFetchSize()\r
160          */\r
161         public int getFetchSize() throws SQLException {\r
162                 return ((Integer)clusterCall("getFetchSize", null, null)).intValue();\r
163         }\r
164 \r
165         /**\r
166          * @see java.sql.ResultSet#getRow()\r
167          */\r
168         public int getRow() throws SQLException {\r
169                 return ((Integer)clusterCall("getRow", null, null)).intValue();\r
170         }\r
171 \r
172         /**\r
173          * @see java.sql.ResultSet#getType()\r
174          */\r
175         public int getType() throws SQLException {\r
176                 return ((Integer)clusterCall("getType", null, null)).intValue();\r
177         }\r
178 \r
179         /**\r
180          * @see java.sql.ResultSet#afterLast()\r
181          */\r
182         public void afterLast() throws SQLException {\r
183                 clusterCall("afterLast", null, null);\r
184         }\r
185 \r
186         /**\r
187          * @see java.sql.ResultSet#beforeFirst()\r
188          */\r
189         public void beforeFirst() throws SQLException {\r
190                 clusterCall("beforeFirst", null, null);\r
191         }\r
192 \r
193         /**\r
194          * @see java.sql.ResultSet#cancelRowUpdates()\r
195          */\r
196         public void cancelRowUpdates() throws SQLException {\r
197                 clusterCall("cancelRowUpdates", null, null);\r
198         }\r
199 \r
200         /**\r
201          * @see java.sql.ResultSet#clearWarnings()\r
202          */\r
203         public void clearWarnings() throws SQLException {\r
204                 clusterCall("clearWarnings", null, null);\r
205         }\r
206 \r
207         /**\r
208          * @see java.sql.ResultSet#close()\r
209          */\r
210         public void close() throws SQLException {\r
211                 clusterCall("close", null, null);\r
212                 methodList.clear();\r
213         }\r
214 \r
215         /**\r
216          * @see java.sql.ResultSet#deleteRow()\r
217          */\r
218         public void deleteRow() throws SQLException {\r
219                 clusterCall("deleteRow", null, null);\r
220         }\r
221 \r
222         /**\r
223          * @see java.sql.ResultSet#insertRow()\r
224          */\r
225         public void insertRow() throws SQLException {\r
226                 clusterCall("insertRow", null, null);\r
227         }\r
228 \r
229         /**\r
230          * @see java.sql.ResultSet#moveToCurrentRow()\r
231          */\r
232         public void moveToCurrentRow() throws SQLException {\r
233                 clusterCall("moveToCurrentRow", null, null);\r
234         }\r
235 \r
236         /**\r
237          * @see java.sql.ResultSet#moveToInsertRow()\r
238          */\r
239         public void moveToInsertRow() throws SQLException {\r
240                 clusterCall("moveToInsertRow", null, null);\r
241         }\r
242 \r
243         /**\r
244          * @see java.sql.ResultSet#refreshRow()\r
245          */\r
246         public void refreshRow() throws SQLException {\r
247                 clusterCall("refreshRow", null, null);\r
248         }\r
249 \r
250         /**\r
251          * @see java.sql.ResultSet#updateRow()\r
252          */\r
253         public void updateRow() throws SQLException {\r
254                 clusterCall("updateRow", null, null);\r
255         }\r
256 \r
257         /**\r
258          * @see java.sql.ResultSet#first()\r
259          */\r
260         public boolean first() throws SQLException {\r
261                 return ((Boolean)clusterCall("first", null, null)).booleanValue();\r
262         }\r
263 \r
264         /**\r
265          * @see java.sql.ResultSet#isAfterLast()\r
266          */\r
267         public boolean isAfterLast() throws SQLException {\r
268                 return ((Boolean)clusterCall("isAfterLast", null, null)).booleanValue();\r
269         }\r
270 \r
271         /**\r
272          * @see java.sql.ResultSet#isBeforeFirst()\r
273          */\r
274         public boolean isBeforeFirst() throws SQLException {\r
275                 return ((Boolean)clusterCall("isBeforeFirst", null, null)).booleanValue();\r
276         }\r
277 \r
278         /**\r
279          * @see java.sql.ResultSet#isFirst()\r
280          */\r
281         public boolean isFirst() throws SQLException {\r
282                 return ((Boolean)clusterCall("isFirst", null, null)).booleanValue();\r
283         }\r
284 \r
285         /**\r
286          * @see java.sql.ResultSet#isLast()\r
287          */\r
288         public boolean isLast() throws SQLException {\r
289                 return ((Boolean)clusterCall("isLast", null, null)).booleanValue();\r
290         }\r
291 \r
292         /**\r
293          * @see java.sql.ResultSet#last()\r
294          */\r
295         public boolean last() throws SQLException {\r
296                 // Method#invoke()でBooleanに自動ラップされている。\r
297                 return ((Boolean)clusterCall("last", null, null)).booleanValue();\r
298         }\r
299 \r
300         /**\r
301          * カーソルを現在の位置から 1 行下に移動します。\r
302          * @see java.sql.ResultSet#next()\r
303          */\r
304         public boolean next() throws SQLException {\r
305                 // Method#invoke()でBooleanに自動ラップされている。\r
306                 return ((Boolean)clusterCall("next", null, null)).booleanValue();\r
307         }\r
308 \r
309 \r
310         /**\r
311          * カーソルを現在の位置から 1 行上に移動します。\r
312          * @see java.sql.ResultSet#previous()\r
313          */\r
314         public boolean previous() throws SQLException {\r
315                 // Method#invoke()でBooleanに自動ラップされている。\r
316                 return ((Boolean)clusterCall("previos", null, null)).booleanValue();\r
317         }\r
318 \r
319         /**\r
320          * @see java.sql.ResultSet#rowDeleted()\r
321          */\r
322         public boolean rowDeleted() throws SQLException {\r
323                 // Method#invoke()でBooleanに自動ラップされている。\r
324                 return ((Boolean)clusterCall("rowDeleted", null, null)).booleanValue();\r
325         }\r
326 \r
327         /**\r
328          * @see java.sql.ResultSet#rowInserted()\r
329          */\r
330         public boolean rowInserted() throws SQLException {\r
331                 return ((Boolean)clusterCall("rowInserted", null, null)).booleanValue();\r
332         }\r
333 \r
334         /**\r
335          * @see java.sql.ResultSet#rowUpdated()\r
336          */\r
337         public boolean rowUpdated() throws SQLException {\r
338                 return ((Boolean)clusterCall("rowUpdated", null, null)).booleanValue();\r
339         }\r
340 \r
341         /**\r
342          * @see java.sql.ResultSet#wasNull()\r
343          */\r
344         public boolean wasNull() throws SQLException {\r
345                 return ((Boolean)clusterCall("wasNull", null, null)).booleanValue();\r
346         }\r
347 \r
348         /**\r
349          * @see java.sql.ResultSet#getByte(int)\r
350          */\r
351         public byte getByte(int columnIndex) throws SQLException {\r
352                 // Method#invoke()でByteに自動ラップされている。\r
353                 return ((Byte)clusterCall("getByte", new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE})).byteValue();\r
354         }\r
355 \r
356         /**\r
357          * @see java.sql.ResultSet#getDouble(int)\r
358          */\r
359         public double getDouble(int columnIndex) throws SQLException {\r
360                 return ((Double)clusterCall("getDouble", new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE})).doubleValue();\r
361         }\r
362 \r
363         /**\r
364          * @see java.sql.ResultSet#getFloat(int)\r
365          */\r
366         public float getFloat(int columnIndex) throws SQLException {\r
367                 return ((Float)clusterCall("getFloat", new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE})).floatValue();\r
368         }\r
369 \r
370         /**\r
371          * @see java.sql.ResultSet#getInt(int)\r
372          */\r
373         public int getInt(int columnIndex) throws SQLException {\r
374                 return ((Integer)clusterCall("getInt",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE})).intValue();\r
375         }\r
376 \r
377         /**\r
378          * @see java.sql.ResultSet#getLong(int)\r
379          */\r
380         public long getLong(int columnIndex) throws SQLException {\r
381                 return ((Long)clusterCall("getLong",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE})).longValue();\r
382         }\r
383 \r
384         /**\r
385          * @see java.sql.ResultSet#getShort(int)\r
386          */\r
387         public short getShort(int columnIndex) throws SQLException {\r
388                 return ((Short)clusterCall("getShort",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE})).shortValue();\r
389         }\r
390 \r
391         /**\r
392          * @see java.sql.ResultSet#setFetchDirection(int)\r
393          */\r
394         public void setFetchDirection(int direction) throws SQLException {\r
395                 clusterCall("setFetchDirection",new Object[]{new Integer(direction)}, new Class[]{Integer.TYPE});\r
396         }\r
397 \r
398         /**\r
399          * @see java.sql.ResultSet#setFetchSize(int)\r
400          */\r
401         public void setFetchSize(int rows) throws SQLException {\r
402                 clusterCall("getDouble",new Object[]{new Integer(rows)}, new Class[]{Integer.TYPE});\r
403         }\r
404 \r
405         /**\r
406          *\r
407          * @see java.sql.ResultSet#updateNull(int)\r
408          */\r
409         public void updateNull(int columnIndex) throws SQLException {\r
410                 clusterCall("getDouble",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
411         }\r
412 \r
413         /**\r
414          * @see java.sql.ResultSet#absolute(int)\r
415          */\r
416         public boolean absolute(int row) throws SQLException {\r
417                 return ((Boolean)clusterCall("absolute",new Object[]{new Integer(row)}, new Class[]{Integer.TYPE})).booleanValue();\r
418         }\r
419 \r
420         /**\r
421          * @see java.sql.ResultSet#getBoolean(int)\r
422          */\r
423         public boolean getBoolean(int columnIndex) throws SQLException {\r
424                 return ((Boolean)clusterCall("getBoolean",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE})).booleanValue();\r
425         }\r
426 \r
427         /**\r
428          * @see java.sql.ResultSet#relative(int)\r
429          */\r
430         public boolean relative(int rows) throws SQLException {\r
431                 return ((Boolean)clusterCall("relative",new Object[]{new Integer(rows)}, new Class[]{Integer.TYPE})).booleanValue();\r
432         }\r
433 \r
434         /**\r
435          * @see java.sql.ResultSet#getBytes(int)\r
436          */\r
437         public byte[] getBytes(int columnIndex) throws SQLException {\r
438                 return (byte[])clusterCall("getBytes",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
439         }\r
440 \r
441         /**\r
442          * @see java.sql.ResultSet#updateByte(int, byte)\r
443          */\r
444         public void updateByte(int columnIndex, byte x) throws SQLException {\r
445                 clusterCall("updateByte",new Object[]{new Integer(columnIndex), new Byte[x]}, new Class[]{Integer.TYPE, Byte.TYPE});\r
446 \r
447         }\r
448 \r
449         /**\r
450          * @see java.sql.ResultSet#updateDouble(int, double)\r
451          */\r
452         public void updateDouble(int columnIndex, double x) throws SQLException {\r
453                 clusterCall("updateDouble",new Object[]{new Integer(columnIndex), new Double(x)}, new Class[]{Integer.TYPE, Double.TYPE});\r
454 \r
455         }\r
456 \r
457         /**\r
458          * @see java.sql.ResultSet#updateFloat(int, float)\r
459          */\r
460         public void updateFloat(int columnIndex, float x) throws SQLException {\r
461                 clusterCall("updateFloat",new Object[]{new Integer(columnIndex), new Float(x)}, new Class[]{Integer.TYPE, Float.TYPE});\r
462 \r
463         }\r
464 \r
465         /**\r
466          * @see java.sql.ResultSet#updateInt(int, int)\r
467          */\r
468         public void updateInt(int columnIndex, int x) throws SQLException {\r
469                 clusterCall("updateInt",new Object[]{new Integer(columnIndex), new Integer(x)}, new Class[]{Integer.TYPE, Integer.TYPE});\r
470 \r
471         }\r
472 \r
473         /**\r
474          * @see java.sql.ResultSet#updateLong(int, long)\r
475          */\r
476         public void updateLong(int columnIndex, long x) throws SQLException {\r
477                 clusterCall("updateLong",new Object[]{new Integer(columnIndex), new Long(x)}, new Class[]{Integer.TYPE, Long.TYPE});\r
478 \r
479         }\r
480 \r
481         /**\r
482          * @see java.sql.ResultSet#updateShort(int, short)\r
483          */\r
484         public void updateShort(int columnIndex, short x) throws SQLException {\r
485                 clusterCall("updateShort",new Object[]{new Integer(columnIndex), new Short(x)}, new Class[]{Integer.TYPE, Short.TYPE});\r
486 \r
487         }\r
488 \r
489         /**\r
490          * @see java.sql.ResultSet#updateBoolean(int, boolean)\r
491          */\r
492         public void updateBoolean(int columnIndex, boolean x) throws SQLException {\r
493                 clusterCall("updateBoolean",new Object[]{new Integer(columnIndex), new Boolean(x)}, new Class[]{Integer.TYPE, Boolean.TYPE});\r
494 \r
495         }\r
496 \r
497         /**\r
498          * @see java.sql.ResultSet#updateBytes(int, byte[])\r
499          */\r
500         public void updateBytes(int columnIndex, byte[] x) throws SQLException {\r
501                 clusterCall("updateBytes",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, byte[].class});\r
502 \r
503         }\r
504 \r
505         /**\r
506          * @see java.sql.ResultSet#getAsciiStream(int)\r
507          */\r
508         public InputStream getAsciiStream(int columnIndex) throws SQLException {\r
509                 return (InputStream)clusterCall("getAsciiStream",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
510         }\r
511 \r
512         /**\r
513          * @see java.sql.ResultSet#getBinaryStream(int)\r
514          */\r
515         public InputStream getBinaryStream(int columnIndex) throws SQLException {\r
516                 return (InputStream)clusterCall("getBinaryStream",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
517         }\r
518 \r
519         /**\r
520          * @deprecated\r
521          * @see java.sql.ResultSet#getUnicodeStream(int)\r
522          */\r
523         public InputStream getUnicodeStream(int columnIndex) throws SQLException {\r
524                 return (InputStream)clusterCall("getUnicodeStream",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
525         }\r
526 \r
527         /**\r
528          * @see java.sql.ResultSet#updateAsciiStream(int, java.io.InputStream, int)\r
529          */\r
530         public void updateAsciiStream(int columnIndex, InputStream x, int length)\r
531                 throws SQLException {\r
532                 clusterCall("updateAsciiStream",new Object[]{new Integer(columnIndex), x, new Integer(length)},\r
533                                 new Class[]{Integer.TYPE, InputStream.class, Integer.TYPE});\r
534         }\r
535 \r
536         /**\r
537          * @see java.sql.ResultSet#updateBinaryStream(int, java.io.InputStream, int)\r
538          */\r
539         public void updateBinaryStream(int columnIndex, InputStream x, int length)\r
540                 throws SQLException {\r
541                 clusterCall("updateBinaryStream",new Object[]{new Integer(columnIndex), x, new Integer(length)},\r
542                                 new Class[]{Integer.TYPE, InputStream.class, Integer.TYPE});\r
543 \r
544         }\r
545 \r
546         /**\r
547          * @see java.sql.ResultSet#getCharacterStream(int)\r
548          */\r
549         public Reader getCharacterStream(int columnIndex) throws SQLException {\r
550                 return (Reader)clusterCall("getCharacterStream",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
551         }\r
552 \r
553         /**\r
554          * @see java.sql.ResultSet#updateCharacterStream(int, java.io.Reader, int)\r
555          */\r
556         public void updateCharacterStream(int columnIndex, Reader x, int length)\r
557                 throws SQLException {\r
558                 clusterCall("updateCharacterStream",new Object[]{new Integer(columnIndex), x, new Integer(length)}, new Class[]{Integer.TYPE, Reader.class, Integer.TYPE});\r
559 \r
560         }\r
561 \r
562         /**\r
563          * @see java.sql.ResultSet#getObject(int)\r
564          */\r
565         public Object getObject(int columnIndex) throws SQLException {\r
566                 return clusterCall("getObject",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
567         }\r
568 \r
569         /**\r
570          * @see java.sql.ResultSet#updateObject(int, java.lang.Object)\r
571          */\r
572         public void updateObject(int columnIndex, Object x) throws SQLException {\r
573                 clusterCall("updateObject",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, Object.class});\r
574 \r
575         }\r
576 \r
577         /**\r
578          * @see java.sql.ResultSet#updateObject(int, java.lang.Object, int)\r
579          */\r
580         public void updateObject(int columnIndex, Object x, int scale)\r
581                 throws SQLException {\r
582                 clusterCall("updateObject",new Object[]{new Integer(columnIndex), x, new Integer(scale)},\r
583                                 new Class[]{Integer.TYPE, Object.class, Integer.TYPE});\r
584         }\r
585 \r
586         /**\r
587          * @see java.sql.ResultSet#getCursorName()\r
588          */\r
589         public String getCursorName() throws SQLException {\r
590                 return (String)clusterCall("getCursorName", null, null);\r
591         }\r
592 \r
593         /**\r
594          * @see java.sql.ResultSet#getString(int)\r
595          */\r
596         public String getString(int columnIndex) throws SQLException {\r
597                 return (String)clusterCall("getString",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
598         }\r
599 \r
600         /**\r
601          * @see java.sql.ResultSet#updateString(int, java.lang.String)\r
602          */\r
603         public void updateString(int columnIndex, String x) throws SQLException {\r
604                 clusterCall("updateString",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, String.class});\r
605         }\r
606 \r
607         /**\r
608          * @see java.sql.ResultSet#getByte(java.lang.String)\r
609          */\r
610         public byte getByte(String columnName) throws SQLException {\r
611                 return ((Byte)clusterCall("getByte",new Object[]{columnName}, new Class[]{String.class})).byteValue();\r
612         }\r
613 \r
614         /**\r
615          * @see java.sql.ResultSet#getDouble(java.lang.String)\r
616          */\r
617         public double getDouble(String columnName) throws SQLException {\r
618                 return ((Double)clusterCall("getDouble",new Object[]{columnName}, new Class[]{String.class})).doubleValue();\r
619         }\r
620 \r
621         /**\r
622          * @see java.sql.ResultSet#getFloat(java.lang.String)\r
623          */\r
624         public float getFloat(String columnName) throws SQLException {\r
625                 return ((Float)clusterCall("getFloat",new Object[]{columnName}, new Class[]{String.class})).floatValue();\r
626         }\r
627 \r
628         /**\r
629          * @see java.sql.ResultSet#findColumn(java.lang.String)\r
630          */\r
631         public int findColumn(String columnName) throws SQLException {\r
632                 return ((Integer)clusterCall("findColumn",new Object[]{columnName}, new Class[]{String.class})).intValue();\r
633         }\r
634 \r
635         /**\r
636          * @see java.sql.ResultSet#getInt(java.lang.String)\r
637          */\r
638         public int getInt(String columnName) throws SQLException {\r
639                 return ((Integer)clusterCall("getInt",new Object[]{columnName}, new Class[]{String.class})).intValue();\r
640         }\r
641 \r
642         /**\r
643          * @see java.sql.ResultSet#getLong(java.lang.String)\r
644          */\r
645         public long getLong(String columnName) throws SQLException {\r
646                 return ((Long)clusterCall("getLong",new Object[]{columnName}, new Class[]{String.class})).longValue();\r
647         }\r
648 \r
649         /**\r
650          * @see java.sql.ResultSet#getShort(java.lang.String)\r
651          */\r
652         public short getShort(String columnName) throws SQLException {\r
653                 return ((Short)clusterCall("getShort",new Object[]{columnName}, new Class[]{String.class})).shortValue();\r
654         }\r
655 \r
656         /**\r
657          * @see java.sql.ResultSet#updateNull(java.lang.String)\r
658          */\r
659         public void updateNull(String columnName) throws SQLException {\r
660                 clusterCall("updateNull",new Object[]{columnName}, new Class[]{String.class});\r
661         }\r
662 \r
663         /**\r
664          * @see java.sql.ResultSet#getBoolean(java.lang.String)\r
665          */\r
666         public boolean getBoolean(String columnName) throws SQLException {\r
667                 return ((Boolean)clusterCall("getBoolean",new Object[]{columnName}, new Class[]{String.class})).booleanValue();\r
668         }\r
669 \r
670         /**\r
671          * @see java.sql.ResultSet#getBytes(java.lang.String)\r
672          */\r
673         public byte[] getBytes(String columnName) throws SQLException {\r
674                 return (byte[])clusterCall("getBytes",new Object[]{columnName}, new Class[]{String.class});\r
675         }\r
676 \r
677         /**\r
678          * @see java.sql.ResultSet#updateByte(java.lang.String, byte)\r
679          */\r
680         public void updateByte(String columnName, byte x) throws SQLException {\r
681                 clusterCall("updateByte",new Object[]{columnName, new Byte(x)}, new Class[]{String.class, Byte.TYPE});\r
682         }\r
683 \r
684         /**\r
685          * @see java.sql.ResultSet#updateDouble(java.lang.String, double)\r
686          */\r
687         public void updateDouble(String columnName, double x) throws SQLException {\r
688                 clusterCall("updateDouble",new Object[]{columnName, new Double(x)}, new Class[]{String.class, Double.TYPE});\r
689         }\r
690 \r
691         /**\r
692          * @see java.sql.ResultSet#updateFloat(java.lang.String, float)\r
693          */\r
694         public void updateFloat(String columnName, float x) throws SQLException {\r
695                 clusterCall("updateFloat",new Object[]{columnName, new Float(x)}, new Class[]{String.class, Float.TYPE});\r
696         }\r
697 \r
698         /**\r
699          * @see java.sql.ResultSet#updateInt(java.lang.String, int)\r
700          */\r
701         public void updateInt(String columnName, int x) throws SQLException {\r
702                 clusterCall("updateInt",new Object[]{columnName, new Integer(x)}, new Class[]{String.class, Integer.TYPE});\r
703         }\r
704 \r
705         /**\r
706          * @see java.sql.ResultSet#updateLong(java.lang.String, long)\r
707          */\r
708         public void updateLong(String columnName, long x) throws SQLException {\r
709                 clusterCall("updateLong",new Object[]{columnName, new Long(x)}, new Class[]{String.class, Long.TYPE});\r
710         }\r
711 \r
712         /**\r
713          * @see java.sql.ResultSet#updateShort(java.lang.String, short)\r
714          */\r
715         public void updateShort(String columnName, short x) throws SQLException {\r
716                 clusterCall("updateShort",new Object[]{columnName, new Short(x)}, new Class[]{String.class, Short.TYPE});\r
717         }\r
718 \r
719         /**\r
720          * @see java.sql.ResultSet#updateBoolean(java.lang.String, boolean)\r
721          */\r
722         public void updateBoolean(String columnName, boolean x)\r
723                 throws SQLException {\r
724                 clusterCall("updateBoolean",new Object[]{columnName, new Boolean(x)}, new Class[]{String.class, Boolean.TYPE});\r
725         }\r
726 \r
727         /**\r
728          * @see java.sql.ResultSet#updateBytes(java.lang.String, byte[])\r
729          */\r
730         public void updateBytes(String columnName, byte[] x) throws SQLException {\r
731                 clusterCall("updateBytes",new Object[]{columnName, x}, new Class[]{String.class, byte[].class});\r
732         }\r
733 \r
734         /**\r
735          * @see java.sql.ResultSet#getBigDecimal(int)\r
736          */\r
737         public BigDecimal getBigDecimal(int columnIndex) throws SQLException {\r
738                 return (BigDecimal)clusterCall("getBigDecimal",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
739         }\r
740 \r
741         /**\r
742          * @deprecated\r
743          * @see java.sql.ResultSet#getBigDecimal(int, int)\r
744          */\r
745         public BigDecimal getBigDecimal(int columnIndex, int scale)\r
746                 throws SQLException {\r
747                 return (BigDecimal)clusterCall("getBigDecimal",new Object[]{new Integer(columnIndex), new Integer(scale)}, new Class[]{Integer.TYPE, Integer.TYPE});\r
748         }\r
749 \r
750         /**\r
751          * @see java.sql.ResultSet#updateBigDecimal(int, java.math.BigDecimal)\r
752          */\r
753         public void updateBigDecimal(int columnIndex, BigDecimal x)\r
754                 throws SQLException {\r
755                 clusterCall("updateBytes",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, BigDecimal.class});\r
756         }\r
757 \r
758         /**\r
759          * @see java.sql.ResultSet#getURL(int)\r
760          */\r
761         public URL getURL(int columnIndex) throws SQLException {\r
762                 return (URL)clusterCall("getURL",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
763         }\r
764 \r
765         /**\r
766          * @see java.sql.ResultSet#getArray(int)\r
767          */\r
768         public Array getArray(int i) throws SQLException {\r
769                 return (Array)clusterCall("getArray",new Object[]{new Integer(i)}, new Class[]{Integer.TYPE});\r
770         }\r
771 \r
772         /**\r
773          * @see java.sql.ResultSet#updateArray(int, java.sql.Array)\r
774          */\r
775         public void updateArray(int columnIndex, Array x) throws SQLException {\r
776                 clusterCall("updateArray",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, Array.class});\r
777         }\r
778 \r
779         /**\r
780          * @see java.sql.ResultSet#getBlob(int)\r
781          */\r
782         public Blob getBlob(int i) throws SQLException {\r
783                 return (Blob)clusterCall("getBlob",new Object[]{new Integer(i)}, new Class[]{Integer.TYPE});\r
784         }\r
785 \r
786         /**\r
787          * @see java.sql.ResultSet#updateBlob(int, java.sql.Blob)\r
788          */\r
789         public void updateBlob(int columnIndex, Blob x) throws SQLException {\r
790                 clusterCall("updateBlob",new Object[]{new Integer(columnIndex), x}, new Class[]{Blob.class});\r
791         }\r
792 \r
793         /**\r
794          * @see java.sql.ResultSet#getClob(int)\r
795          */\r
796         public Clob getClob(int i) throws SQLException {\r
797                 return (Clob)clusterCall("getClob",new Object[]{new Integer(i)}, new Class[]{Integer.TYPE});\r
798         }\r
799 \r
800         /**\r
801          * @see java.sql.ResultSet#updateClob(int, java.sql.Clob)\r
802          */\r
803         public void updateClob(int columnIndex, Clob x) throws SQLException {\r
804                 clusterCall("updateClob",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, Clob.class});\r
805         }\r
806 \r
807         /**\r
808          * @see java.sql.ResultSet#getDate(int)\r
809          */\r
810         public Date getDate(int columnIndex) throws SQLException {\r
811                 return (Date)clusterCall("getDate",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
812         }\r
813 \r
814         /**\r
815          * @see java.sql.ResultSet#updateDate(int, java.sql.Date)\r
816          */\r
817         public void updateDate(int columnIndex, Date x) throws SQLException {\r
818                 clusterCall("updateDate",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, Date.class});\r
819         }\r
820 \r
821         /**\r
822          * @see java.sql.ResultSet#getRef(int)\r
823          */\r
824         public Ref getRef(int i) throws SQLException {\r
825                 return (Ref)clusterCall("getRef",new Object[]{new Integer(i)}, new Class[]{Integer.TYPE});\r
826         }\r
827 \r
828         /**\r
829          * @see java.sql.ResultSet#updateRef(int, java.sql.Ref)\r
830          */\r
831         public void updateRef(int columnIndex, Ref x) throws SQLException {\r
832                 clusterCall("updateRef",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, Ref.class});\r
833         }\r
834 \r
835         /**\r
836          * @see java.sql.ResultSet#getMetaData()\r
837          */\r
838         public ResultSetMetaData getMetaData() throws SQLException {\r
839                 return (ResultSetMetaData)clusterCall("getMetaData", null, null);\r
840         }\r
841 \r
842         /**\r
843          * @see java.sql.ResultSet#getWarnings()\r
844          */\r
845         public SQLWarning getWarnings() throws SQLException {\r
846                 return (SQLWarning)clusterCall("getWarnings", null, null);\r
847         }\r
848 \r
849         /**\r
850          * @see java.sql.ResultSet#getStatement()\r
851          */\r
852         public Statement getStatement() throws SQLException {\r
853                 return (Statement)clusterCall("getStatement", null, null);\r
854         }\r
855 \r
856         /**\r
857          * @see java.sql.ResultSet#getTime(int)\r
858          */\r
859         public Time getTime(int columnIndex) throws SQLException {\r
860                 return (Time)clusterCall("getTime",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
861         }\r
862 \r
863         /**\r
864          * @see java.sql.ResultSet#updateTime(int, java.sql.Time)\r
865          */\r
866         public void updateTime(int columnIndex, Time x) throws SQLException {\r
867                 clusterCall("updateTime",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, Time.class});\r
868         }\r
869 \r
870         /**\r
871          * @see java.sql.ResultSet#getTimestamp(int)\r
872          */\r
873         public Timestamp getTimestamp(int columnIndex) throws SQLException {\r
874                 return (Timestamp)clusterCall("getTimestamp",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
875         }\r
876 \r
877         /**\r
878          * @see java.sql.ResultSet#updateTimestamp(int, java.sql.Timestamp)\r
879          */\r
880         public void updateTimestamp(int columnIndex, Timestamp x)\r
881                 throws SQLException {\r
882                 clusterCall("updateTimestamp",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE});\r
883         }\r
884 \r
885         /**\r
886          * @see java.sql.ResultSet#getAsciiStream(java.lang.String)\r
887          */\r
888         public InputStream getAsciiStream(String columnName) throws SQLException {\r
889                 return (InputStream)clusterCall("getAsciiStream",new Object[]{columnName}, new Class[]{String.class});\r
890         }\r
891 \r
892         /**\r
893          * @see java.sql.ResultSet#getBinaryStream(java.lang.String)\r
894          */\r
895         public InputStream getBinaryStream(String columnName) throws SQLException {\r
896                 return (InputStream)clusterCall("getBinaryStream",new Object[]{columnName}, new Class[]{String.class});\r
897         }\r
898 \r
899         /**\r
900          * @deprecated\r
901          * @see java.sql.ResultSet#getUnicodeStream(java.lang.String)\r
902          */\r
903         public InputStream getUnicodeStream(String columnName)\r
904                 throws SQLException {\r
905                 return (InputStream)clusterCall("getUnicodeStream",new Object[]{columnName}, new Class[]{String.class});\r
906         }\r
907 \r
908         /**\r
909          * @see java.sql.ResultSet#updateAsciiStream(java.lang.String, java.io.InputStream, int)\r
910          */\r
911         public void updateAsciiStream(String columnName, InputStream x, int length)\r
912                 throws SQLException {\r
913                 clusterCall("updateAsciiStream",new Object[]{columnName, x, new Integer(length)}, new Class[]{String.class, InputStream.class, Integer.TYPE});\r
914         }\r
915 \r
916         /**\r
917          * @see java.sql.ResultSet#updateBinaryStream(java.lang.String, java.io.InputStream, int)\r
918          */\r
919         public void updateBinaryStream(\r
920                 String columnName,\r
921                 InputStream x,\r
922                 int length)\r
923                 throws SQLException {\r
924                 clusterCall("updateBinaryStream",new Object[]{columnName, x, new Integer(length)}, new Class[]{String.class, InputStream.class, Integer.TYPE});\r
925         }\r
926 \r
927         /**\r
928          * @see java.sql.ResultSet#getCharacterStream(java.lang.String)\r
929          */\r
930         public Reader getCharacterStream(String columnName) throws SQLException {\r
931                 return (Reader)clusterCall("getCharacterStream",new Object[]{columnName}, new Class[]{String.class});\r
932         }\r
933 \r
934         /**\r
935          * @see java.sql.ResultSet#updateCharacterStream(java.lang.String, java.io.Reader, int)\r
936          */\r
937         public void updateCharacterStream(\r
938                 String columnName,\r
939                 Reader reader,\r
940                 int length)\r
941                 throws SQLException {\r
942                 clusterCall("updateCharacterStream",new Object[]{columnName, reader, new Integer(length)}, new Class[]{String.class, Reader.class, Integer.TYPE});\r
943 \r
944         }\r
945 \r
946         /**\r
947          * @see java.sql.ResultSet#getObject(java.lang.String)\r
948          */\r
949         public Object getObject(String columnName) throws SQLException {\r
950                 return clusterCall("getObject",new Object[]{columnName}, new Class[]{String.class});\r
951         }\r
952 \r
953         /**\r
954          * @see java.sql.ResultSet#updateObject(java.lang.String, java.lang.Object)\r
955          */\r
956         public void updateObject(String columnName, Object x) throws SQLException {\r
957                 clusterCall("updateObject",new Object[]{columnName, x}, new Class[]{String.class, Object.class});\r
958         }\r
959 \r
960         /**\r
961          * @see java.sql.ResultSet#updateObject(java.lang.String, java.lang.Object, int)\r
962          */\r
963         public void updateObject(String columnName, Object x, int scale)\r
964                 throws SQLException {\r
965                 clusterCall("updateObject",new Object[]{columnName, x, new Integer(scale)}, new Class[]{String.class, Object.class, Integer.TYPE});\r
966         }\r
967 \r
968         /**\r
969          * @throws SQLException\r
970          * @see java.sql.ResultSet#getObject(int, java.util.Map)\r
971          */\r
972         //@Override\r
973         public Object getObject(int i, Map<String, Class<?>> map) throws SQLException{\r
974                 return clusterCall("getObject",new Object[]{new Integer(i), map}, new Class[]{Integer.TYPE, Map.class});\r
975         }\r
976 \r
977         /**\r
978          * @see java.sql.ResultSet#getString(java.lang.String)\r
979          */\r
980         public String getString(String columnName) throws SQLException {\r
981                 return (String)clusterCall("getString",new Object[]{columnName}, new Class[]{String.class});\r
982         }\r
983 \r
984         /**\r
985          * @see java.sql.ResultSet#updateString(java.lang.String, java.lang.String)\r
986          */\r
987         public void updateString(String columnName, String x) throws SQLException {\r
988                 clusterCall("updateString",new Object[]{columnName, x}, new Class[]{String.class, String.class});\r
989         }\r
990 \r
991         /**\r
992          * @see java.sql.ResultSet#getBigDecimal(java.lang.String)\r
993          */\r
994         public BigDecimal getBigDecimal(String columnName) throws SQLException {\r
995                 return (BigDecimal)clusterCall("getBigDecimal",new Object[]{columnName}, new Class[]{String.class});\r
996         }\r
997 \r
998         /**\r
999          * @deprecated\r
1000          * @see java.sql.ResultSet#getBigDecimal(java.lang.String, int)\r
1001          */\r
1002         public BigDecimal getBigDecimal(String columnName, int scale)\r
1003                 throws SQLException {\r
1004                 return (BigDecimal)clusterCall("getBigDecimal",new Object[]{columnName, new Integer(scale)}, new Class[]{String.class, Integer.TYPE});\r
1005         }\r
1006 \r
1007         /**\r
1008          * @see java.sql.ResultSet#updateBigDecimal(java.lang.String, java.math.BigDecimal)\r
1009          */\r
1010         public void updateBigDecimal(String columnName, BigDecimal x)\r
1011                 throws SQLException {\r
1012                 clusterCall("updateBigDecimal",new Object[]{columnName, x}, new Class[]{String.class, BigDecimal.class});\r
1013         }\r
1014 \r
1015         /**\r
1016          * @see java.sql.ResultSet#getURL(java.lang.String)\r
1017          */\r
1018         public URL getURL(String columnName) throws SQLException {\r
1019                 return (URL)clusterCall("getURL",new Object[]{columnName}, new Class[]{String.class});\r
1020         }\r
1021 \r
1022         /**\r
1023          * @see java.sql.ResultSet#getArray(java.lang.String)\r
1024          */\r
1025         public Array getArray(String columnName) throws SQLException {\r
1026                 return (Array)clusterCall("getArray",new Object[]{columnName}, new Class[]{String.class});\r
1027         }\r
1028 \r
1029         /**\r
1030          * @see java.sql.ResultSet#updateArray(java.lang.String, java.sql.Array)\r
1031          */\r
1032         public void updateArray(String columnName, Array x) throws SQLException {\r
1033                 clusterCall("updateArray",new Object[]{columnName, x}, new Class[]{String.class, Array.class});\r
1034         }\r
1035 \r
1036         /**\r
1037          * @see java.sql.ResultSet#getBlob(java.lang.String)\r
1038          */\r
1039         public Blob getBlob(String columnName) throws SQLException {\r
1040                 return (Blob)clusterCall("getBlob",new Object[]{columnName}, new Class[]{String.class});\r
1041         }\r
1042 \r
1043         /**\r
1044          * @see java.sql.ResultSet#updateBlob(java.lang.String, java.sql.Blob)\r
1045          */\r
1046         public void updateBlob(String columnName, Blob x) throws SQLException {\r
1047                 clusterCall("updateBlob",new Object[]{columnName, x}, new Class[]{String.class, Blob.class});\r
1048         }\r
1049 \r
1050         /**\r
1051          * @see java.sql.ResultSet#getClob(java.lang.String)\r
1052          */\r
1053         public Clob getClob(String columnName) throws SQLException {\r
1054                 return (Clob)clusterCall("getClob",new Object[]{columnName}, new Class[]{String.class});\r
1055         }\r
1056 \r
1057         /**\r
1058          * @see java.sql.ResultSet#updateClob(java.lang.String, java.sql.Clob)\r
1059          */\r
1060         public void updateClob(String columnName, Clob x) throws SQLException {\r
1061                 clusterCall("updateClob",new Object[]{columnName, x}, new Class[]{String.class, Clob.class});\r
1062         }\r
1063 \r
1064         /**\r
1065          * @see java.sql.ResultSet#getDate(java.lang.String)\r
1066          */\r
1067         public Date getDate(String columnName) throws SQLException {\r
1068                 return (Date)clusterCall("getDate",new Object[]{columnName}, new Class[]{String.class});\r
1069         }\r
1070 \r
1071         /**\r
1072          * @see java.sql.ResultSet#updateDate(java.lang.String, java.sql.Date)\r
1073          */\r
1074         public void updateDate(String columnName, Date x) throws SQLException {\r
1075                 clusterCall("updateDate",new Object[]{columnName, x}, new Class[]{String.class, Date.class});\r
1076         }\r
1077 \r
1078         /**\r
1079          * @see java.sql.ResultSet#getDate(int, java.util.Calendar)\r
1080          */\r
1081         public Date getDate(int columnIndex, Calendar cal) throws SQLException {\r
1082                 return (Date)clusterCall("getDate",new Object[]{new Integer(columnIndex), cal}, new Class[]{String.class, Calendar.class});\r
1083         }\r
1084 \r
1085         /**\r
1086          * @see java.sql.ResultSet#getRef(java.lang.String)\r
1087          */\r
1088         public Ref getRef(String columnName) throws SQLException {\r
1089                 return (Ref)clusterCall("getRef",new Object[]{columnName}, new Class[]{String.class});\r
1090         }\r
1091 \r
1092         /**\r
1093          * @see java.sql.ResultSet#updateRef(java.lang.String, java.sql.Ref)\r
1094          */\r
1095         public void updateRef(String columnName, Ref x) throws SQLException {\r
1096                 clusterCall("updateRef",new Object[]{columnName, x}, new Class[]{String.class, Ref.class});\r
1097         }\r
1098 \r
1099         /**\r
1100          * @see java.sql.ResultSet#getTime(java.lang.String)\r
1101          */\r
1102         public Time getTime(String columnName) throws SQLException {\r
1103                 return (Time)clusterCall("getTime",new Object[]{columnName}, new Class[]{String.class});\r
1104         }\r
1105 \r
1106         /**\r
1107          * @see java.sql.ResultSet#updateTime(java.lang.String, java.sql.Time)\r
1108          */\r
1109         public void updateTime(String columnName, Time x) throws SQLException {\r
1110                 clusterCall("updateTime",new Object[]{columnName, x}, new Class[]{String.class, Time.class});\r
1111         }\r
1112 \r
1113         /**\r
1114          * @see java.sql.ResultSet#getTime(int, java.util.Calendar)\r
1115          */\r
1116         public Time getTime(int columnIndex, Calendar cal) throws SQLException {\r
1117                 return (Time)clusterCall("getTime",new Object[]{new Integer(columnIndex), cal}, new Class[]{String.class, Calendar.class});\r
1118         }\r
1119 \r
1120         /**\r
1121          * @see java.sql.ResultSet#getTimestamp(java.lang.String)\r
1122          */\r
1123         public Timestamp getTimestamp(String columnName) throws SQLException {\r
1124                 return (Timestamp)clusterCall("getTimestamp",new Object[]{columnName}, new Class[]{String.class});\r
1125         }\r
1126 \r
1127         /**\r
1128          * @see java.sql.ResultSet#updateTimestamp(java.lang.String, java.sql.Timestamp)\r
1129          */\r
1130         public void updateTimestamp(String columnName, Timestamp x)\r
1131                 throws SQLException {\r
1132                 clusterCall("updateTimestamp",new Object[]{columnName, x}, new Class[]{String.class, Timestamp.class});\r
1133         }\r
1134 \r
1135         /**\r
1136          * @see java.sql.ResultSet#getTimestamp(int, java.util.Calendar)\r
1137          */\r
1138         public Timestamp getTimestamp(int columnIndex, Calendar cal)\r
1139                 throws SQLException {\r
1140                 return (Timestamp)clusterCall("getTimestamp",new Object[]{new Integer(columnIndex), cal}, new Class[]{Integer.TYPE, Calendar.class});\r
1141         }\r
1142 \r
1143         /**\r
1144          * @throws SQLException\r
1145          * @see java.sql.ResultSet#getObject(java.lang.String, java.util.Map)\r
1146          */\r
1147         //@Override\r
1148         public Object getObject(String columnName, Map<String, Class<?>> map) throws SQLException{\r
1149                 return clusterCall("getObject",new Object[]{columnName, map}, new Class[]{String.class, Map.class});\r
1150         }\r
1151 \r
1152         /**\r
1153          * @see java.sql.ResultSet#getDate(java.lang.String, java.util.Calendar)\r
1154          */\r
1155         public Date getDate(String columnName, Calendar cal) throws SQLException {\r
1156                 return (Date)clusterCall("getDate",new Object[]{columnName, cal}, new Class[]{String.class, Calendar.class});\r
1157         }\r
1158 \r
1159         /**\r
1160          * @see java.sql.ResultSet#getTime(java.lang.String, java.util.Calendar)\r
1161          */\r
1162         public Time getTime(String columnName, Calendar cal) throws SQLException {\r
1163                 return (Time)clusterCall("getTime",new Object[]{columnName, cal}, new Class[]{String.class, Calendar.class});\r
1164         }\r
1165 \r
1166         /**\r
1167          * @see java.sql.ResultSet#getTimestamp(java.lang.String, java.util.Calendar)\r
1168          */\r
1169         public Timestamp getTimestamp(String columnName, Calendar cal)\r
1170                 throws SQLException {\r
1171                 return (Timestamp)clusterCall("getTimestamp",new Object[]{columnName, cal}, new Class[]{String.class, Calendar.class});\r
1172         }\r
1173 \r
1174         // ----\r
1175         // 以下未実装\r
1176         // ----\r
1177 \r
1178         //@Override\r
1179         public Reader getNCharacterStream(int arg0) throws SQLException {\r
1180                 // TODO 自動生成されたメソッド・スタブ\r
1181                 return null;\r
1182         }\r
1183 \r
1184         //@Override\r
1185         public Reader getNCharacterStream(String arg0) throws SQLException {\r
1186                 // TODO 自動生成されたメソッド・スタブ\r
1187                 return null;\r
1188         }\r
1189 \r
1190         //@Override\r
1191         public NClob getNClob(int arg0) throws SQLException {\r
1192                 // TODO 自動生成されたメソッド・スタブ\r
1193                 return null;\r
1194         }\r
1195 \r
1196         //@Override\r
1197         public NClob getNClob(String arg0) throws SQLException {\r
1198                 // TODO 自動生成されたメソッド・スタブ\r
1199                 return null;\r
1200         }\r
1201 \r
1202         //@Override\r
1203         public String getNString(int arg0) throws SQLException {\r
1204                 // TODO 自動生成されたメソッド・スタブ\r
1205                 return null;\r
1206         }\r
1207 \r
1208         //@Override\r
1209         public String getNString(String arg0) throws SQLException {\r
1210                 // TODO 自動生成されたメソッド・スタブ\r
1211                 return null;\r
1212         }\r
1213 \r
1214         //@Override\r
1215         public RowId getRowId(int arg0) throws SQLException {\r
1216                 // TODO 自動生成されたメソッド・スタブ\r
1217                 return null;\r
1218         }\r
1219 \r
1220         //@Override\r
1221         public RowId getRowId(String arg0) throws SQLException {\r
1222                 // TODO 自動生成されたメソッド・スタブ\r
1223                 return null;\r
1224         }\r
1225 \r
1226         //@Override\r
1227         public SQLXML getSQLXML(int arg0) throws SQLException {\r
1228                 // TODO 自動生成されたメソッド・スタブ\r
1229                 return null;\r
1230         }\r
1231 \r
1232         //@Override\r
1233         public SQLXML getSQLXML(String arg0) throws SQLException {\r
1234                 // TODO 自動生成されたメソッド・スタブ\r
1235                 return null;\r
1236         }\r
1237 \r
1238         //@Override\r
1239         public boolean isClosed() throws SQLException {\r
1240                 // TODO 自動生成されたメソッド・スタブ\r
1241                 return false;\r
1242         }\r
1243 \r
1244         //@Override\r
1245         public void updateAsciiStream(int arg0, InputStream arg1)\r
1246                         throws SQLException {\r
1247                 // TODO 自動生成されたメソッド・スタブ\r
1248 \r
1249         }\r
1250 \r
1251         //@Override\r
1252         public void updateAsciiStream(String arg0, InputStream arg1)\r
1253                         throws SQLException {\r
1254                 // TODO 自動生成されたメソッド・スタブ\r
1255 \r
1256         }\r
1257 \r
1258         //@Override\r
1259         public void updateAsciiStream(int arg0, InputStream arg1, long arg2)\r
1260                         throws SQLException {\r
1261                 // TODO 自動生成されたメソッド・スタブ\r
1262 \r
1263         }\r
1264 \r
1265         //@Override\r
1266         public void updateAsciiStream(String arg0, InputStream arg1, long arg2)\r
1267                         throws SQLException {\r
1268                 // TODO 自動生成されたメソッド・スタブ\r
1269 \r
1270         }\r
1271 \r
1272         //@Override\r
1273         public void updateBinaryStream(int arg0, InputStream arg1)\r
1274                         throws SQLException {\r
1275                 // TODO 自動生成されたメソッド・スタブ\r
1276 \r
1277         }\r
1278 \r
1279         //@Override\r
1280         public void updateBinaryStream(String arg0, InputStream arg1)\r
1281                         throws SQLException {\r
1282                 // TODO 自動生成されたメソッド・スタブ\r
1283 \r
1284         }\r
1285 \r
1286         //@Override\r
1287         public void updateBinaryStream(int arg0, InputStream arg1, long arg2)\r
1288                         throws SQLException {\r
1289                 // TODO 自動生成されたメソッド・スタブ\r
1290 \r
1291         }\r
1292 \r
1293         //@Override\r
1294         public void updateBinaryStream(String arg0, InputStream arg1, long arg2)\r
1295                         throws SQLException {\r
1296                 // TODO 自動生成されたメソッド・スタブ\r
1297 \r
1298         }\r
1299 \r
1300         //@Override\r
1301         public void updateBlob(int arg0, InputStream arg1) throws SQLException {\r
1302                 // TODO 自動生成されたメソッド・スタブ\r
1303 \r
1304         }\r
1305 \r
1306         //@Override\r
1307         public void updateBlob(String arg0, InputStream arg1) throws SQLException {\r
1308                 // TODO 自動生成されたメソッド・スタブ\r
1309 \r
1310         }\r
1311 \r
1312         //@Override\r
1313         public void updateBlob(int arg0, InputStream arg1, long arg2)\r
1314                         throws SQLException {\r
1315                 // TODO 自動生成されたメソッド・スタブ\r
1316 \r
1317         }\r
1318 \r
1319         //@Override\r
1320         public void updateBlob(String arg0, InputStream arg1, long arg2)\r
1321                         throws SQLException {\r
1322                 // TODO 自動生成されたメソッド・スタブ\r
1323 \r
1324         }\r
1325 \r
1326         //@Override\r
1327         public void updateCharacterStream(int arg0, Reader arg1)\r
1328                         throws SQLException {\r
1329                 // TODO 自動生成されたメソッド・スタブ\r
1330 \r
1331         }\r
1332 \r
1333         //@Override\r
1334         public void updateCharacterStream(String arg0, Reader arg1)\r
1335                         throws SQLException {\r
1336                 // TODO 自動生成されたメソッド・スタブ\r
1337 \r
1338         }\r
1339 \r
1340         //@Override\r
1341         public void updateCharacterStream(int arg0, Reader arg1, long arg2)\r
1342                         throws SQLException {\r
1343                 // TODO 自動生成されたメソッド・スタブ\r
1344 \r
1345         }\r
1346 \r
1347         //@Override\r
1348         public void updateCharacterStream(String arg0, Reader arg1, long arg2)\r
1349                         throws SQLException {\r
1350                 // TODO 自動生成されたメソッド・スタブ\r
1351 \r
1352         }\r
1353 \r
1354         //@Override\r
1355         public void updateClob(int arg0, Reader arg1) throws SQLException {\r
1356                 // TODO 自動生成されたメソッド・スタブ\r
1357 \r
1358         }\r
1359 \r
1360         //@Override\r
1361         public void updateClob(String arg0, Reader arg1) throws SQLException {\r
1362                 // TODO 自動生成されたメソッド・スタブ\r
1363 \r
1364         }\r
1365 \r
1366         //@Override\r
1367         public void updateClob(int arg0, Reader arg1, long arg2)\r
1368                         throws SQLException {\r
1369                 // TODO 自動生成されたメソッド・スタブ\r
1370 \r
1371         }\r
1372 \r
1373         //@Override\r
1374         public void updateClob(String arg0, Reader arg1, long arg2)\r
1375                         throws SQLException {\r
1376                 // TODO 自動生成されたメソッド・スタブ\r
1377 \r
1378         }\r
1379 \r
1380         //@Override\r
1381         public void updateNCharacterStream(int arg0, Reader arg1)\r
1382                         throws SQLException {\r
1383                 // TODO 自動生成されたメソッド・スタブ\r
1384 \r
1385         }\r
1386 \r
1387         //@Override\r
1388         public void updateNCharacterStream(String arg0, Reader arg1)\r
1389                         throws SQLException {\r
1390                 // TODO 自動生成されたメソッド・スタブ\r
1391 \r
1392         }\r
1393 \r
1394         //@Override\r
1395         public void updateNCharacterStream(int arg0, Reader arg1, long arg2)\r
1396                         throws SQLException {\r
1397                 // TODO 自動生成されたメソッド・スタブ\r
1398 \r
1399         }\r
1400 \r
1401         //@Override\r
1402         public void updateNCharacterStream(String arg0, Reader arg1, long arg2)\r
1403                         throws SQLException {\r
1404                 // TODO 自動生成されたメソッド・スタブ\r
1405 \r
1406         }\r
1407 \r
1408         //@Override\r
1409         public void updateNClob(int arg0, NClob arg1) throws SQLException {\r
1410                 // TODO 自動生成されたメソッド・スタブ\r
1411 \r
1412         }\r
1413 \r
1414         //@Override\r
1415         public void updateNClob(String arg0, NClob arg1) throws SQLException {\r
1416                 // TODO 自動生成されたメソッド・スタブ\r
1417 \r
1418         }\r
1419 \r
1420         //@Override\r
1421         public void updateNClob(int arg0, Reader arg1) throws SQLException {\r
1422                 // TODO 自動生成されたメソッド・スタブ\r
1423 \r
1424         }\r
1425 \r
1426         //@Override\r
1427         public void updateNClob(String arg0, Reader arg1) throws SQLException {\r
1428                 // TODO 自動生成されたメソッド・スタブ\r
1429 \r
1430         }\r
1431 \r
1432         //@Override\r
1433         public void updateNClob(int arg0, Reader arg1, long arg2)\r
1434                         throws SQLException {\r
1435                 // TODO 自動生成されたメソッド・スタブ\r
1436 \r
1437         }\r
1438 \r
1439         //@Override\r
1440         public void updateNClob(String arg0, Reader arg1, long arg2)\r
1441                         throws SQLException {\r
1442                 // TODO 自動生成されたメソッド・スタブ\r
1443 \r
1444         }\r
1445 \r
1446         //@Override\r
1447         public void updateNString(int arg0, String arg1) throws SQLException {\r
1448                 // TODO 自動生成されたメソッド・スタブ\r
1449 \r
1450         }\r
1451 \r
1452         //@Override\r
1453         public void updateNString(String arg0, String arg1) throws SQLException {\r
1454                 // TODO 自動生成されたメソッド・スタブ\r
1455 \r
1456         }\r
1457 \r
1458         //@Override\r
1459         public void updateRowId(int arg0, RowId arg1) throws SQLException {\r
1460                 // TODO 自動生成されたメソッド・スタブ\r
1461 \r
1462         }\r
1463 \r
1464         //@Override\r
1465         public void updateRowId(String arg0, RowId arg1) throws SQLException {\r
1466                 // TODO 自動生成されたメソッド・スタブ\r
1467 \r
1468         }\r
1469 \r
1470         //@Override\r
1471         public void updateSQLXML(int arg0, SQLXML arg1) throws SQLException {\r
1472                 // TODO 自動生成されたメソッド・スタブ\r
1473 \r
1474         }\r
1475 \r
1476         //@Override\r
1477         public void updateSQLXML(String arg0, SQLXML arg1) throws SQLException {\r
1478                 // TODO 自動生成されたメソッド・スタブ\r
1479 \r
1480         }\r
1481 \r
1482         //@Override\r
1483         public boolean isWrapperFor(Class<?> iface) throws SQLException {\r
1484                 // TODO 自動生成されたメソッド・スタブ\r
1485                 return false;\r
1486         }\r
1487 \r
1488         //@Override\r
1489         public <T> T unwrap(Class<T> iface) throws SQLException {\r
1490                 // TODO 自動生成されたメソッド・スタブ\r
1491                 return null;\r
1492         }\r
1493 \r
1494         //@Override\r
1495         public int getHoldability() throws SQLException {\r
1496                 // TODO 自動生成されたメソッド・スタブ\r
1497                 return 0;\r
1498         }\r
1499 \r
1500 \r
1501 }\r