You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by di...@apache.org on 2003/12/26 16:16:28 UTC
cvs commit: jakarta-commons/dbcp/src/java/org/apache/commons/dbcp DelegatingCallableStatement.java DelegatingPreparedStatement.java DelegatingStatement.java
dirkv 2003/12/26 07:16:28
Modified: dbcp/src/java/org/apache/commons/dbcp
DelegatingCallableStatement.java
DelegatingPreparedStatement.java
DelegatingStatement.java
Log:
DelegatingPreparedStatement extends DelegatingStatement
DelegatingCallableStatement extends DelegatingPreparedStatement
=> refactoring to remove duplicate code & other general cleanup
=> getDelegate methods changed signature (return always "Statement")
Revision Changes Path
1.13 +11 -52 jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingCallableStatement.java
Index: DelegatingCallableStatement.java
===================================================================
RCS file: /home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingCallableStatement.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- DelegatingCallableStatement.java 9 Oct 2003 21:04:44 -0000 1.12
+++ DelegatingCallableStatement.java 26 Dec 2003 15:16:28 -0000 1.13
@@ -78,7 +78,6 @@
import java.io.Reader;
import java.sql.ResultSetMetaData;
import java.sql.SQLWarning;
-import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
@@ -97,15 +96,14 @@
*
* @author Glenn L. Nielsen
* @author James House (<a href="mailto:james@interobjective.com">james@interobjective.com</a>)
+ * @author Dirk Verbeeck
* @version $Revision$ $Date$
*/
-public class DelegatingCallableStatement extends AbandonedTrace
+public class DelegatingCallableStatement extends DelegatingPreparedStatement
implements CallableStatement {
/** My delegate. */
protected CallableStatement _stmt = null;
- /** The connection that created me. **/
- protected DelegatingConnection _conn = null;
/**
* Create a wrapper for the Statement which traces this
@@ -116,18 +114,12 @@
*/
public DelegatingCallableStatement(DelegatingConnection c,
CallableStatement s) {
- super(c);
- _conn = c;
+ super(c, s);
_stmt = s;
}
- /** Return the {@link CallableStatement} I'm wrapping. */
- public CallableStatement getDelegate() {
- return _stmt;
- }
-
public boolean equals(Object obj) {
- CallableStatement delegate = getInnermostDelegate();
+ CallableStatement delegate = (CallableStatement) getInnermostDelegate();
if (delegate == null) {
return false;
}
@@ -140,41 +132,13 @@
}
}
- public int hashCode() {
- Object obj = getInnermostDelegate();
- if (obj == null) {
- return 0;
- }
- return obj.hashCode();
+ /** Sets my delegate. */
+ public void setDelegate(CallableStatement s) {
+ super.setDelegate(s);
+ _stmt = s;
}
/**
- * If my underlying {@link CallableStatement} is not a
- * <tt>DelegatingCallableStatement</tt>, returns it,
- * otherwise recursively invokes this method on
- * my delegate.
- * <p>
- * Hence this method will return the first
- * delegate that is not a <tt>DelegatingCallableStatement</tt>,
- * or <tt>null</tt> when no non-<tt>DelegatingCallableStatement</tt>
- * delegate can be found by transversing this chain.
- * <p>
- * This method is useful when you may have nested
- * <tt>DelegatingCallableStatement</tt>s, and you want to make
- * sure to obtain a "genuine" {@link CallableStatement}.
- */
- public CallableStatement getInnermostDelegate() {
- CallableStatement s = _stmt;
- while(s != null && s instanceof DelegatingPreparedStatement) {
- s = ((DelegatingCallableStatement)s).getDelegate();
- if(this == s) {
- return null;
- }
- }
- return s;
- }
-
- /**
* Close this DelegatingCallableStatement, and close
* any ResultSets that were not explicitly closed.
*/
@@ -199,10 +163,6 @@
_stmt.close();
}
- public Connection getConnection() throws SQLException {
- return _conn;
- }
-
public ResultSet executeQuery() throws SQLException {
return DelegatingResultSet.wrapResultSet(this,_stmt.executeQuery());
}
@@ -292,7 +252,6 @@
public void clearWarnings() throws SQLException { _stmt.clearWarnings(); }
public void setCursorName(String name) throws SQLException { _stmt.setCursorName( name); }
public boolean execute(String sql) throws SQLException { return _stmt.execute( sql); }
-
public int getUpdateCount() throws SQLException { return _stmt.getUpdateCount(); }
public boolean getMoreResults() throws SQLException { return _stmt.getMoreResults(); }
1.16 +9 -69 jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingPreparedStatement.java
Index: DelegatingPreparedStatement.java
===================================================================
RCS file: /home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingPreparedStatement.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- DelegatingPreparedStatement.java 9 Oct 2003 21:04:44 -0000 1.15
+++ DelegatingPreparedStatement.java 26 Dec 2003 15:16:28 -0000 1.16
@@ -65,7 +65,6 @@
import java.sql.Array;
import java.sql.Blob;
import java.sql.Clob;
-import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.Ref;
import java.sql.ResultSet;
@@ -91,14 +90,14 @@
* @author Rodney Waldhoff
* @author Glenn L. Nielsen
* @author James House (<a href="mailto:james@interobjective.com">james@interobjective.com</a>)
+ * @author Dirk Verbeeck
* @version $Revision$ $Date$
*/
-public class DelegatingPreparedStatement extends AbandonedTrace
+public class DelegatingPreparedStatement extends DelegatingStatement
implements PreparedStatement {
+
/** My delegate. */
protected PreparedStatement _stmt = null;
- /** The connection that created me. **/
- protected DelegatingConnection _conn = null;
/**
* Create a wrapper for the Statement which traces this
@@ -110,21 +109,12 @@
*/
public DelegatingPreparedStatement(DelegatingConnection c,
PreparedStatement s) {
- super(c);
+ super(c, s);
_stmt = s;
- _conn = c;
- }
-
- /**
- * Returns my underlying {@link PreparedStatement}.
- * @return my underlying {@link PreparedStatement}.
- */
- public PreparedStatement getDelegate() {
- return _stmt;
}
public boolean equals(Object obj) {
- PreparedStatement delegate = getInnermostDelegate();
+ PreparedStatement delegate = (PreparedStatement) getInnermostDelegate();
if (delegate == null) {
return false;
}
@@ -137,42 +127,9 @@
}
}
- public int hashCode() {
- Object obj = getInnermostDelegate();
- if (obj == null) {
- return 0;
- }
- return obj.hashCode();
- }
-
- /**
- * If my underlying {@link PreparedStatement} is not a
- * <tt>DelegatingPreparedStatement</tt>, returns it,
- * otherwise recursively invokes this method on
- * my delegate.
- * <p>
- * Hence this method will return the first
- * delegate that is not a <tt>DelegatingPreparedStatement</tt>,
- * or <tt>null</tt> when no non-<tt>DelegatingPreparedStatement</tt>
- * delegate can be found by transversing this chain.
- * <p>
- * This method is useful when you may have nested
- * <tt>DelegatingPreparedStatement</tt>s, and you want to make
- * sure to obtain a "genuine" {@link PreparedStatement}.
- */
- public PreparedStatement getInnermostDelegate() {
- PreparedStatement s = _stmt;
- while(s != null && s instanceof DelegatingPreparedStatement) {
- s = ((DelegatingPreparedStatement)s).getDelegate();
- if(this == s) {
- return null;
- }
- }
- return s;
- }
-
/** Sets my delegate. */
public void setDelegate(PreparedStatement s) {
+ super.setDelegate(s);
_stmt = s;
}
@@ -185,11 +142,6 @@
passivate();
}
- public Connection getConnection() throws SQLException {
- checkOpen();
- return _conn; // return the delegating connection that created this
- }
-
public ResultSet executeQuery(String sql) throws SQLException {
checkOpen();
return DelegatingResultSet.wrapResultSet(this,_stmt.executeQuery(sql));
@@ -266,12 +218,6 @@
public void setTimestamp(int parameterIndex, java.sql.Timestamp x, Calendar cal) throws SQLException { checkOpen(); _stmt.setTimestamp(parameterIndex,x,cal);}
public void setNull (int paramIndex, int sqlType, String typeName) throws SQLException { checkOpen(); _stmt.setNull(paramIndex,sqlType,typeName);}
- protected void checkOpen() throws SQLException {
- if (_closed) {
- throw new SQLException("PreparedStatement is closed.");
- }
- }
-
protected void activate() {
_closed = false;
if(_stmt instanceof DelegatingPreparedStatement) {
@@ -303,12 +249,6 @@
((DelegatingPreparedStatement)_stmt).passivate();
}
}
-
- protected boolean isClosed() {
- return _closed;
- }
-
- protected boolean _closed = false;
// ------------------- JDBC 3.0 -----------------------------------------
// Will be commented by the build process on a JDBC 2.0 system
1.13 +10 -5 jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingStatement.java
Index: DelegatingStatement.java
===================================================================
RCS file: /home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingStatement.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- DelegatingStatement.java 9 Oct 2003 21:04:44 -0000 1.12
+++ DelegatingStatement.java 26 Dec 2003 15:16:28 -0000 1.13
@@ -84,6 +84,7 @@
* @author Rodney Waldhoff (<a href="mailto:rwaldhof@us.britannica.com">rwaldhof@us.britannica.com</a>)
* @author Glenn L. Nielsen
* @author James House (<a href="mailto:james@interobjective.com">james@interobjective.com</a>)
+ * @author Dirk Verbeeck
* @version $Revision$ $Date$
*/
public class DelegatingStatement extends AbandonedTrace implements Statement {
@@ -219,8 +220,8 @@
public int[] executeBatch() throws SQLException { checkOpen(); return _stmt.executeBatch();}
protected void checkOpen() throws SQLException {
- if(_closed) {
- throw new SQLException("Connection is closed.");
+ if(isClosed()) {
+ throw new SQLException(this.getClass().getName() + " is closed.");
}
}
@@ -254,6 +255,10 @@
}
}
+ protected boolean isClosed() {
+ return _closed;
+ }
+
protected boolean _closed = false;
// ------------------- JDBC 3.0 -----------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org