Reduce casting and unnecessary delegation.

pull/6/head
Brett Wooldridge 11 years ago
parent 28cbc5048f
commit 60601d4b61

@ -17,6 +17,7 @@
package com.zaxxer.hikari.proxy;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@ -83,12 +84,13 @@ public class CallableStatementProxy implements IHikariStatementProxy
{
try
{
IHikariResultSetProxy resultSet = (IHikariResultSetProxy) __executeQuery();
if (resultSet == null)
ResultSet rs = ((PreparedStatement) delegate).executeQuery();
if (rs == null)
{
return null;
}
IHikariResultSetProxy resultSet = (IHikariResultSetProxy) PROXY_FACTORY.getProxyResultSet(this, rs);
resultSet._setProxyStatement(this);
return (ResultSet) resultSet;
}
@ -102,13 +104,14 @@ public class CallableStatementProxy implements IHikariStatementProxy
{
try
{
IHikariResultSetProxy resultSet = (IHikariResultSetProxy) __executeQuery(sql);
if (resultSet == null)
ResultSet rs = delegate.executeQuery(sql);
if (rs == null)
{
return null;
}
resultSet._setProxyStatement(this);
ResultSet resultSet = PROXY_FACTORY.getProxyResultSet(this, rs);
((IHikariResultSetProxy) resultSet)._setProxyStatement(this);
return (ResultSet) resultSet;
}
catch (SQLException e)
@ -121,14 +124,15 @@ public class CallableStatementProxy implements IHikariStatementProxy
{
try
{
IHikariResultSetProxy resultSet = (IHikariResultSetProxy) __getGeneratedKeys();
if (resultSet == null)
ResultSet rs = delegate.getGeneratedKeys();
if (rs == null)
{
return null;
}
resultSet._setProxyStatement(this);
return (ResultSet) resultSet;
ResultSet resultSet = PROXY_FACTORY.getProxyResultSet(this, rs);
((IHikariResultSetProxy) resultSet)._setProxyStatement(this);
return resultSet;
}
catch (SQLException e)
{
@ -136,6 +140,11 @@ public class CallableStatementProxy implements IHikariStatementProxy
}
}
public Connection getConnection()
{
return (Connection) _connection;
}
// ***********************************************************************
// These methods contain code we do not want injected into the actual
// java.sql.Connection implementation class. These methods are only
@ -143,12 +152,6 @@ public class CallableStatementProxy implements IHikariStatementProxy
// delegating proxies are used.
// ***********************************************************************
public ResultSet __executeQuery() throws SQLException
{
ResultSet resultSet = ((PreparedStatement) delegate).executeQuery();
return PROXY_FACTORY.getProxyResultSet(this, resultSet);
}
private static void __static()
{
if (PROXY_FACTORY == null)
@ -166,16 +169,4 @@ public class CallableStatementProxy implements IHikariStatementProxy
delegate.close();
}
public ResultSet __executeQuery(String sql) throws SQLException
{
ResultSet resultSet = delegate.executeQuery(sql);
return PROXY_FACTORY.getProxyResultSet(this, resultSet);
}
public ResultSet __getGeneratedKeys() throws SQLException
{
ResultSet generatedKeys = delegate.getGeneratedKeys();
return PROXY_FACTORY.getProxyResultSet(this, generatedKeys);
}
}

@ -16,6 +16,7 @@
package com.zaxxer.hikari.proxy;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@ -56,7 +57,7 @@ public class PreparedStatementProxy implements IHikariStatementProxy
@HikariInject
public SQLException _checkException(SQLException e)
{
return _connection._checkException(e);
return ((IHikariConnectionProxy) getConnection())._checkException(e);
}
// **********************************************************************
@ -66,7 +67,7 @@ public class PreparedStatementProxy implements IHikariStatementProxy
@HikariOverride
public void close() throws SQLException
{
_connection._unregisterStatement(this);
((IHikariConnectionProxy) getConnection())._unregisterStatement(this);
try
{
__close();
@ -81,12 +82,13 @@ public class PreparedStatementProxy implements IHikariStatementProxy
{
try
{
IHikariResultSetProxy resultSet = (IHikariResultSetProxy) __executeQuery();
if (resultSet == null)
ResultSet rs = ((PreparedStatement) delegate).executeQuery();
if (rs == null)
{
return null;
}
IHikariResultSetProxy resultSet = (IHikariResultSetProxy) PROXY_FACTORY.getProxyResultSet(this, rs);
resultSet._setProxyStatement(this);
return (ResultSet) resultSet;
}
@ -100,13 +102,14 @@ public class PreparedStatementProxy implements IHikariStatementProxy
{
try
{
IHikariResultSetProxy resultSet = (IHikariResultSetProxy) __executeQuery(sql);
if (resultSet == null)
ResultSet rs = delegate.executeQuery(sql);
if (rs == null)
{
return null;
}
resultSet._setProxyStatement(this);
ResultSet resultSet = PROXY_FACTORY.getProxyResultSet(this, rs);
((IHikariResultSetProxy) resultSet)._setProxyStatement(this);
return (ResultSet) resultSet;
}
catch (SQLException e)
@ -119,14 +122,15 @@ public class PreparedStatementProxy implements IHikariStatementProxy
{
try
{
IHikariResultSetProxy resultSet = (IHikariResultSetProxy) __getGeneratedKeys();
if (resultSet == null)
ResultSet rs = delegate.getGeneratedKeys();
if (rs == null)
{
return null;
}
resultSet._setProxyStatement(this);
return (ResultSet) resultSet;
ResultSet resultSet = PROXY_FACTORY.getProxyResultSet(this, rs);
((IHikariResultSetProxy) resultSet)._setProxyStatement(this);
return resultSet;
}
catch (SQLException e)
{
@ -134,6 +138,11 @@ public class PreparedStatementProxy implements IHikariStatementProxy
}
}
public Connection getConnection()
{
return (Connection) _connection;
}
// ***********************************************************************
// These methods contain code we do not want injected into the actual
// java.sql.Connection implementation class. These methods are only
@ -141,11 +150,6 @@ public class PreparedStatementProxy implements IHikariStatementProxy
// delegating proxies are used.
// ***********************************************************************
public ResultSet __executeQuery() throws SQLException
{
ResultSet resultSet = ((PreparedStatement) delegate).executeQuery();
return PROXY_FACTORY.getProxyResultSet(this, resultSet);
}
private static void __static()
{
@ -164,16 +168,4 @@ public class PreparedStatementProxy implements IHikariStatementProxy
delegate.close();
}
public ResultSet __executeQuery(String sql) throws SQLException
{
ResultSet resultSet = delegate.executeQuery(sql);
return PROXY_FACTORY.getProxyResultSet(this, resultSet);
}
public ResultSet __getGeneratedKeys() throws SQLException
{
ResultSet generatedKeys = delegate.getGeneratedKeys();
return PROXY_FACTORY.getProxyResultSet(this, generatedKeys);
}
}
}

@ -16,6 +16,7 @@
package com.zaxxer.hikari.proxy;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
@ -30,8 +31,9 @@ public class StatementProxy implements IHikariStatementProxy
{
private static ProxyFactory PROXY_FACTORY;
@HikariInject protected IHikariConnectionProxy _connection;
@HikariInject
protected IHikariConnectionProxy _connection;
protected Statement delegate;
static
@ -67,50 +69,57 @@ public class StatementProxy implements IHikariStatementProxy
_connection._unregisterStatement(this);
try
{
__close();
__close();
}
catch (SQLException e)
{
throw _checkException(e);
throw _checkException(e);
}
}
public ResultSet executeQuery(String sql) throws SQLException
{
try
{
IHikariResultSetProxy resultSet = (IHikariResultSetProxy) __executeQuery(sql);
if (resultSet == null)
{
return null;
}
resultSet._setProxyStatement(this);
return (ResultSet) resultSet;
}
catch (SQLException e)
{
throw _checkException(e);
}
try
{
ResultSet rs = delegate.executeQuery(sql);
if (rs == null)
{
return null;
}
ResultSet resultSet = PROXY_FACTORY.getProxyResultSet(this, rs);
((IHikariResultSetProxy) resultSet)._setProxyStatement(this);
return resultSet;
}
catch (SQLException e)
{
throw _checkException(e);
}
}
public ResultSet getGeneratedKeys() throws SQLException
{
try
{
IHikariResultSetProxy resultSet = (IHikariResultSetProxy) __getGeneratedKeys();
if (resultSet == null)
{
return null;
}
resultSet._setProxyStatement(this);
return (ResultSet) resultSet;
}
catch (SQLException e)
{
throw _checkException(e);
}
try
{
ResultSet rs = delegate.getGeneratedKeys();
if (rs == null)
{
return null;
}
ResultSet resultSet = PROXY_FACTORY.getProxyResultSet(this, rs);
((IHikariResultSetProxy) resultSet)._setProxyStatement(this);
return resultSet;
}
catch (SQLException e)
{
throw _checkException(e);
}
}
public Connection getConnection() throws SQLException
{
return (Connection) _connection;
}
// ***********************************************************************
@ -127,7 +136,7 @@ public class StatementProxy implements IHikariStatementProxy
PROXY_FACTORY = JavassistProxyFactoryFactory.getProxyFactory();
}
}
public void __close() throws SQLException
{
if (delegate.isClosed())
@ -135,20 +144,6 @@ public class StatementProxy implements IHikariStatementProxy
return;
}
delegate.close();
}
public ResultSet __executeQuery(String sql) throws SQLException
{
ResultSet resultSet = delegate.executeQuery(sql);
return PROXY_FACTORY.getProxyResultSet(this, resultSet);
}
public ResultSet __getGeneratedKeys() throws SQLException
{
ResultSet generatedKeys = delegate.getGeneratedKeys();
return PROXY_FACTORY.getProxyResultSet(this, generatedKeys);
delegate.close();
}
// TODO: fix wrapper
}
Loading…
Cancel
Save