[Libreoffice-commits] core.git: Branch 'aoo/trunk' - connectivity/java

Damjan Jovanovic damjan at apache.org
Sat May 5 04:09:50 UTC 2018


 connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/BoundedInputStream.java       |    2 
 connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/ClassMap.java                 |    4 
 connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/ContextClassLoaderScope.java  |    4 
 connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JDBCDriver.java               |    2 
 connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLArray.java             |    4 
 connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLBlob.java              |    4 
 connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLCallableStatement.java |    1 
 connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLClob.java              |    4 
 connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLConnection.java        |   78 +---------
 connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLDatabaseMetaData.java  |    7 
 connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLPreparedStatement.java |    1 
 connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLRef.java               |    2 
 connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLResultSetMetaData.java |    4 
 connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLStatement.java         |    3 
 connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLStatementBase.java     |    1 
 connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/ReaderInputStream.java        |    2 
 connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/Tools.java                    |   52 ++++++
 17 files changed, 93 insertions(+), 82 deletions(-)

New commits:
commit 87e19c1cab7e6dd9ddd7cefdc670afd5ecb69df5
Author: Damjan Jovanovic <damjan at apache.org>
Date:   Sat May 5 03:59:10 2018 +0000

    Move the PropertyValue helper methods to the tools class for now.
    
    Some "@Override" and "final" cleanups as per NetBeans.
    
    Patch by: me

