postgresql-jdbc.git / summary / log / commit / refs
commit 1318486141ceebafc7ebaa00f2ffb41b5eb70fac
Author: Justin Santa Barbara <justin@fathomdb.com>
Date: Sat Feb 23 19:19:49 2013 +0000
Support for JDBC4 isWrapperFor & unwrap methods
org/postgresql/ds/jdbc4/AbstractJdbc4PoolingDataSource.java | 8 ++++++--
org/postgresql/ds/jdbc4/AbstractJdbc4SimpleDataSource.java | 8 ++++++--
org/postgresql/jdbc4/AbstractJdbc4Connection.java | 8 ++++++--
org/postgresql/jdbc4/AbstractJdbc4DatabaseMetaData.java | 8 ++++++--
org/postgresql/jdbc4/AbstractJdbc4ParameterMetaData.java | 8 ++++++--
org/postgresql/jdbc4/AbstractJdbc4ResultSet.java | 8 ++++++--
org/postgresql/jdbc4/AbstractJdbc4ResultSetMetaData.java | 8 ++++++--
org/postgresql/jdbc4/AbstractJdbc4Statement.java | 8 ++++++--
8 files changed, 48 insertions(+), 16 deletions(-)
diff --git a/org/postgresql/ds/jdbc4/AbstractJdbc4PoolingDataSource.java b/org/postgresql/ds/jdbc4/AbstractJdbc4PoolingDataSource.java
index 426f016d..72d40d21 100644
--- a/org/postgresql/ds/jdbc4/AbstractJdbc4PoolingDataSource.java
+++ b/org/postgresql/ds/jdbc4/AbstractJdbc4PoolingDataSource.java
@@ -17,12 +17,16 @@ public abstract class AbstractJdbc4PoolingDataSource extends AbstractJdbc23Pooli
public boolean isWrapperFor(Class<?> iface) throws SQLException
{
- throw org.postgresql.Driver.notImplemented(this.getClass(), "isWrapperFor(Class<?>)");
+ return iface.isAssignableFrom(getClass());
}
public <T> T unwrap(Class<T> iface) throws SQLException
{
- throw org.postgresql.Driver.notImplemented(this.getClass(), "unwrap(Class<T>)");
+ if (iface.isAssignableFrom(getClass()))
+ {
+ return (T) this;
+ }
+ throw new SQLException("Cannot unwrap to " + iface.getName());
}
public java.util.logging.Logger getParentLogger() throws SQLFeatureNotSupportedException
diff --git a/org/postgresql/ds/jdbc4/AbstractJdbc4SimpleDataSource.java b/org/postgresql/ds/jdbc4/AbstractJdbc4SimpleDataSource.java
index 1d9b5023..da52644e 100644
--- a/org/postgresql/ds/jdbc4/AbstractJdbc4SimpleDataSource.java
+++ b/org/postgresql/ds/jdbc4/AbstractJdbc4SimpleDataSource.java
@@ -16,12 +16,16 @@ public abstract class AbstractJdbc4SimpleDataSource extends AbstractJdbc23Simple
{
public boolean isWrapperFor(Class<?> iface) throws SQLException
{
- throw org.postgresql.Driver.notImplemented(this.getClass(), "isWrapperFor(Class<?>)");
+ return iface.isAssignableFrom(getClass());
}
public <T> T unwrap(Class<T> iface) throws SQLException
{
- throw org.postgresql.Driver.notImplemented(this.getClass(), "unwrap(Class<T>)");
+ if (iface.isAssignableFrom(getClass()))
+ {
+ return (T) this;
+ }
+ throw new SQLException("Cannot unwrap to " + iface.getName());
}
public java.util.logging.Logger getParentLogger() throws SQLFeatureNotSupportedException
diff --git a/org/postgresql/jdbc4/AbstractJdbc4Connection.java b/org/postgresql/jdbc4/AbstractJdbc4Connection.java
index 8a89a802..d25710a0 100644
--- a/org/postgresql/jdbc4/AbstractJdbc4Connection.java
+++ b/org/postgresql/jdbc4/AbstractJdbc4Connection.java
@@ -208,13 +208,17 @@ abstract class AbstractJdbc4Connection extends org.postgresql.jdbc3g.AbstractJdb
public boolean isWrapperFor(Class<?> iface) throws SQLException
{
checkClosed();
- throw org.postgresql.Driver.notImplemented(this.getClass(), "isWrapperFor(Class<?>)");
+ return iface.isAssignableFrom(getClass());
}
public <T> T unwrap(Class<T> iface) throws SQLException
{
checkClosed();
- throw org.postgresql.Driver.notImplemented(this.getClass(), "unwrap(Class<T>)");
+ if (iface.isAssignableFrom(getClass()))
+ {
+ return (T) this;
+ }
+ throw new SQLException("Cannot unwrap to " + iface.getName());
}
public java.util.logging.Logger getParentLogger() throws SQLFeatureNotSupportedException
diff --git a/org/postgresql/jdbc4/AbstractJdbc4DatabaseMetaData.java b/org/postgresql/jdbc4/AbstractJdbc4DatabaseMetaData.java
index b88bba4a..7fc7b2a4 100644
--- a/org/postgresql/jdbc4/AbstractJdbc4DatabaseMetaData.java
+++ b/org/postgresql/jdbc4/AbstractJdbc4DatabaseMetaData.java
@@ -70,12 +70,16 @@ public abstract class AbstractJdbc4DatabaseMetaData extends org.postgresql.jdbc3
public boolean isWrapperFor(Class<?> iface) throws SQLException
{
- throw org.postgresql.Driver.notImplemented(this.getClass(), "isWrapperFor(Class<?>)");
+ return iface.isAssignableFrom(getClass());
}
public <T> T unwrap(Class<T> iface) throws SQLException
{
- throw org.postgresql.Driver.notImplemented(this.getClass(), "unwrap(Class<T>)");
+ if (iface.isAssignableFrom(getClass()))
+ {
+ return (T) this;
+ }
+ throw new SQLException("Cannot unwrap to " + iface.getName());
}
public ResultSet getFunctions(String catalog, String schemaPattern, String functionNamePattern) throws SQLException
diff --git a/org/postgresql/jdbc4/AbstractJdbc4ParameterMetaData.java b/org/postgresql/jdbc4/AbstractJdbc4ParameterMetaData.java
index b3895b5f..34dad2ba 100644
--- a/org/postgresql/jdbc4/AbstractJdbc4ParameterMetaData.java
+++ b/org/postgresql/jdbc4/AbstractJdbc4ParameterMetaData.java
@@ -20,12 +20,16 @@ public abstract class AbstractJdbc4ParameterMetaData extends org.postgresql.jdbc
public boolean isWrapperFor(Class<?> iface) throws SQLException
{
- throw org.postgresql.Driver.notImplemented(this.getClass(), "isWrapperFor(Class<?>)");
+ return iface.isAssignableFrom(getClass());
}
public <T> T unwrap(Class<T> iface) throws SQLException
{
- throw org.postgresql.Driver.notImplemented(this.getClass(), "unwrap(Class<T>)");
+ if (iface.isAssignableFrom(getClass()))
+ {
+ return (T) this;
+ }
+ throw new SQLException("Cannot unwrap to " + iface.getName());
}
}
diff --git a/org/postgresql/jdbc4/AbstractJdbc4ResultSet.java b/org/postgresql/jdbc4/AbstractJdbc4ResultSet.java
index 665c0ae3..f3d0445a 100644
--- a/org/postgresql/jdbc4/AbstractJdbc4ResultSet.java
+++ b/org/postgresql/jdbc4/AbstractJdbc4ResultSet.java
@@ -278,12 +278,16 @@ abstract class AbstractJdbc4ResultSet extends org.postgresql.jdbc3g.AbstractJdbc
public boolean isWrapperFor(Class<?> iface) throws SQLException
{
- throw org.postgresql.Driver.notImplemented(this.getClass(), "isWrapperFor(Class<?>)");
+ return iface.isAssignableFrom(getClass());
}
public <T> T unwrap(Class<T> iface) throws SQLException
{
- throw org.postgresql.Driver.notImplemented(this.getClass(), "unwrap(Class<T>)");
+ if (iface.isAssignableFrom(getClass()))
+ {
+ return (T) this;
+ }
+ throw new SQLException("Cannot unwrap to " + iface.getName());
}
protected Object internalGetObject(int columnIndex, Field field) throws SQLException
diff --git a/org/postgresql/jdbc4/AbstractJdbc4ResultSetMetaData.java b/org/postgresql/jdbc4/AbstractJdbc4ResultSetMetaData.java
index d83c9d9a..68a411d0 100644
--- a/org/postgresql/jdbc4/AbstractJdbc4ResultSetMetaData.java
+++ b/org/postgresql/jdbc4/AbstractJdbc4ResultSetMetaData.java
@@ -21,12 +21,16 @@ abstract class AbstractJdbc4ResultSetMetaData extends org.postgresql.jdbc2.Abstr
public boolean isWrapperFor(Class<?> iface) throws SQLException
{
- throw org.postgresql.Driver.notImplemented(this.getClass(), "isWrapperFor(Class<?>)");
+ return iface.isAssignableFrom(getClass());
}
public <T> T unwrap(Class<T> iface) throws SQLException
{
- throw org.postgresql.Driver.notImplemented(this.getClass(), "unwrap(Class<T>)");
+ if (iface.isAssignableFrom(getClass()))
+ {
+ return (T) this;
+ }
+ throw new SQLException("Cannot unwrap to " + iface.getName());
}
}
diff --git a/org/postgresql/jdbc4/AbstractJdbc4Statement.java b/org/postgresql/jdbc4/AbstractJdbc4Statement.java
index ad89a846..c511d71f 100644
--- a/org/postgresql/jdbc4/AbstractJdbc4Statement.java
+++ b/org/postgresql/jdbc4/AbstractJdbc4Statement.java
@@ -364,12 +364,16 @@ abstract class AbstractJdbc4Statement extends org.postgresql.jdbc3g.AbstractJdbc
public boolean isWrapperFor(Class<?> iface) throws SQLException
{
- throw org.postgresql.Driver.notImplemented(this.getClass(), "isWrapperFor(Class<?>)");
+ return iface.isAssignableFrom(getClass());
}
public <T> T unwrap(Class<T> iface) throws SQLException
{
- throw org.postgresql.Driver.notImplemented(this.getClass(), "unwrap(Class<T>)");
+ if (iface.isAssignableFrom(getClass()))
+ {
+ return (T) this;
+ }
+ throw new SQLException("Cannot unwrap to " + iface.getName());
}
public java.util.logging.Logger getParentLogger() throws SQLFeatureNotSupportedException
[parent: 8cc4c64ec649]