From 8432fbfe9a643ce27824ef06aede4d01c89fb3ce Mon Sep 17 00:00:00 2001
From: Fredrik Roubert <fredrik@roubert.name>
Date: Sat, 18 Feb 2023 18:27:29 +0100
Subject: [PATCH] ITS#4501 Add java.sql interface methods introduced by JDK 7.

---
 .../jdbcLdap/jndi/JndiLdapConnection.java     | 26 ++++++++++++++++---
 .../jdbcLdap/sql/JdbcLdapDBMetaData.java      | 14 ++++++++++
 .../jdbcLdap/sql/JdbcLdapDriver.java          |  6 ++++-
 .../jdbcLdap/sql/JdbcLdapStatement.java       |  8 ++++++
 .../jdbcLdap/sql/LdapResultSet.java           | 13 ++++++++--
 src/com/octetstring/jdbcLdap/util/ObjRS.java  | 22 +++++++++++++---
 6 files changed, 79 insertions(+), 10 deletions(-)

diff --git a/src/com/octetstring/jdbcLdap/jndi/JndiLdapConnection.java b/src/com/octetstring/jdbcLdap/jndi/JndiLdapConnection.java
index ba38b7b..d397f80 100644
--- a/src/com/octetstring/jdbcLdap/jndi/JndiLdapConnection.java
+++ b/src/com/octetstring/jdbcLdap/jndi/JndiLdapConnection.java
@@ -526,7 +526,11 @@ public class JndiLdapConnection implements java.sql.Connection {
     public java.sql.Savepoint setSavepoint() throws java.sql.SQLException {
         return null;
     }
-    
+
+	public void setSchema(String schema) throws java.sql.SQLException {
+		throw new SQLException("Not implemented");
+	}
+
     public boolean isReadOnly() throws java.sql.SQLException {
         return false;
     }
@@ -534,7 +538,11 @@ public class JndiLdapConnection implements java.sql.Connection {
     public void setHoldability(int param) throws java.sql.SQLException {
         
     }
-    
+
+	public void setNetworkTimeout(java.util.concurrent.Executor executor, int milliseconds) throws java.sql.SQLException {
+		throw new SQLException("Not implemented");
+	}
+
     public void rollback() throws java.sql.SQLException {
         if (! this.ignoreTransactions) {
         	throw new SQLException("LDAP Does Not Support Transactions");
@@ -653,7 +661,19 @@ public class JndiLdapConnection implements java.sql.Connection {
     public java.sql.DatabaseMetaData getMetaData() throws java.sql.SQLException {
         return new JdbcLdapDBMetaData(this);
     }
-    
+
+	public int getNetworkTimeout() throws java.sql.SQLException {
+		throw new SQLException("Not implemented");
+	}
+
+	public String getSchema() throws java.sql.SQLException {
+		throw new SQLException("Not implemented");
+	}
+
+	public void abort(java.util.concurrent.Executor executor) throws java.sql.SQLException {
+		throw new SQLException("Not implemented");
+	}
+
     public void clearWarnings() throws java.sql.SQLException {
     }
     
diff --git a/src/com/octetstring/jdbcLdap/sql/JdbcLdapDBMetaData.java b/src/com/octetstring/jdbcLdap/sql/JdbcLdapDBMetaData.java
index c70d1cf..f02c288 100644
--- a/src/com/octetstring/jdbcLdap/sql/JdbcLdapDBMetaData.java
+++ b/src/com/octetstring/jdbcLdap/sql/JdbcLdapDBMetaData.java
@@ -308,6 +308,13 @@ public class JdbcLdapDBMetaData implements DatabaseMetaData {
 		return false;
 	}
 
+	/* (non-Javadoc)
+	 * @see java.sql.DatabaseMetaData#generatedKeyAlwaysReturned()
+	 */
+	public boolean generatedKeyAlwaysReturned() throws SQLException {
+		throw new SQLException("Not implemented");
+	}
+
 	/* (non-Javadoc)
 	 * @see java.sql.DatabaseMetaData#isCatalogAtStart()
 	 */
@@ -1150,6 +1157,13 @@ public class JdbcLdapDBMetaData implements DatabaseMetaData {
 		return null;
 	}
 
+	/* (non-Javadoc)
+	 * @see java.sql.DatabaseMetaData#getPseudoColumns()
+	 */
+	public ResultSet getPseudoColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) throws SQLException {
+		throw new SQLException("Not implemented");
+	}
+
 	/* (non-Javadoc)
 	 * @see java.sql.DatabaseMetaData#getSQLKeywords()
 	 */
diff --git a/src/com/octetstring/jdbcLdap/sql/JdbcLdapDriver.java b/src/com/octetstring/jdbcLdap/sql/JdbcLdapDriver.java
index a05008c..2eeacce 100644
--- a/src/com/octetstring/jdbcLdap/sql/JdbcLdapDriver.java
+++ b/src/com/octetstring/jdbcLdap/sql/JdbcLdapDriver.java
@@ -111,7 +111,11 @@ public class JdbcLdapDriver implements java.sql.Driver {
     public int getMinorVersion() {
         return MINOR_VERSION;
     }
-    
+
+	public java.util.logging.Logger getParentLogger() throws java.sql.SQLFeatureNotSupportedException {
+		throw new SQLFeatureNotSupportedException("Not implemented");
+	}
+
     public java.sql.DriverPropertyInfo[] getPropertyInfo(java.lang.String str, java.util.Properties properties) throws java.sql.SQLException {
         DriverPropertyInfo[] props = new DriverPropertyInfo[5];
         props[0] = new DriverPropertyInfo("user","Security Principal");
diff --git a/src/com/octetstring/jdbcLdap/sql/JdbcLdapStatement.java b/src/com/octetstring/jdbcLdap/sql/JdbcLdapStatement.java
index 7118cf7..b3d5d5b 100644
--- a/src/com/octetstring/jdbcLdap/sql/JdbcLdapStatement.java
+++ b/src/com/octetstring/jdbcLdap/sql/JdbcLdapStatement.java
@@ -157,6 +157,10 @@ public class JdbcLdapStatement implements java.sql.Statement {
 	public void close() throws java.sql.SQLException {
 	}
 
+	public void closeOnCompletion() throws java.sql.SQLException {
+		throw new SQLException("Not implemented");
+	}
+
 	public boolean execute(java.lang.String str) throws java.sql.SQLException {
 		executeQuery(str);
 		return true;
@@ -311,6 +315,10 @@ public class JdbcLdapStatement implements java.sql.Statement {
 		throw new SQLException("Not implemented");
 	}
 
+	public boolean isCloseOnCompletion() throws java.sql.SQLException {
+		throw new SQLException("Not implemented");
+	}
+
 	public boolean isPoolable() throws java.sql.SQLException {
 		throw new SQLException("Not implemented");
 	}
diff --git a/src/com/octetstring/jdbcLdap/sql/LdapResultSet.java b/src/com/octetstring/jdbcLdap/sql/LdapResultSet.java
index 3cb77cd..df10c7f 100644
--- a/src/com/octetstring/jdbcLdap/sql/LdapResultSet.java
+++ b/src/com/octetstring/jdbcLdap/sql/LdapResultSet.java
@@ -398,18 +398,27 @@ public class LdapResultSet implements java.sql.ResultSet {
 		return getByNum(param);
 	}
 
+	public <T>T getObject(int param, Class<T> type) throws java.sql.SQLException {
+		throw new SQLException("Not implemented");
+	}
+
 	public java.lang.Object getObject(java.lang.String str)
 		throws java.sql.SQLException {
 		return getByName(str);
 	}
 
-	public java.lang.Object getObject(int param, java.util.Map map)
+	public <T>T getObject(java.lang.String str, Class<T> type)
+		throws java.sql.SQLException {
+		throw new SQLException("Not implemented");
+	}
+
+	public java.lang.Object getObject(int param, java.util.Map<String, Class<?>> map)
 		throws java.sql.SQLException {
 		return getByNum(param);
 
 	}
 
-	public java.lang.Object getObject(java.lang.String str, java.util.Map map)
+	public java.lang.Object getObject(java.lang.String str, java.util.Map<String, Class<?>> map)
 		throws java.sql.SQLException {
 		return getByName(str);
 	}
diff --git a/src/com/octetstring/jdbcLdap/util/ObjRS.java b/src/com/octetstring/jdbcLdap/util/ObjRS.java
index cd8360d..8001abd 100644
--- a/src/com/octetstring/jdbcLdap/util/ObjRS.java
+++ b/src/com/octetstring/jdbcLdap/util/ObjRS.java
@@ -600,6 +600,13 @@ public  class ObjRS implements ResultSet, Serializable {
 		return null;
 	}
 
+	/**
+	 * @see java.sql.ResultSet#getObject(int, Class<T>)
+	 */
+	public <T>T getObject(int columnIndex, Class<T> type) throws SQLException {
+		throw new SQLException("Not implemented");
+	}
+
 	/**
 	 * @see java.sql.ResultSet#getObject(String)
 	 */
@@ -607,6 +614,13 @@ public  class ObjRS implements ResultSet, Serializable {
 		return null;
 	}
 
+	/**
+	 * @see java.sql.ResultSet#getObject(String, Class<T>)
+	 */
+	public <T>T getObject(String columnName, Class<T> type) throws SQLException {
+		throw new SQLException("Not implemented");
+	}
+
 	/**
 	 * @see java.sql.ResultSet#findColumn(String)
 	 */
@@ -1392,9 +1406,9 @@ public  class ObjRS implements ResultSet, Serializable {
 	}
 
 	/**
-	 * @see java.sql.ResultSet#getObject(int, Map)
+	 * @see java.sql.ResultSet#getObject(int, Map<String, Class<?>>)
 	 */
-	public Object getObject(int i, Map map) throws SQLException {
+	public Object getObject(int i, Map<String, Class<?>> map) throws SQLException {
 		return null;
 	}
 
@@ -1427,9 +1441,9 @@ public  class ObjRS implements ResultSet, Serializable {
 	}
 
 	/**
-	 * @see java.sql.ResultSet#getObject(String, Map)
+	 * @see java.sql.ResultSet#getObject(String, Map<String, Class<?>>)
 	 */
-	public Object getObject(String colName, Map map) throws SQLException {
+	public Object getObject(String colName, Map<String, Class<?>> map) throws SQLException {
 		return null;
 	}
 
-- 
GitLab