diff --git a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/BoundedInputStream.java b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/BoundedInputStream.java
index 07e8b6762d66..5336ba0e7312 100644
--- a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/BoundedInputStream.java
+++ b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/BoundedInputStream.java
@@ -24,7 +24,7 @@ import java.io.IOException;
 import java.io.InputStream;
 
 public class BoundedInputStream extends InputStream {
-    private InputStream is;
+    private final InputStream is;
     private long remaining;
 
     public BoundedInputStream(InputStream is, long max) {
diff --git a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/ClassMap.java b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/ClassMap.java
index fda4063ecdae..6bdd506af263 100644
--- a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/ClassMap.java
+++ b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/ClassMap.java
@@ -59,8 +59,8 @@ import com.sun.star.util.XMacroExpander;
  */
 public class ClassMap {
     public static class ClassLoaderAndClass {
-        private ClassLoader classLoader;
-        private Class<?> classObject;
+        private final ClassLoader classLoader;
+        private final Class<?> classObject;
 
         public ClassLoaderAndClass(ClassLoader classLoader, Class<?> classObject) {
             this.classLoader = classLoader;
diff --git a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/ContextClassLoaderScope.java b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/ContextClassLoaderScope.java
index 4feef8dac6ba..43bf01a7599a 100644
--- a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/ContextClassLoaderScope.java
+++ b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/ContextClassLoaderScope.java
@@ -21,8 +21,8 @@
 package com.sun.star.comp.sdbc;
 
 public class ContextClassLoaderScope implements AutoCloseable {
-    private Thread currentThread;
-    private ClassLoader oldClassLoader;
+    private final Thread currentThread;
+    private final ClassLoader oldClassLoader;
 
     public ContextClassLoaderScope(ClassLoader classLoader) {
         currentThread = Thread.currentThread();
diff --git a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JDBCDriver.java b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JDBCDriver.java
index 350c2a00c52d..6749bf874b32 100644
--- a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JDBCDriver.java
+++ b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JDBCDriver.java
@@ -44,7 +44,7 @@ public class JDBCDriver extends ComponentBase implements XServiceInfo, XDriver {
             "com.sun.star.sdbc.Driver"
     };
     private XComponentContext context;
-    private ResourceBasedEventLogger logger;
+    private final ResourceBasedEventLogger logger;
 
     public static XSingleComponentFactory __getComponentFactory(String implName) {
         XSingleComponentFactory xSingleComponentFactory = null;
diff --git a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLArray.java b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLArray.java
index aa786e94adf7..edd574ca30dd 100644
--- a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLArray.java
+++ b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLArray.java
@@ -34,8 +34,8 @@ import com.sun.star.sdbc.XResultSet;
 import com.sun.star.uno.Any;
 
 public class JavaSQLArray extends ComponentBase implements XArray {
-    private ResourceBasedEventLogger logger;
-    private java.sql.Array jdbcArray;
+    private final ResourceBasedEventLogger logger;
+    private final java.sql.Array jdbcArray;
 
     public JavaSQLArray(ResourceBasedEventLogger logger, java.sql.Array jdcbArray) {
         this.logger = logger;
diff --git a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLBlob.java b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLBlob.java
index 569cbfb45a4a..4caec4260ba8 100644
--- a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLBlob.java
+++ b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLBlob.java
@@ -36,8 +36,8 @@ import com.sun.star.sdbc.XBlob;
 import com.sun.star.uno.Any;
 
 public class JavaSQLBlob extends ComponentBase implements XBlob {
-    private ResourceBasedEventLogger logger;
-    private java.sql.Blob jdbcBlob;
+    private final ResourceBasedEventLogger logger;
+    private final java.sql.Blob jdbcBlob;
 
     public JavaSQLBlob(ResourceBasedEventLogger logger, java.sql.Blob jdbcBlob) {
         this.logger = logger;
diff --git a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLCallableStatement.java b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLCallableStatement.java
index dacfe2f68f70..3a1b888960de 100644
--- a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLCallableStatement.java
+++ b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLCallableStatement.java
@@ -63,6 +63,7 @@ public class JavaSQLCallableStatement extends JavaSQLPreparedStatement implement
 
     // XRow
 
+    @Override
     public synchronized XInputStream getBinaryStream(int columnIndex) throws SQLException {
         createStatement();
         XBlob blob = getBlob(columnIndex);
diff --git a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLClob.java b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLClob.java
index e6c1eca9439b..488281b8f959 100644
--- a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLClob.java
+++ b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLClob.java
@@ -36,8 +36,8 @@ import com.sun.star.sdbc.XClob;
 import com.sun.star.uno.Any;
 
 public class JavaSQLClob extends ComponentBase implements XClob {
-    private ResourceBasedEventLogger logger;
-    private java.sql.Clob jdbcClob;
+    private final ResourceBasedEventLogger logger;
+    private final java.sql.Clob jdbcClob;
 
     public JavaSQLClob(ResourceBasedEventLogger logger, java.sql.Clob jdbcClob) {
         this.logger = logger;
diff --git a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLConnection.java b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLConnection.java
index e07844f690cb..f4fb4298ae6f 100644
--- a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLConnection.java
+++ b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLConnection.java
@@ -22,7 +22,6 @@ package com.sun.star.comp.sdbc;
 
 import java.util.Iterator;
 import java.util.Properties;
-import java.util.Set;
 
 import org.apache.openoffice.comp.sdbc.dbtools.comphelper.CompHelper;
 import org.apache.openoffice.comp.sdbc.dbtools.util.AutoRetrievingBase;
@@ -62,10 +61,10 @@ public class JavaSQLConnection extends ComponentBase
     };
     private static final ClassMap classMap = new ClassMap();
 
-    private AutoRetrievingBase autoRetrievingBase = new AutoRetrievingBase();
+    private final AutoRetrievingBase autoRetrievingBase = new AutoRetrievingBase();
     private String url;
-    private JDBCDriver driver;
-    private ConnectionLog logger;
+    private final JDBCDriver driver;
+    private final ConnectionLog logger;
     private boolean useParameterSubstitution;
     private boolean ignoreDriverPrivileges;
     private boolean ignoreCurrency;
@@ -75,7 +74,7 @@ public class JavaSQLConnection extends ComponentBase
     private java.sql.Driver driverObject;
     private java.sql.Connection connection;
     private PropertyValue[] connectionInfo;
-    private WeakMap statements = new WeakMap();
+    private final WeakMap statements = new WeakMap();
 
     public JavaSQLConnection(JDBCDriver driver) {
         this.driver = driver;
@@ -103,6 +102,7 @@ public class JavaSQLConnection extends ComponentBase
 
     // XCloseable
 
+    @Override
     public void close() throws SQLException {
         dispose();
     }
@@ -347,54 +347,6 @@ public class JavaSQLConnection extends ComponentBase
 
     // others:
 
-    private static String getOrDefault(PropertyValue[] properties, String name, String defaultValue) throws IllegalArgumentException {
-        String ret = defaultValue;
-        for (PropertyValue property : properties) {
-            if (property.Name.equals(name)) {
-                ret = AnyConverter.toString(property.Value);
-                break;
-            }
-        }
-        return ret;
-    }
-
-    private static boolean getOrDefault(PropertyValue[] properties, String name, boolean defaultValue) throws IllegalArgumentException {
-        boolean ret = defaultValue;
-        for (PropertyValue property : properties) {
-            if (property.Name.equals(name)) {
-                ret = AnyConverter.toBoolean(property.Value);
-                break;
-            }
-        }
-        return ret;
-    }
-
-    private static Object getOrDefault(PropertyValue[] properties, String name, Object defaultValue) throws IllegalArgumentException {
-        Object ret = defaultValue;
-        for (PropertyValue property : properties) {
-            if (property.Name.equals(name)) {
-                ret = property.Value;
-                break;
-            }
-        }
-        return ret;
-    }
-
-    private static NamedValue[] getOrDefault(PropertyValue[] properties, String name, NamedValue[] defaultValue) throws IllegalArgumentException {
-        NamedValue[] ret = defaultValue;
-        for (PropertyValue property : properties) {
-            if (property.Name.equals(name)) {
-                Object[] array = (Object[]) AnyConverter.toArray(property.Value);
-                ret = new NamedValue[array.length];
-                for (int i = 0; i < array.length; i++) {
-                    ret[i] = (NamedValue) array[i];
-                }
-                break;
-            }
-        }
-        return ret;
-    }
-
     public boolean construct(String url, PropertyValue[] info) throws SQLException {
         this.url = url;
         String generatedValueStatement = ""; // contains the statement which should be used when query for automatically generated values
@@ -404,19 +356,19 @@ public class JavaSQLConnection extends ComponentBase
         NamedValue[] systemProperties = new NamedValue[0];
 
         try {
-            driverClass = getOrDefault(info, "JavaDriverClass", driverClass);
-            driverClassPath = getOrDefault(info, "JavaDriverClassPath", driverClassPath);
+            driverClass = Tools.getOrDefault(info, "JavaDriverClass", driverClass);
+            driverClassPath = Tools.getOrDefault(info, "JavaDriverClassPath", driverClassPath);
             if (driverClassPath.isEmpty()) {
                 driverClassPath = getJavaDriverClassPath(driverClass);
             }
-            autoRetrievingEnabled = getOrDefault(info, "IsAutoRetrievingEnabled", autoRetrievingEnabled);
-            generatedValueStatement = getOrDefault(info, "AutoRetrievingStatement", generatedValueStatement);
-            useParameterSubstitution = getOrDefault(info, "ParameterNameSubstitution", useParameterSubstitution);
-            ignoreDriverPrivileges = getOrDefault(info, "IgnoreDriverPrivileges", ignoreDriverPrivileges);
-            ignoreCurrency = getOrDefault(info, "IgnoreCurrency", ignoreCurrency);
-            systemProperties = getOrDefault(info, "SystemProperties", systemProperties);
-            catalogRestriction = getOrDefault(info, "ImplicitCatalogRestriction", Any.VOID);
-            schemaRestriction = getOrDefault(info, "ImplicitSchemaRestriction", Any.VOID);
+            autoRetrievingEnabled = Tools.getOrDefault(info, "IsAutoRetrievingEnabled", autoRetrievingEnabled);
+            generatedValueStatement = Tools.getOrDefault(info, "AutoRetrievingStatement", generatedValueStatement);
+            useParameterSubstitution = Tools.getOrDefault(info, "ParameterNameSubstitution", useParameterSubstitution);
+            ignoreDriverPrivileges = Tools.getOrDefault(info, "IgnoreDriverPrivileges", ignoreDriverPrivileges);
+            ignoreCurrency = Tools.getOrDefault(info, "IgnoreCurrency", ignoreCurrency);
+            systemProperties = Tools.getOrDefault(info, "SystemProperties", systemProperties);
+            catalogRestriction = Tools.getOrDefault(info, "ImplicitCatalogRestriction", Any.VOID);
+            schemaRestriction = Tools.getOrDefault(info, "ImplicitSchemaRestriction", Any.VOID);
 
             loadDriverFromProperties(driverClass, driverClassPath, systemProperties);
 
diff --git a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLDatabaseMetaData.java b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLDatabaseMetaData.java
index 47fc290b8ab4..750a50a0e00f 100644
--- a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLDatabaseMetaData.java
+++ b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLDatabaseMetaData.java
@@ -45,9 +45,9 @@ import com.sun.star.uno.AnyConverter;
 import com.sun.star.uno.UnoRuntime;
 
 public class JavaSQLDatabaseMetaData extends WeakBase implements XDatabaseMetaData2 {
-    private java.sql.DatabaseMetaData jdbcDatabaseMetaData;
-    private JavaSQLConnection connection;
-    private ConnectionLog logger;
+    private final java.sql.DatabaseMetaData jdbcDatabaseMetaData;
+    private final JavaSQLConnection connection;
+    private final ConnectionLog logger;
 
     public JavaSQLDatabaseMetaData(java.sql.DatabaseMetaData jdbcDatabaseMetaData, JavaSQLConnection connection) {
         this.jdbcDatabaseMetaData = jdbcDatabaseMetaData;
@@ -1559,6 +1559,7 @@ public class JavaSQLDatabaseMetaData extends WeakBase implements XDatabaseMetaDa
         }
     }
 
+    @Override
     public boolean supportsMinimumSQLGrammar() {
         try {
             return jdbcDatabaseMetaData.supportsMinimumSQLGrammar();
diff --git a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLPreparedStatement.java b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLPreparedStatement.java
index 0e49c6d803fc..3ec02a3bd996 100644
--- a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLPreparedStatement.java
+++ b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLPreparedStatement.java
@@ -360,6 +360,7 @@ public class JavaSQLPreparedStatement extends JavaSQLStatementBase
         throw new SQLException(error, this, StandardSQLState.SQL_FEATURE_NOT_IMPLEMENTED.text(), 0, Any.VOID);
     }
 
+    @Override
     public synchronized void setShort(int index, short x) throws SQLException {
         createStatement();
         logger.log(LogLevel.FINE, Resources.STR_LOG_SHORT_PARAMETER, index, x);
diff --git a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLRef.java b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLRef.java
index 82b12f0169b6..4b1a9b2ba601 100644
--- a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLRef.java
+++ b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLRef.java
@@ -25,7 +25,7 @@ import com.sun.star.sdbc.SQLException;
 import com.sun.star.sdbc.XRef;
 
 public class JavaSQLRef extends WeakBase implements XRef {
-    private java.sql.Ref jdbcRef;
+    private final java.sql.Ref jdbcRef;
 
     public JavaSQLRef(java.sql.Ref jdbcRef) {
         this.jdbcRef = jdbcRef;
diff --git a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLResultSetMetaData.java b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLResultSetMetaData.java
index 0f19ab6aedc4..686f4aa87394 100644
--- a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLResultSetMetaData.java
+++ b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLResultSetMetaData.java
@@ -25,8 +25,8 @@ import com.sun.star.sdbc.SQLException;
 import com.sun.star.sdbc.XResultSetMetaData;
 
 public class JavaSQLResultSetMetaData extends WeakBase implements XResultSetMetaData {
-    private JavaSQLConnection connection;
-    private java.sql.ResultSetMetaData jdbcResultSetMetaData;
+    private final JavaSQLConnection connection;
+    private final java.sql.ResultSetMetaData jdbcResultSetMetaData;
     private int columnCount;
 
     public JavaSQLResultSetMetaData(JavaSQLConnection connection, java.sql.ResultSetMetaData jdbcResultSetMetaData) {
diff --git a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLStatement.java b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLStatement.java
index 63ba7394e412..2d1b22dccc15 100644
--- a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLStatement.java
+++ b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLStatement.java
@@ -65,6 +65,7 @@ public class JavaSQLStatement extends JavaSQLStatementBase
 
     // XBatchExecution
 
+    @Override
     public synchronized void addBatch(String sql) throws SQLException {
         createStatement();
         try {
@@ -96,6 +97,7 @@ public class JavaSQLStatement extends JavaSQLStatementBase
 
     // XStatement
 
+    @Override
     public synchronized boolean execute(String sql) throws SQLException {
         createStatement();
         sqlStatement = sql;
@@ -144,6 +146,7 @@ public class JavaSQLStatement extends JavaSQLStatementBase
 
     // others
 
+    @Override
     protected synchronized void createStatement() throws SQLException {
         checkDisposed();
         if (jdbcStatement == null) {
diff --git a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLStatementBase.java b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLStatementBase.java
index 4ba2199f6e21..cd1de1826dc4 100644
--- a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLStatementBase.java
+++ b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLStatementBase.java
@@ -448,6 +448,7 @@ public abstract class JavaSQLStatementBase extends PropertySet
 
     // XGeneratedResultSet
 
+    @Override
     public synchronized com.sun.star.sdbc.XResultSet getGeneratedValues() throws SQLException {
         logger.log(LogLevel.FINE, Resources.STR_LOG_GENERATED_VALUES);
         createStatement();
diff --git a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/ReaderInputStream.java b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/ReaderInputStream.java
index 83ba0f70669b..357fcf186eec 100644
--- a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/ReaderInputStream.java
+++ b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/ReaderInputStream.java
@@ -25,7 +25,7 @@ import java.io.InputStream;
 import java.io.Reader;
 
 public class ReaderInputStream extends InputStream {
-    private Reader reader;
+    private final Reader reader;
     private int nextByte = -1;
 
     public ReaderInputStream(Reader reader) {
diff --git a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/Tools.java b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/Tools.java
index 6b36fd4398df..f17eaef6dd39 100644
--- a/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/Tools.java
+++ b/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/Tools.java
@@ -23,9 +23,13 @@ package com.sun.star.comp.sdbc;
 import org.apache.openoffice.comp.sdbc.dbtools.comphelper.ResourceBasedEventLogger;
 import org.apache.openoffice.comp.sdbc.dbtools.util.StandardSQLState;
 
+import com.sun.star.beans.NamedValue;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.lang.IllegalArgumentException;
 import com.sun.star.logging.LogLevel;
 import com.sun.star.sdbc.SQLException;
 import com.sun.star.uno.Any;
+import com.sun.star.uno.AnyConverter;
 
 public class Tools {
     public static SQLException toUnoException(Object source, Throwable throwable) {
@@ -69,4 +73,52 @@ public class Tools {
         logger.log(LogLevel.SEVERE, exception);
         return exception;
     }
+
+    public static String getOrDefault(PropertyValue[] properties, String name, String defaultValue) throws IllegalArgumentException {
+        String ret = defaultValue;
+        for (PropertyValue property : properties) {
+            if (property.Name.equals(name)) {
+                ret = AnyConverter.toString(property.Value);
+                break;
+            }
+        }
+        return ret;
+    }
+
+    public static boolean getOrDefault(PropertyValue[] properties, String name, boolean defaultValue) throws IllegalArgumentException {
+        boolean ret = defaultValue;
+        for (PropertyValue property : properties) {
+            if (property.Name.equals(name)) {
+                ret = AnyConverter.toBoolean(property.Value);
+                break;
+            }
+        }
+        return ret;
+    }
+
+    public static Object getOrDefault(PropertyValue[] properties, String name, Object defaultValue) throws IllegalArgumentException {
+        Object ret = defaultValue;
+        for (PropertyValue property : properties) {
+            if (property.Name.equals(name)) {
+                ret = property.Value;
+                break;
+            }
+        }
+        return ret;
+    }
+
+    public static NamedValue[] getOrDefault(PropertyValue[] properties, String name, NamedValue[] defaultValue) throws IllegalArgumentException {
+        NamedValue[] ret = defaultValue;
+        for (PropertyValue property : properties) {
+            if (property.Name.equals(name)) {
+                Object[] array = (Object[]) AnyConverter.toArray(property.Value);
+                ret = new NamedValue[array.length];
+                for (int i = 0; i < array.length; i++) {
+                    ret[i] = (NamedValue) array[i];
+                }
+                break;
+            }
+        }
+        return ret;
+    }
 }


More information about the Libreoffice-commits mailing list