Added:
openoffice/trunk/main/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLConnection.java
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLConnection.java?rev=1814552&view=auto
==============================================================================
---
openoffice/trunk/main/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLConnection.java
(added)
+++
openoffice/trunk/main/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLConnection.java
Wed Nov 8 04:17:25 2017
@@ -0,0 +1,616 @@
+/**************************************************************
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *************************************************************/
+package com.sun.star.comp.sdbc;
+
+import java.util.Properties;
+
+import org.apache.openoffice.comp.sdbc.dbtools.util.AutoRetrievingBase;
+import org.apache.openoffice.comp.sdbc.dbtools.util.Resources;
+import org.apache.openoffice.comp.sdbc.dbtools.util.SharedResources;
+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.comp.sdbc.ClassMap.ClassLoaderAndClass;
+import com.sun.star.comp.sdbc.ConnectionLog.ObjectType;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.lang.IllegalArgumentException;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lib.uno.helper.ComponentBase;
+import com.sun.star.lib.util.WeakMap;
+import com.sun.star.logging.LogLevel;
+import com.sun.star.sdbc.SQLException;
+import com.sun.star.sdbc.SQLWarning;
+import com.sun.star.sdbc.XConnection;
+import com.sun.star.sdbc.XDatabaseMetaData;
+import com.sun.star.sdbc.XPreparedStatement;
+import com.sun.star.sdbc.XStatement;
+import com.sun.star.sdbc.XWarningsSupplier;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.util.XStringSubstitution;
+
+public class JavaSQLConnection extends ComponentBase
+ implements XConnection, XWarningsSupplier, XServiceInfo {
+
+ private static final String[] services = {
+ "com.sun.star.sdbc.Connection"
+ };
+ private static final ClassMap classMap = new ClassMap();
+
+ private AutoRetrievingBase autoRetrievingBase = new AutoRetrievingBase();
+ private String url;
+ private JDBCDriver driver;
+ private ConnectionLog logger;
+ private boolean useParameterSubstitution;
+ private boolean ignoreDriverPrivileges;
+ private boolean ignoreCurrency;
+ private Object catalogRestriction;
+ private Object schemaRestriction;
+ private ClassLoader driverClassLoader;
+ private java.sql.Driver driverObject;
+ private java.sql.Connection connection;
+ private PropertyValue[] connectionInfo;
+ private WeakMap statements = new WeakMap();
+
+ public JavaSQLConnection(JDBCDriver driver) {
+ this.driver = driver;
+ this.logger = new ConnectionLog(driver.getLogger(),
ObjectType.CONNECTION);
+ }
+
+ // XComponent
+
+ @Override
+ protected synchronized void postDisposing() {
+ logger.log(LogLevel.INFO, Resources.STR_LOG_SHUTDOWN_CONNECTION);
+ try {
+ if (connection != null) {
+ connection.close();
+ }
+ } catch (java.sql.SQLException sqlException) {
+ logger.log(LogLevel.WARNING, sqlException);
+ }
+ }
+
+ // XCloseable
+
+ public void close() throws SQLException {
+ dispose();
+ }
+
+ // XServiceInfo
+
+ @Override
+ public String getImplementationName() {
+ return "com.sun.star.sdbcx.JConnection";
+ }
+
+ @Override
+ public String[] getSupportedServiceNames() {
+ return services.clone();
+ }
+
+ @Override
+ public boolean supportsService(String serviceName) {
+ for (String service : services) {
+ if (service.equals(serviceName)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ // XWarningsSupplier
+
+ @Override
+ public synchronized void clearWarnings() throws SQLException {
+ checkDisposed();
+ try {
+ connection.clearWarnings();
+ } catch (java.sql.SQLException sqlException) {
+ throw Tools.toUnoException(this, sqlException);
+ }
+ }
+
+ @Override
+ public synchronized Object getWarnings() throws SQLException {
+ checkDisposed();
+ try {
+ java.sql.SQLWarning javaWarning = connection.getWarnings();
+ if (javaWarning != null) {
+ java.lang.Throwable nextException = javaWarning.getCause();
+ SQLWarning warning = new SQLWarning(javaWarning.getMessage());
+ warning.Context = this;
+ warning.SQLState = javaWarning.getSQLState();
+ warning.ErrorCode = javaWarning.getErrorCode();
+ warning.NextException = nextException != null ?
Tools.toUnoException(this, nextException) : Any.VOID;
+ return warning;
+ }
+ return Any.VOID;
+ } catch (java.sql.SQLException sqlException) {
+ throw Tools.toUnoException(this, sqlException);
+ }
+ }
+
+ // XConnection
+
+ @Override
+ public void commit() throws SQLException {
+ try {
+ connection.commit();
+ } catch (java.sql.SQLException sqlException) {
+ throw Tools.toUnoException(this, sqlException);
+ }
+ }
+
+ @Override
+ public synchronized XStatement createStatement() throws SQLException {
+ checkDisposed();
+ logger.log(LogLevel.FINE, Resources.STR_LOG_CREATE_STATEMENT);
+ JavaSQLStatement statement = new JavaSQLStatement(this);
+ statements.put(statement, statement);
+ logger.log(LogLevel.FINE, Resources.STR_LOG_CREATED_STATEMENT_ID,
statement.getStatementObjectId());
+ return statement;
+ }
+
+ @Override
+ public boolean getAutoCommit() throws SQLException {
+ try {
+ return connection.getAutoCommit();
+ } catch (java.sql.SQLException sqlException) {
+ throw Tools.toUnoException(this, sqlException);
+ }
+ }
+
+ @Override
+ public synchronized String getCatalog() throws SQLException {
+ checkDisposed();
+ try {
+ return connection.getCatalog();
+ } catch (java.sql.SQLException sqlException) {
+ throw Tools.toUnoException(this, sqlException);
+ }
+ }
+
+ @Override
+ public synchronized XDatabaseMetaData getMetaData() throws SQLException {
+ checkDisposed();
+ try {
+ return new JavaSQLDatabaseMetaData(connection.getMetaData(), this);
+ } catch (java.sql.SQLException sqlException) {
+ throw Tools.toUnoException(this, sqlException);
+ }
+ }
+
+ @Override
+ public synchronized int getTransactionIsolation() throws SQLException {
+ checkDisposed();
+ try {
+ return connection.getTransactionIsolation();
+ } catch (java.sql.SQLException sqlException) {
+ throw Tools.toUnoException(this, sqlException);
+ }
+ }
+
+ @Override
+ public synchronized XNameAccess getTypeMap() throws SQLException {
+ checkDisposed();
+ return null;
+ }
+
+ @Override
+ public synchronized boolean isClosed() throws SQLException {
+ try {
+ return connection.isClosed() && bDisposed;
+ } catch (java.sql.SQLException sqlException) {
+ throw Tools.toUnoException(this, sqlException);
+ }
+ }
+
+ @Override
+ public synchronized boolean isReadOnly() throws SQLException {
+ checkDisposed();
+ try {
+ return connection.isReadOnly();
+ } catch (java.sql.SQLException sqlException) {
+ throw Tools.toUnoException(this, sqlException);
+ }
+ }
+
+ @Override
+ public synchronized String nativeSQL(String sql) throws SQLException {
+ checkDisposed();
+ try {
+ String ret = connection.nativeSQL(sql);
+ logger.log(LogLevel.FINER, Resources.STR_LOG_NATIVE_SQL, sql, ret);
+ return ret;
+ } catch (java.sql.SQLException sqlException) {
+ throw Tools.toUnoExceptionLogged(this, logger, sqlException);
+ }
+ }
+
+ @Override
+ public synchronized XPreparedStatement prepareCall(String sql) throws
SQLException {
+ checkDisposed();
+ logger.log(LogLevel.FINE, Resources.STR_LOG_PREPARE_CALL, sql);
+ String sqlStatement = transformPreparedStatement(sql);
+ JavaSQLCallableStatement statement = new
JavaSQLCallableStatement(this, sqlStatement);
+ statements.put(statement, statement);
+ logger.log(LogLevel.FINE, Resources.STR_LOG_PREPARED_CALL_ID,
statement.getStatementObjectId());
+ return statement;
+ }
+
+ @Override
+ public synchronized XPreparedStatement prepareStatement(String sql) throws
SQLException {
+ checkDisposed();
+ logger.log(LogLevel.FINE, Resources.STR_LOG_PREPARE_STATEMENT, sql);
+ String sqlStatement = transformPreparedStatement(sql);
+ JavaSQLPreparedStatement statement = new
JavaSQLPreparedStatement(this, sqlStatement);
+ statements.put(statement, statement);
+ logger.log(LogLevel.FINE, Resources.STR_LOG_PREPARED_STATEMENT_ID,
statement.getStatementObjectId());
+ return statement;
+ }
+
+ @Override
+ public void rollback() throws SQLException {
+ try {
+ connection.rollback();
+ } catch (java.sql.SQLException sqlException) {
+ throw Tools.toUnoException(this, sqlException);
+ }
+ }
+
+ @Override
+ public void setAutoCommit(boolean autoCommit) throws SQLException {
+ try {
+ connection.setAutoCommit(autoCommit);
+ } catch (java.sql.SQLException sqlException) {
+ throw Tools.toUnoException(this, sqlException);
+ }
+ }
+
+ @Override
+ public void setCatalog(String catalog) throws SQLException {
+ try {
+ connection.setCatalog(catalog);
+ } catch (java.sql.SQLException sqlException) {
+ throw Tools.toUnoException(this, sqlException);
+ }
+ }
+
+ @Override
+ public void setReadOnly(boolean readOnly) throws SQLException {
+ try {
+ connection.setReadOnly(readOnly);
+ } catch (java.sql.SQLException sqlException) {
+ throw Tools.toUnoException(this, sqlException);
+ }
+ }
+
+ @Override
+ public synchronized void setTransactionIsolation(int level) throws
SQLException {
+ checkDisposed();
+ try {
+ connection.setTransactionIsolation(level);
+ } catch (java.sql.SQLException sqlException) {
+ throw Tools.toUnoException(this, sqlException);
+ }
+ }
+
+ @Override
+ public synchronized void setTypeMap(XNameAccess arg0) throws SQLException {
+ checkDisposed();
+ String error =
SharedResources.getInstance().getResourceStringWithSubstitution(
+ Resources.STR_UNSUPPORTED_FEATURE, "$featurename$",
"XConnection::setTypeMap");
+ throw new SQLException(error, this,
+ StandardSQLState.SQL_FEATURE_NOT_IMPLEMENTED.text(),
+ 0, Any.VOID);
+ }
+
+ // 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
+ boolean autoRetrievingEnabled = false; // set to <TRUE/> when we
should allow to query for generated values
+ String driverClassPath = "";
+ String driverClass = "";
+ NamedValue[] systemProperties = new NamedValue[0];
+
+ try {
+ driverClass = getOrDefault(info, "JavaDriverClass", driverClass);
+ driverClassPath = 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);
+
+ loadDriverFromProperties(driverClass, driverClassPath,
systemProperties);
+
+ autoRetrievingBase.setAutoRetrievingEnabled(autoRetrievingEnabled);
+
autoRetrievingBase.setAutoRetrievingStatement(generatedValueStatement);
+
+ Properties properties = createStringPropertyArray(info);
+ try (ContextClassLoaderScope ccl = new
ContextClassLoaderScope(driverClassLoader)) {
+ connection = driverObject.connect(url, properties);
+ }
+ logger.log(LogLevel.INFO, Resources.STR_LOG_GOT_JDBC_CONNECTION,
url);
+ connectionInfo = info;
+ return true;
+ } catch (IllegalArgumentException illegalArgumentException) {
+ logger.log(LogLevel.SEVERE, illegalArgumentException);
+ throw new SQLException("Driver property error", this,
+ StandardSQLState.SQL_GENERAL_ERROR.text(), 0,
illegalArgumentException);
+ } catch (java.sql.SQLException sqlException) {
+ throw Tools.toUnoExceptionLogged(this, logger, sqlException);
+ }
+ }
+
+ private String getJavaDriverClassPath(String driverClass) {
+ String url = "";
+ try {
+ XMultiServiceFactory configurationProvider =
UnoRuntime.queryInterface(XMultiServiceFactory.class,
+
driver.getContext().getServiceManager().createInstanceWithContext(
+
"com.sun.star.configuration.ConfigurationProvider", driver.getContext()));
+
+ PropertyValue[] arguments = new PropertyValue[1];
+ arguments[0] = new PropertyValue();
+ arguments[0].Name = "nodepath";
+ arguments[0].Value =
"/org.openoffice.Office.DataAccess/JDBC/DriverClassPaths";
+
+ Object configurationAccess =
configurationProvider.createInstanceWithArguments(
+ "com.sun.star.configuration.ConfigurationAccess",
arguments);
+ XNameAccess myNode = UnoRuntime.queryInterface(XNameAccess.class,
configurationAccess);
+ if (myNode.hasByName(driverClass)) {
+ XNameAccess driverNode =
UnoRuntime.queryInterface(XNameAccess.class, myNode.getByName(driverClass));
+ if (driverNode.hasByName("Path")) {
+ url = AnyConverter.toString(driverNode.getByName("Path"));
+ }
+ }
+ } catch (com.sun.star.uno.Exception exception) {
+ logger.log(LogLevel.WARNING, exception);
+ }
+ return url;
+ }
+
+ private void loadDriverFromProperties(String driverClassName, String
driverClassPath, NamedValue[] properties) throws SQLException {
+ if (connection != null) {
+ return;
+ }
+ try {
+ setSystemProperties(properties);
+ driverClassLoader = null;
+
+ if (driverClassName.isEmpty()) {
+ logger.log(LogLevel.SEVERE, Resources.STR_LOG_NO_DRIVER_CLASS);
+ throw new
SQLException(getDriverLoadErrorMessage(SharedResources.getInstance(),
driverClassName, driverClassPath),
+ this, StandardSQLState.SQL_GENERAL_ERROR.text(), 0,
Any.VOID);
+ }
+ logger.log(LogLevel.INFO, Resources.STR_LOG_LOADING_DRIVER,
driverClassName);
+ // the driver manager holds the class of the driver for later use
+ Class<?> driverClass;
+ if (driverClassPath.isEmpty()) {
+ driverClass = Class.forName(driverClassName);
+ } else {
+ ClassLoaderAndClass classLoaderAndClass =
classMap.loadClass(driver.getContext(), driverClassPath, driverClassName);
+ driverClassLoader = classLoaderAndClass.getClassLoader();
+ driverClass = classLoaderAndClass.getClassObject();
+ }
+ driverObject = (java.sql.Driver) driverClass.newInstance();
+ driverClass = driverObject.getClass();
+ logger.log(LogLevel.INFO, Resources.STR_LOG_CONN_SUCCESS);
+ } catch (SQLException sqlException) {
+ throw new SQLException(
+ getDriverLoadErrorMessage(SharedResources.getInstance(),
driverClassName, driverClassPath),
+ this, "", 1000, sqlException);
+ } catch (Exception exception) {
+ throw new SQLException(
+ getDriverLoadErrorMessage(SharedResources.getInstance(),
driverClassName, driverClassPath),
+ this, StandardSQLState.SQL_GENERAL_ERROR.text(), 0,
+ Tools.toUnoExceptionLogged(this, logger, exception));
+ }
+ }
+
+ private void setSystemProperties(NamedValue[] properties) {
+ for (NamedValue namedValue : properties) {
+ String value = "";
+ try {
+ value = AnyConverter.toString(namedValue.Value);
+ } catch (IllegalArgumentException illegalArgumentException) {
+ logger.log(LogLevel.WARNING, illegalArgumentException);
+ }
+ logger.log(LogLevel.FINER,
Resources.STR_LOG_SETTING_SYSTEM_PROPERTY, namedValue.Name, value);
+ System.setProperty(namedValue.Name, value);
+ }
+ }
+
+ private static String getDriverLoadErrorMessage(SharedResources
sharedResouces, String driverClass, String driverClassPath) {
+ String error1 = sharedResouces.getResourceStringWithSubstitution(
+ Resources.STR_NO_CLASSNAME, "$classname$", driverClass);
+ if (!driverClassPath.isEmpty()) {
+ String error2 = sharedResouces.getResourceStringWithSubstitution(
+ Resources.STR_NO_CLASSNAME_PATH, "$classpath$",
driverClassPath);
+ error1 += error2;
+ }
+ return error1;
+ }
+
+ private Properties createStringPropertyArray(PropertyValue[] info) throws
IllegalArgumentException {
+ Properties properties = new Properties();
+ for (PropertyValue propertyValue : info) {
+ if (!propertyValue.Name.equals("JavaDriverClass") &&
+ !propertyValue.Name.equals("JavaDriverClassPath") &&
+ !propertyValue.Name.equals("SystemProperties") &&
+ !propertyValue.Name.equals("CharSet") &&
+ !propertyValue.Name.equals("AppendTableAliasName") &&
+ !propertyValue.Name.equals("AddIndexAppendix") &&
+ !propertyValue.Name.equals("FormsCheckRequiredFields") &&
+
!propertyValue.Name.equals("GenerateASBeforeCorrelationName") &&
+ !propertyValue.Name.equals("EscapeDateTime") &&
+ !propertyValue.Name.equals("ParameterNameSubstitution") &&
+ !propertyValue.Name.equals("IsPasswordRequired") &&
+ !propertyValue.Name.equals("IsAutoRetrievingEnabled") &&
+ !propertyValue.Name.equals("AutoRetrievingStatement") &&
+ !propertyValue.Name.equals("UseCatalogInSelect") &&
+ !propertyValue.Name.equals("UseSchemaInSelect") &&
+ !propertyValue.Name.equals("AutoIncrementCreation") &&
+ !propertyValue.Name.equals("Extension") &&
+ !propertyValue.Name.equals("NoNameLengthLimit") &&
+ !propertyValue.Name.equals("EnableSQL92Check") &&
+ !propertyValue.Name.equals("EnableOuterJoinEscape") &&
+ !propertyValue.Name.equals("BooleanComparisonMode") &&
+ !propertyValue.Name.equals("IgnoreCurrency") &&
+ !propertyValue.Name.equals("TypeInfoSettings") &&
+ !propertyValue.Name.equals("IgnoreDriverPrivileges") &&
+ !propertyValue.Name.equals("ImplicitCatalogRestriction") &&
+ !propertyValue.Name.equals("ImplicitSchemaRestriction") &&
+ !propertyValue.Name.equals("SupportsTableCreation") &&
+ !propertyValue.Name.equals("UseJava") &&
+ !propertyValue.Name.equals("Authentication") &&
+ !propertyValue.Name.equals("PreferDosLikeLineEnds") &&
+ !propertyValue.Name.equals("PrimaryKeySupport") &&
+ !propertyValue.Name.equals("RespectDriverResultSetType")) {
+ properties.setProperty(propertyValue.Name,
AnyConverter.toString(propertyValue.Value));
+ }
+ }
+ return properties;
+ }
+
+ private String transformPreparedStatement(String sql) throws SQLException {
+ PropertyValue[] properties = new PropertyValue[1];
+ properties[0] = new PropertyValue();
+ properties[0].Name = "ActiveConnection";
+ properties[0].Value = this;
+ XComponentContext context = driver.getContext();
+ try {
+ Object parameterSubstitution =
context.getServiceManager().createInstanceWithArgumentsAndContext(
+ "com.sun.star.sdb.ParameterSubstitution", properties,
context);
+ XStringSubstitution stringSubstitution =
UnoRuntime.queryInterface(XStringSubstitution.class, parameterSubstitution);
+ return stringSubstitution.substituteVariables(sql, true);
+ } catch (com.sun.star.uno.Exception exception) {
+ throw Tools.toUnoExceptionLogged(this, logger, exception);
+ }
+ }
+
+ /** returns the instance used for logging events related to this connection
+ */
+ public ConnectionLog getLogger() {
+ return logger;
+ }
+
+ public java.sql.Connection getJDBCConnection() {
+ return connection;
+ }
+
+ public boolean isAutoRetrievingEnabled() {
+ return autoRetrievingBase.isAutoRetrievingEnabled();
+ }
+
+ public boolean isIgnoreCurrencyEnabled() {
+ return ignoreCurrency;
+ }
+
+ public String getTransformedGeneratedStatement(String sql) {
+ return autoRetrievingBase.getTransformedGeneratedStatement(sql);
+ }
+
+ public ClassLoader getDriverClassLoader() {
+ return driverClassLoader;
+ }
+
+ public Object getCatalogRestriction() {
+ return catalogRestriction;
+ }
+
+ public Object getSchemaRestriction() {
+ return schemaRestriction;
+ }
+
+ public boolean isIgnoreDriverPrivilegesEnabled() {
+ return ignoreDriverPrivileges;
+ }
+
+ public String getURL() {
+ return url;
+ }
+
+ public PropertyValue[] getConnectionInfo() {
+ return connectionInfo;
+ }
+}
Propchange:
openoffice/trunk/main/connectivity/java/sdbc_jdbc/src/com/sun/star/comp/sdbc/JavaSQLConnection.java
------------------------------------------------------------------------------
svn:eol-style = native