KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > hajdbc > sql > Connection


1 /*
2  * HA-JDBC: High-Availability JDBC
3  * Copyright (c) 2004-2006 Paul Ferraro
4  *
5  * This library is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU Lesser General Public License as published by the
7  * Free Software Foundation; either version 2.1 of the License, or (at your
8  * option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
13  * for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with this library; if not, write to the Free Software Foundation,
17  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * Contact: ferraro@users.sourceforge.net
20  */

21 package net.sf.hajdbc.sql;
22
23 import java.sql.DatabaseMetaData JavaDoc;
24 import java.sql.SQLException JavaDoc;
25 import java.sql.SQLWarning JavaDoc;
26 import java.util.Map JavaDoc;
27
28 import net.sf.hajdbc.Database;
29 import net.sf.hajdbc.Operation;
30
31 /**
32  * @author Paul Ferraro
33  * @version $Revision: 1480 $
34  * @param <P> SQL object that created this connection - either java.sql.Driver or javax.sql.DataSource
35  * @since 1.0
36  */

37 public class Connection<P> extends SQLObject<java.sql.Connection JavaDoc, P> implements java.sql.Connection JavaDoc
38 {
39     private FileSupport fileSupport;
40     
41     /**
42      * Constructs a new ConnectionProxy.
43      * @param object a proxy to an object that can create connections
44      * @param operation an operation that will create Connections
45      * @param fileSupport a file support object
46      * @throws java.sql.SQLException if operation execution fails
47      */

48     public Connection(SQLObject<P, ?> object, Operation<P, java.sql.Connection JavaDoc> operation, FileSupport fileSupport) throws java.sql.SQLException JavaDoc
49     {
50         super(object, operation, object.getDatabaseCluster().getNonTransactionalExecutor(), null);
51         
52         this.fileSupport = fileSupport;
53     }
54     
55     /**
56      * @see java.sql.Connection#clearWarnings()
57      */

58     public void clearWarnings() throws SQLException JavaDoc
59     {
60         Operation<java.sql.Connection JavaDoc, Void JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, Void JavaDoc>()
61         {
62             public Void JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
63             {
64                 connection.clearWarnings();
65                 
66                 return null;
67             }
68         };
69         
70         this.executeWriteToDriver(operation);
71     }
72
73     /**
74      * @see java.sql.Connection#close()
75      */

76     public void close() throws SQLException JavaDoc
77     {
78         Operation<java.sql.Connection JavaDoc, Void JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, Void JavaDoc>()
79         {
80             public Void JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
81             {
82                 connection.close();
83                 
84                 return null;
85             }
86         };
87         
88         this.executeNonTransactionalWriteToDatabase(operation);
89         
90         this.fileSupport.close();
91     }
92
93     /**
94      * @see java.sql.Connection#commit()
95      */

96     public void commit() throws SQLException JavaDoc
97     {
98         Operation<java.sql.Connection JavaDoc, Void JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, Void JavaDoc>()
99         {
100             public Void JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
101             {
102                 connection.commit();
103                 
104                 return null;
105             }
106         };
107         
108         this.executeNonTransactionalWriteToDatabase(operation);
109     }
110
111     /**
112      * @see java.sql.Connection#createStatement()
113      */

114     public java.sql.Statement JavaDoc createStatement() throws SQLException JavaDoc
115     {
116         Operation<java.sql.Connection JavaDoc, java.sql.Statement JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, java.sql.Statement JavaDoc>()
117         {
118             public java.sql.Statement JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
119             {
120                 return connection.createStatement();
121             }
122         };
123         
124         return this.isReadOnly() ? this.executeReadFromDriver(operation) : new Statement<java.sql.Statement JavaDoc>(this, operation);
125     }
126
127     /**
128      * @see java.sql.Connection#createStatement(int, int)
129      */

130     public java.sql.Statement JavaDoc createStatement(final int resultSetType, final int resultSetConcurrency) throws SQLException JavaDoc
131     {
132         Operation<java.sql.Connection JavaDoc, java.sql.Statement JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, java.sql.Statement JavaDoc>()
133         {
134             public java.sql.Statement JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
135             {
136                 return connection.createStatement(resultSetType, resultSetConcurrency);
137             }
138         };
139         
140         return this.isReadOnly() ? this.executeReadFromDriver(operation) : new Statement<java.sql.Statement JavaDoc>(this, operation);
141     }
142
143     /**
144      * @see java.sql.Connection#createStatement(int, int, int)
145      */

146     public java.sql.Statement JavaDoc createStatement(final int resultSetType, final int resultSetConcurrency, final int resultSetHoldability) throws SQLException JavaDoc
147     {
148         Operation<java.sql.Connection JavaDoc, java.sql.Statement JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, java.sql.Statement JavaDoc>()
149         {
150             public java.sql.Statement JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
151             {
152                 return connection.createStatement(resultSetType, resultSetConcurrency, resultSetHoldability);
153             }
154         };
155         
156         return this.isReadOnly() ? this.executeReadFromDriver(operation) : new Statement<java.sql.Statement JavaDoc>(this, operation);
157     }
158
159     /**
160      * @see java.sql.Connection#getAutoCommit()
161      */

162     public boolean getAutoCommit() throws SQLException JavaDoc
163     {
164         Operation<java.sql.Connection JavaDoc, Boolean JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, Boolean JavaDoc>()
165         {
166             public Boolean JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
167             {
168                 return connection.getAutoCommit();
169             }
170         };
171         
172         return this.executeReadFromDriver(operation);
173     }
174
175     /**
176      * @see java.sql.Connection#getCatalog()
177      */

178     public String JavaDoc getCatalog() throws SQLException JavaDoc
179     {
180         Operation<java.sql.Connection JavaDoc, String JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, String JavaDoc>()
181         {
182             public String JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
183             {
184                 return connection.getCatalog();
185             }
186         };
187         
188         return this.executeReadFromDatabase(operation);
189     }
190
191     /**
192      * @see java.sql.Connection#getHoldability()
193      */

194     public int getHoldability() throws SQLException JavaDoc
195     {
196         Operation<java.sql.Connection JavaDoc, Integer JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, Integer JavaDoc>()
197         {
198             public Integer JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
199             {
200                 return connection.getHoldability();
201             }
202         };
203         
204         return this.executeReadFromDriver(operation);
205     }
206
207     /**
208      * @see java.sql.Connection#getMetaData()
209      */

210     public DatabaseMetaData JavaDoc getMetaData() throws SQLException JavaDoc
211     {
212         Operation<java.sql.Connection JavaDoc, DatabaseMetaData JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, DatabaseMetaData JavaDoc>()
213         {
214             public DatabaseMetaData JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
215             {
216                 return connection.getMetaData();
217             }
218         };
219         
220         return this.executeReadFromDatabase(operation);
221     }
222
223     /**
224      * @see java.sql.Connection#getTransactionIsolation()
225      */

226     public int getTransactionIsolation() throws SQLException JavaDoc
227     {
228         Operation<java.sql.Connection JavaDoc, Integer JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, Integer JavaDoc>()
229         {
230             public Integer JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
231             {
232                 return connection.getTransactionIsolation();
233             }
234         };
235         
236         return this.executeReadFromDatabase(operation);
237     }
238
239     /**
240      * @see java.sql.Connection#getTypeMap()
241      */

242     public Map JavaDoc<String JavaDoc, Class JavaDoc<?>> getTypeMap() throws SQLException JavaDoc
243     {
244         Operation<java.sql.Connection JavaDoc, Map JavaDoc<String JavaDoc, Class JavaDoc<?>>> operation = new Operation<java.sql.Connection JavaDoc, Map JavaDoc<String JavaDoc, Class JavaDoc<?>>>()
245         {
246             public Map JavaDoc<String JavaDoc, Class JavaDoc<?>> execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
247             {
248                 return connection.getTypeMap();
249             }
250         };
251         
252         return this.executeReadFromDriver(operation);
253     }
254
255     /**
256      * @see java.sql.Connection#getWarnings()
257      */

258     public SQLWarning JavaDoc getWarnings() throws SQLException JavaDoc
259     {
260         Operation<java.sql.Connection JavaDoc, SQLWarning JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, SQLWarning JavaDoc>()
261         {
262             public SQLWarning JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
263             {
264                 return connection.getWarnings();
265             }
266         };
267         
268         return this.executeReadFromDriver(operation);
269     }
270
271     /**
272      * @see java.sql.Connection#isClosed()
273      */

274     public boolean isClosed() throws SQLException JavaDoc
275     {
276         Operation<java.sql.Connection JavaDoc, Boolean JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, Boolean JavaDoc>()
277         {
278             public Boolean JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
279             {
280                 return connection.isClosed();
281             }
282         };
283         
284         return this.executeReadFromDriver(operation);
285     }
286
287     /**
288      * @see java.sql.Connection#isReadOnly()
289      */

290     public boolean isReadOnly() throws SQLException JavaDoc
291     {
292         Operation<java.sql.Connection JavaDoc, Boolean JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, Boolean JavaDoc>()
293         {
294             public Boolean JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
295             {
296                 return connection.isReadOnly();
297             }
298         };
299         
300         return this.executeReadFromDriver(operation);
301     }
302
303     /**
304      * @see java.sql.Connection#nativeSQL(java.lang.String)
305      */

306     public String JavaDoc nativeSQL(final String JavaDoc sql) throws SQLException JavaDoc
307     {
308         Operation<java.sql.Connection JavaDoc, String JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, String JavaDoc>()
309         {
310             public String JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
311             {
312                 return connection.nativeSQL(sql);
313             }
314         };
315         
316         return this.executeReadFromDriver(operation);
317     }
318
319     /**
320      * @see java.sql.Connection#prepareCall(java.lang.String)
321      */

322     public java.sql.CallableStatement JavaDoc prepareCall(final String JavaDoc sql) throws SQLException JavaDoc
323     {
324         Operation<java.sql.Connection JavaDoc, java.sql.CallableStatement JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, java.sql.CallableStatement JavaDoc>()
325         {
326             public java.sql.CallableStatement JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
327             {
328                 return connection.prepareCall(sql);
329             }
330         };
331         
332         return this.isReadOnly() ? this.executeReadFromDatabase(operation) : new CallableStatement(this, operation, sql);
333     }
334
335     /**
336      * @see java.sql.Connection#prepareCall(java.lang.String, int, int)
337      */

338     public java.sql.CallableStatement JavaDoc prepareCall(final String JavaDoc sql, final int resultSetType, final int resultSetConcurrency) throws SQLException JavaDoc
339     {
340         Operation<java.sql.Connection JavaDoc, java.sql.CallableStatement JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, java.sql.CallableStatement JavaDoc>()
341         {
342             public java.sql.CallableStatement JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
343             {
344                 return connection.prepareCall(sql, resultSetType, resultSetConcurrency);
345             }
346         };
347         
348         return this.isReadOnly() ? this.executeReadFromDatabase(operation) : new CallableStatement(this, operation, sql);
349     }
350
351     /**
352      * @see java.sql.Connection#prepareCall(java.lang.String, int, int, int)
353      */

354     public java.sql.CallableStatement JavaDoc prepareCall(final String JavaDoc sql, final int resultSetType, final int resultSetConcurrency, final int resultSetHoldability) throws SQLException JavaDoc
355     {
356         Operation<java.sql.Connection JavaDoc, java.sql.CallableStatement JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, java.sql.CallableStatement JavaDoc>()
357         {
358             public java.sql.CallableStatement JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
359             {
360                 return connection.prepareCall(sql, resultSetType, resultSetConcurrency, resultSetHoldability);
361             }
362         };
363         
364         return this.isReadOnly() ? this.executeReadFromDatabase(operation) : new CallableStatement(this, operation, sql);
365     }
366
367     /**
368      * @see java.sql.Connection#prepareStatement(java.lang.String)
369      */

370     public java.sql.PreparedStatement JavaDoc prepareStatement(final String JavaDoc sql) throws SQLException JavaDoc
371     {
372         Operation<java.sql.Connection JavaDoc, java.sql.PreparedStatement JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, java.sql.PreparedStatement JavaDoc>()
373         {
374             public java.sql.PreparedStatement JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
375             {
376                 return connection.prepareStatement(sql);
377             }
378         };
379         
380         return this.isReadOnly() ? this.executeReadFromDatabase(operation) : new PreparedStatement<java.sql.PreparedStatement JavaDoc>(this, operation, sql);
381     }
382
383     /**
384      * @see java.sql.Connection#prepareStatement(java.lang.String, int)
385      */

386     public java.sql.PreparedStatement JavaDoc prepareStatement(final String JavaDoc sql, final int autoGeneratedKeys) throws SQLException JavaDoc
387     {
388         Operation<java.sql.Connection JavaDoc, java.sql.PreparedStatement JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, java.sql.PreparedStatement JavaDoc>()
389         {
390             public java.sql.PreparedStatement JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
391             {
392                 return connection.prepareStatement(sql, autoGeneratedKeys);
393             }
394         };
395         
396         return this.isReadOnly() ? this.executeReadFromDatabase(operation) : new PreparedStatement<java.sql.PreparedStatement JavaDoc>(this, operation, sql);
397     }
398
399     /**
400      * @see java.sql.Connection#prepareStatement(java.lang.String, int, int)
401      */

402     public java.sql.PreparedStatement JavaDoc prepareStatement(final String JavaDoc sql, final int resultSetType, final int resultSetConcurrency) throws SQLException JavaDoc
403     {
404         Operation<java.sql.Connection JavaDoc, java.sql.PreparedStatement JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, java.sql.PreparedStatement JavaDoc>()
405         {
406             public java.sql.PreparedStatement JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
407             {
408                 return connection.prepareStatement(sql, resultSetType, resultSetConcurrency);
409             }
410         };
411         
412         return this.isReadOnly() ? this.executeReadFromDatabase(operation) : new PreparedStatement<java.sql.PreparedStatement JavaDoc>(this, operation, sql);
413     }
414
415     /**
416      * @see java.sql.Connection#prepareStatement(java.lang.String, int, int, int)
417      */

418     public java.sql.PreparedStatement JavaDoc prepareStatement(final String JavaDoc sql, final int resultSetType, final int resultSetConcurrency, final int resultSetHoldability) throws SQLException JavaDoc
419     {
420         Operation<java.sql.Connection JavaDoc, java.sql.PreparedStatement JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, java.sql.PreparedStatement JavaDoc>()
421         {
422             public java.sql.PreparedStatement JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
423             {
424                 return connection.prepareStatement(sql, resultSetType, resultSetConcurrency, resultSetHoldability);
425             }
426         };
427         
428         return this.isReadOnly() ? this.executeReadFromDatabase(operation) : new PreparedStatement<java.sql.PreparedStatement JavaDoc>(this, operation, sql);
429     }
430
431     /**
432      * @see java.sql.Connection#prepareStatement(java.lang.String, int[])
433      */

434     public java.sql.PreparedStatement JavaDoc prepareStatement(final String JavaDoc sql, final int[] columnIndexes) throws SQLException JavaDoc
435     {
436         Operation<java.sql.Connection JavaDoc, java.sql.PreparedStatement JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, java.sql.PreparedStatement JavaDoc>()
437         {
438             public java.sql.PreparedStatement JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
439             {
440                 return connection.prepareStatement(sql, columnIndexes);
441             }
442         };
443         
444         return this.isReadOnly() ? this.executeReadFromDatabase(operation) : new PreparedStatement<java.sql.PreparedStatement JavaDoc>(this, operation, sql);
445     }
446
447     /**
448      * @see java.sql.Connection#prepareStatement(java.lang.String, java.lang.String[])
449      */

450     public java.sql.PreparedStatement JavaDoc prepareStatement(final String JavaDoc sql, final String JavaDoc[] columnNames) throws SQLException JavaDoc
451     {
452         Operation<java.sql.Connection JavaDoc, java.sql.PreparedStatement JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, java.sql.PreparedStatement JavaDoc>()
453         {
454             public java.sql.PreparedStatement JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
455             {
456                 return connection.prepareStatement(sql, columnNames);
457             }
458         };
459         
460         return this.isReadOnly() ? this.executeReadFromDatabase(operation) : new PreparedStatement<java.sql.PreparedStatement JavaDoc>(this, operation, sql);
461     }
462
463     /**
464      * @see java.sql.Connection#releaseSavepoint(java.sql.Savepoint)
465      */

466     public void releaseSavepoint(final java.sql.Savepoint JavaDoc savepoint) throws SQLException JavaDoc
467     {
468         Operation<java.sql.Connection JavaDoc, Void JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, Void JavaDoc>()
469         {
470             public Void JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
471             {
472                 connection.releaseSavepoint(Savepoint.class.cast(savepoint));
473                 
474                 return null;
475             }
476         };
477         
478         this.executeTransactionalWriteToDatabase(operation);
479     }
480
481     /**
482      * @see java.sql.Connection#rollback()
483      */

484     public void rollback() throws SQLException JavaDoc
485     {
486         Operation<java.sql.Connection JavaDoc, Void JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, Void JavaDoc>()
487         {
488             public Void JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
489             {
490                 connection.rollback();
491                 
492                 return null;
493             }
494         };
495         
496         this.executeNonTransactionalWriteToDatabase(operation);
497     }
498
499     /**
500      * @see java.sql.Connection#rollback(java.sql.Savepoint)
501      */

502     public void rollback(final java.sql.Savepoint JavaDoc savepoint) throws SQLException JavaDoc
503     {
504         Operation<java.sql.Connection JavaDoc, Void JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, Void JavaDoc>()
505         {
506             public Void JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
507             {
508                 connection.rollback(Savepoint.class.cast(savepoint));
509                 
510                 return null;
511             }
512         };
513         
514         this.executeTransactionalWriteToDatabase(operation);
515     }
516
517     /**
518      * @see java.sql.Connection#setAutoCommit(boolean)
519      */

520     public void setAutoCommit(final boolean autoCommit) throws SQLException JavaDoc
521     {
522         Operation<java.sql.Connection JavaDoc, Void JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, Void JavaDoc>()
523         {
524             public Void JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
525             {
526                 connection.setAutoCommit(autoCommit);
527                 
528                 return null;
529             }
530         };
531         
532         this.executeNonTransactionalWriteToDatabase(operation);
533
534         this.record(operation);
535     }
536
537     /**
538      * @see java.sql.Connection#setCatalog(java.lang.String)
539      */

540     public void setCatalog(final String JavaDoc catalog) throws SQLException JavaDoc
541     {
542         Operation<java.sql.Connection JavaDoc, Void JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, Void JavaDoc>()
543         {
544             public Void JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
545             {
546                 connection.setCatalog(catalog);
547                 
548                 return null;
549             }
550         };
551         
552         this.executeNonTransactionalWriteToDatabase(operation);
553         
554         this.record(operation);
555     }
556
557     /**
558      * @see java.sql.Connection#setHoldability(int)
559      */

560     public void setHoldability(final int holdability) throws SQLException JavaDoc
561     {
562         Operation<java.sql.Connection JavaDoc, Void JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, Void JavaDoc>()
563         {
564             public Void JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
565             {
566                 connection.setHoldability(holdability);
567                 
568                 return null;
569             }
570         };
571         
572         this.executeWriteToDriver(operation);
573     }
574
575     /**
576      * @see java.sql.Connection#setReadOnly(boolean)
577      */

578     public void setReadOnly(final boolean readOnly) throws SQLException JavaDoc
579     {
580         Operation<java.sql.Connection JavaDoc, Void JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, Void JavaDoc>()
581         {
582             public Void JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
583             {
584                 connection.setReadOnly(readOnly);
585                 
586                 return null;
587             }
588         };
589         
590         this.executeWriteToDriver(operation);
591     }
592
593     /**
594      * @see java.sql.Connection#setSavepoint()
595      */

596     public java.sql.Savepoint JavaDoc setSavepoint() throws SQLException JavaDoc
597     {
598         Operation<java.sql.Connection JavaDoc, java.sql.Savepoint JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, java.sql.Savepoint JavaDoc>()
599         {
600             public java.sql.Savepoint JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
601             {
602                 return connection.setSavepoint();
603             }
604         };
605         
606         return new Savepoint(this, operation);
607     }
608
609     /**
610      * @see java.sql.Connection#setSavepoint(java.lang.String)
611      */

612     public java.sql.Savepoint JavaDoc setSavepoint(final String JavaDoc name) throws SQLException JavaDoc
613     {
614         Operation<java.sql.Connection JavaDoc, java.sql.Savepoint JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, java.sql.Savepoint JavaDoc>()
615         {
616             public java.sql.Savepoint JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
617             {
618                 return connection.setSavepoint(name);
619             }
620         };
621         
622         return new Savepoint(this, operation);
623     }
624
625     /**
626      * @see java.sql.Connection#setTransactionIsolation(int)
627      */

628     public void setTransactionIsolation(final int transactionIsolation) throws SQLException JavaDoc
629     {
630         Operation<java.sql.Connection JavaDoc, Void JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, Void JavaDoc>()
631         {
632             public Void JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
633             {
634                 connection.setTransactionIsolation(transactionIsolation);
635                 
636                 return null;
637             }
638         };
639         
640         this.executeNonTransactionalWriteToDatabase(operation);
641         
642         this.record(operation);
643     }
644
645     /**
646      * @see java.sql.Connection#setTypeMap(java.util.Map)
647      */

648     public void setTypeMap(final Map JavaDoc<String JavaDoc, Class JavaDoc<?>> map) throws SQLException JavaDoc
649     {
650         Operation<java.sql.Connection JavaDoc, Void JavaDoc> operation = new Operation<java.sql.Connection JavaDoc, Void JavaDoc>()
651         {
652             public Void JavaDoc execute(Database database, java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
653             {
654                 connection.setTypeMap(map);
655                 
656                 return null;
657             }
658         };
659         
660         this.executeWriteToDriver(operation);
661     }
662     
663     /**
664      * @return a file support object
665      */

666     public FileSupport getFileSupport()
667     {
668         return this.fileSupport;
669     }
670
671     /**
672      * @see net.sf.hajdbc.sql.SQLObject#close(java.lang.Object)
673      */

674     @Override JavaDoc
675     protected void close(java.sql.Connection JavaDoc connection) throws SQLException JavaDoc
676     {
677         connection.close();
678     }
679 }
680
Popular Tags