[libpostgresql-jdbc-java] 49/128: Support for JDBC4 isWrapperFor & unwrap methods

Emmanuel Bourg ebourg-guest at moszumanska.debian.org
Mon Jan 9 10:18:30 UTC 2017


This is an automated email from the git hooks/post-receive script.

ebourg-guest pushed a commit to annotated tag REL9_3_1100
in repository libpostgresql-jdbc-java.

commit 1318486141ceebafc7ebaa00f2ffb41b5eb70fac
Author: Justin Santa Barbara <justin at fathomdb.com>
Date:   Sat Feb 23 11:19:49 2013 -0800

    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 426f016..72d40d2 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 1d9b502..da52644 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 8a89a80..d25710a 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 b88bba4..7fc7b2a 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 b3895b5..34dad2b 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 665c0ae..f3d0445 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 d83c9d9..68a411d 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 ad89a84..c511d71 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

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/libpostgresql-jdbc-java.git



More information about the pkg-java-commits mailing list