From 439698c480717d01fafd07463d9994a31795cdb0 Mon Sep 17 00:00:00 2001 From: Ivo Hinkelmann Date: Thu, 23 Apr 2009 10:42:05 +0000 Subject: CWS-TOOLING: integrate CWS dbaperf1 2009-04-02 09:12:25 +0200 oj r270372 : CWS-TOOLING: rebase CWS dbaperf1 to trunk@270033 (milestone: DEV300:m45) 2009-03-17 10:20:34 +0100 oj r269577 : add parameter 2009-03-17 10:20:05 +0100 oj r269576 : add parameter 2009-03-12 12:32:24 +0100 oj r269387 : add missing ++ 2009-03-11 12:53:35 +0100 oj r269315 : compile error 2009-03-06 08:52:11 +0100 oj r268968 : #i99264# remove duplicate code 2009-03-06 08:20:08 +0100 oj r268966 : add missingheader 2009-03-06 08:17:41 +0100 oj r268965 : add header 2009-03-06 08:15:07 +0100 oj r268964 : #i99708# remove duplicate code 2009-03-06 07:24:11 +0100 oj r268963 : #i99708# remove duplicate code 2009-03-06 07:22:24 +0100 oj r268962 : #i99708# use tenary operator 2009-03-06 07:19:21 +0100 oj r268961 : remove unused rtl_logs 2009-03-06 07:15:55 +0100 oj r268960 : #i99708# extract getLength from for loop 2009-03-06 07:15:35 +0100 oj r268959 : #i99708# extract getLength from for loop 2009-03-06 07:14:57 +0100 oj r268958 : remove unused rtl_logs 2009-03-06 07:13:01 +0100 oj r268957 : insert DBG_ helper 2009-03-06 07:12:17 +0100 oj r268956 : remove unused rtl_logs 2009-03-06 07:10:26 +0100 oj r268955 : remove unused rtl_logs 2009-03-06 07:04:51 +0100 oj r268954 : #i99708# use tenary operator 2009-03-05 12:04:46 +0100 oj r268895 : comment RTL_LOG out 2009-03-05 09:05:07 +0100 oj r268874 : add rtl logfile 2009-03-04 14:21:18 +0100 oj r268828 : #i99708# make static inplace and some method calls in for loop removed 2009-03-04 14:20:34 +0100 oj r268827 : #i99708# impl double check pattern for getInfohelper 2009-03-02 09:31:42 +0100 oj r268636 : add rtl logfile 2009-03-02 08:18:37 +0100 oj r268633 : add rtl logfile 2009-02-27 11:22:16 +0100 oj r268570 : #i99709# change algorithm for marking objects 2009-02-27 11:17:04 +0100 oj r268568 : #i99708# some improvements to load forms, controls faster and replacement of size() call with !empty() which is much faster 2009-02-24 10:09:35 +0100 sb r268383 : #i99290# no longer care to set a sensible context class loader for native threads attached to the VM 2009-02-23 13:44:04 +0100 oj r268354 : #i76606# seekrow changes 2009-02-23 12:27:30 +0100 oj r268349 : deleted 2009-02-20 15:14:23 +0100 oj r268325 : #i76606# some code changes 2009-02-19 14:15:25 +0100 oj r268284 : #i76606# use of simple prep stmt instead of full blown rowset, when source and dest connection are the same use insert into ... ( select ... ) 2009-02-19 11:27:55 +0100 oj r268265 : #i76606# insert some RTL_LOG and setObject impl 2009-02-18 14:45:37 +0100 oj r268222 : #i99363# insert RTL_LOG 2009-02-18 14:45:18 +0100 oj r268221 : #i99363# insert RTL_LOG 2009-02-18 11:14:54 +0100 oj r268207 : #i99363# call some impl_ methods to avoid duplicate cechCache calls 2009-02-18 11:10:47 +0100 oj r268206 : #i99363# make isCount inline 2009-02-18 10:33:22 +0100 oj r268203 : #i99363# use bookmarkable if available and inserted some RTL_LOG 2009-02-18 10:32:57 +0100 oj r268202 : #i99363# use bookmarkable if available and inserted some RTL_LOG 2009-02-17 07:29:05 +0100 oj r267843 : #i96897# remove some dll public 2009-02-16 15:01:04 +0100 oj r267816 : #i96897# remove some dll public 2009-02-16 14:25:53 +0100 oj r267810 : #i99264# remove duplicate code 2009-02-16 14:25:33 +0100 oj r267809 : #i99264# remove duplicate code 2009-02-16 14:24:59 +0100 oj r267808 : #i99264# remove duplicate code 2009-02-13 10:56:17 +0100 oj r267703 : #i99191# comment the contextclassloader 2009-02-13 10:32:40 +0100 oj r267700 : reduce call to resultset meta data 2009-02-13 10:27:31 +0100 oj r267699 : reduce call to resultset meta data 2009-02-13 10:27:08 +0100 oj r267698 : reduce call to resultset meta data --- connectivity/inc/connectivity/FValue.hxx | 12 + connectivity/source/commontools/FValue.cxx | 147 ++- .../source/drivers/ado/APreparedStatement.cxx | 12 +- connectivity/source/drivers/ado/makefile.mk | 1 + connectivity/source/drivers/calc/CCatalog.cxx | 7 +- connectivity/source/drivers/calc/CConnection.cxx | 13 + .../source/drivers/calc/CDatabaseMetaData.cxx | 44 +- connectivity/source/drivers/calc/CResultSet.cxx | 3 - connectivity/source/drivers/calc/CTable.cxx | 239 ++-- connectivity/source/drivers/calc/CTables.cxx | 2 + .../source/drivers/dbase/DDatabaseMetaData.cxx | 18 +- connectivity/source/drivers/dbase/DNoException.cxx | 21 + connectivity/source/drivers/dbase/DTable.cxx | 46 + .../source/drivers/evoab2/NPreparedStatement.cxx | 11 +- connectivity/source/drivers/evoab2/makefile.mk | 1 + connectivity/source/drivers/file/FCatalog.cxx | 12 +- .../source/drivers/file/FDatabaseMetaData.cxx | 138 ++ connectivity/source/drivers/file/FDriver.cxx | 12 +- connectivity/source/drivers/file/FNoException.cxx | 14 +- .../source/drivers/file/FPreparedStatement.cxx | 59 +- connectivity/source/drivers/file/FResultSet.cxx | 115 +- .../source/drivers/file/FResultSetMetaData.cxx | 31 +- connectivity/source/drivers/file/FStatement.cxx | 40 +- .../source/drivers/file/FStringFunctions.cxx | 17 + connectivity/source/drivers/file/FTable.cxx | 19 +- connectivity/source/drivers/file/fcode.cxx | 31 +- connectivity/source/drivers/file/quotedstring.cxx | 57 +- .../source/drivers/flat/EDatabaseMetaData.cxx | 6 + connectivity/source/drivers/flat/ENoException.cxx | 324 ----- connectivity/source/drivers/flat/EResultSet.cxx | 7 +- connectivity/source/drivers/flat/ETable.cxx | 334 ++--- connectivity/source/drivers/jdbc/Array.cxx | 129 +- connectivity/source/drivers/jdbc/Blob.cxx | 100 +- connectivity/source/drivers/jdbc/Boolean.cxx | 33 +- .../source/drivers/jdbc/CallableStatement.cxx | 472 ++----- connectivity/source/drivers/jdbc/Class.cxx | 109 +- connectivity/source/drivers/jdbc/Clob.cxx | 85 +- .../source/drivers/jdbc/DatabaseMetaData.cxx | 762 +++++------ connectivity/source/drivers/jdbc/Date.cxx | 19 +- connectivity/source/drivers/jdbc/DriverManager.cxx | 113 -- .../source/drivers/jdbc/DriverPropertyInfo.cxx | 50 +- connectivity/source/drivers/jdbc/Exception.cxx | 20 +- connectivity/source/drivers/jdbc/InputStream.cxx | 95 +- connectivity/source/drivers/jdbc/JBigDecimal.cxx | 34 +- connectivity/source/drivers/jdbc/JConnection.cxx | 380 +----- connectivity/source/drivers/jdbc/JDriver.cxx | 1 - connectivity/source/drivers/jdbc/JStatement.cxx | 716 +++-------- connectivity/source/drivers/jdbc/Object.cxx | 269 +++- .../source/drivers/jdbc/PreparedStatement.cxx | 540 ++------ connectivity/source/drivers/jdbc/Reader.cxx | 95 +- connectivity/source/drivers/jdbc/Ref.cxx | 41 +- connectivity/source/drivers/jdbc/ResultSet.cxx | 1348 +++----------------- .../source/drivers/jdbc/ResultSetMetaData.cxx | 468 ++----- connectivity/source/drivers/jdbc/SQLException.cxx | 87 +- connectivity/source/drivers/jdbc/SQLWarning.cxx | 20 +- connectivity/source/drivers/jdbc/String.cxx | 30 +- connectivity/source/drivers/jdbc/Throwable.cxx | 90 +- connectivity/source/drivers/jdbc/Timestamp.cxx | 100 +- connectivity/source/drivers/jdbc/makefile.mk | 1 - connectivity/source/drivers/jdbc/tools.cxx | 40 +- .../source/drivers/kab/KPreparedStatement.cxx | 13 +- .../drivers/macab/MacabPreparedStatement.cxx | 15 +- connectivity/source/drivers/macab/makefile.mk | 2 +- connectivity/source/drivers/mozab/makefile.mk | 1 + connectivity/source/inc/calc/CResultSet.hxx | 3 + connectivity/source/inc/file/FDateFunctions.hxx | 30 +- connectivity/source/inc/file/FNumericFunctions.hxx | 44 +- connectivity/source/inc/file/FResultSet.hxx | 10 +- connectivity/source/inc/file/FStringFunctions.hxx | 32 +- connectivity/source/inc/file/fcode.hxx | 36 +- connectivity/source/inc/file/fcomp.hxx | 4 +- connectivity/source/inc/file/quotedstring.hxx | 11 +- connectivity/source/inc/flat/ETable.hxx | 12 +- connectivity/source/inc/java/io/InputStream.hxx | 4 +- connectivity/source/inc/java/io/Reader.hxx | 4 +- connectivity/source/inc/java/lang/Boolean.hxx | 4 +- connectivity/source/inc/java/lang/Class.hxx | 7 +- connectivity/source/inc/java/lang/Exception.hxx | 4 +- connectivity/source/inc/java/lang/Object.hxx | 49 +- connectivity/source/inc/java/lang/String.hxx | 6 +- connectivity/source/inc/java/lang/Throwable.hxx | 7 +- connectivity/source/inc/java/math/BigDecimal.hxx | 4 +- connectivity/source/inc/java/sql/Array.hxx | 4 +- connectivity/source/inc/java/sql/Blob.hxx | 4 +- .../source/inc/java/sql/CallableStatement.hxx | 4 +- connectivity/source/inc/java/sql/Clob.hxx | 4 +- connectivity/source/inc/java/sql/Connection.hxx | 4 +- .../source/inc/java/sql/DatabaseMetaData.hxx | 4 +- connectivity/source/inc/java/sql/DriverManager.hxx | 66 - .../source/inc/java/sql/DriverPropertyInfo.hxx | 16 +- connectivity/source/inc/java/sql/JStatement.hxx | 11 +- .../source/inc/java/sql/PreparedStatement.hxx | 4 +- connectivity/source/inc/java/sql/Ref.hxx | 4 +- connectivity/source/inc/java/sql/ResultSet.hxx | 4 +- .../source/inc/java/sql/ResultSetMetaData.hxx | 5 +- connectivity/source/inc/java/sql/SQLException.hxx | 6 +- connectivity/source/inc/java/sql/SQLWarning.hxx | 4 +- connectivity/source/inc/java/sql/Timestamp.hxx | 12 +- connectivity/source/inc/java/util/Date.hxx | 4 +- connectivity/source/inc/java/util/Property.hxx | 4 +- connectivity/source/parse/sqliterator.cxx | 51 + connectivity/source/parse/sqlnode.cxx | 37 + svx/inc/ParseContext.hxx | 4 +- svx/source/form/datanavi.cxx | 1 + svx/source/form/filtnav.cxx | 60 + svx/source/form/fmctrler.cxx | 177 ++- svx/source/form/fmexpl.cxx | 10 + svx/source/form/fmpage.cxx | 9 + svx/source/form/fmpgeimp.cxx | 16 +- svx/source/form/fmshimp.cxx | 134 +- svx/source/form/fmtools.cxx | 20 +- svx/source/form/fmundo.cxx | 40 +- svx/source/form/fmvwimp.cxx | 47 + svx/source/form/navigatortree.cxx | 130 +- svx/source/form/navigatortreemodel.cxx | 37 + svx/source/inc/fmctrler.hxx | 3 + svx/source/inc/fmexpl.hxx | 2 + svx/source/inc/fmpgeimp.hxx | 3 + svx/source/inc/fmshimp.hxx | 8 + xmloff/inc/xexptran.hxx | 4 +- xmloff/inc/xmloff/controlpropertyhdl.hxx | 2 +- xmloff/source/chart/SchXMLExport.cxx | 22 +- xmloff/source/chart/SchXMLImport.cxx | 320 +++-- xmloff/source/chart/SchXMLSeries2Context.cxx | 2 +- xmloff/source/core/attrlist.cxx | 13 +- xmloff/source/core/xmlexp.cxx | 25 +- xmloff/source/core/xmlictxt.cxx | 7 +- xmloff/source/core/xmluconv.cxx | 258 +--- xmloff/source/draw/sdxmlimp.cxx | 228 ++-- xmloff/source/draw/shapeimport.cxx | 236 ++-- xmloff/source/draw/xexptran.cxx | 18 +- xmloff/source/draw/ximpcustomshape.cxx | 21 +- xmloff/source/draw/ximpshap.cxx | 2 +- xmloff/source/forms/callbacks.hxx | 86 -- xmloff/source/forms/elementexport.cxx | 6 +- xmloff/source/forms/elementimport.cxx | 194 ++- xmloff/source/forms/elementimport.hxx | 42 +- xmloff/source/forms/elementimport_impl.hxx | 2 +- xmloff/source/forms/eventexport.cxx | 2 +- xmloff/source/forms/formattributes.cxx | 2 +- xmloff/source/forms/formcellbinding.cxx | 695 +++++----- xmloff/source/forms/layerexport.cxx | 8 +- xmloff/source/forms/layerimport.cxx | 1036 ++++++++------- xmloff/source/forms/layerimport.hxx | 33 +- xmloff/source/forms/propertyimport.cxx | 913 ++++++------- xmloff/source/forms/propertyimport.hxx | 7 +- xmloff/source/forms/strings.hxx | 1 + xmloff/source/meta/MetaExportComponent.cxx | 5 +- xmloff/source/meta/xmlmetae.cxx | 12 +- xmloff/source/script/XMLEventImportHelper.cxx | 2 +- xmloff/source/style/GradientStyle.cxx | 34 +- xmloff/source/style/HatchStyle.cxx | 24 +- xmloff/source/style/ImageStyle.cxx | 28 +- xmloff/source/style/TransGradientStyle.cxx | 30 +- xmloff/source/style/XMLBackgroundImageContext.cxx | 44 +- xmloff/source/style/XMLFontStylesContext.cxx | 36 +- xmloff/source/style/XMLFootnoteSeparatorExport.cxx | 16 +- xmloff/source/style/XMLFootnoteSeparatorImport.cxx | 22 +- xmloff/source/style/fonthdl.cxx | 28 +- xmloff/source/style/xmlexppr.cxx | 2 +- xmloff/source/style/xmlnumfi.cxx | 160 +-- xmloff/source/style/xmlnumi.cxx | 162 +-- xmloff/source/text/XMLIndexTOCStylesContext.cxx | 2 +- xmloff/source/text/XMLIndexTemplateContext.cxx | 2 +- .../source/text/XMLLineNumberingImportContext.cxx | 74 +- xmloff/source/text/txtflde.cxx | 8 +- xmloff/source/text/txtimp.cxx | 8 +- xmloff/source/text/txtlists.cxx | 11 +- xmloff/source/text/txtparae.cxx | 6 +- 169 files changed, 5889 insertions(+), 8307 deletions(-) delete mode 100644 connectivity/source/drivers/flat/ENoException.cxx delete mode 100644 connectivity/source/drivers/jdbc/DriverManager.cxx delete mode 100644 connectivity/source/inc/java/sql/DriverManager.hxx diff --git a/connectivity/inc/connectivity/FValue.hxx b/connectivity/inc/connectivity/FValue.hxx index 8dba9e7ee9..850a024a3b 100644 --- a/connectivity/inc/connectivity/FValue.hxx +++ b/connectivity/inc/connectivity/FValue.hxx @@ -344,6 +344,18 @@ namespace connectivity sal_Int32 _nType, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRow>& _xRow); + /** + fetches a single value out of the row + @param _nPos the current column position + @param _nType the type of the current column + @param _bNullable if true then it will be checked if the result could be NULL, otherwise not. + @param _xRow the row where to fetch the data from + */ + void fill(sal_Int32 _nPos, + sal_Int32 _nType, + sal_Bool _bNullable, + const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRow>& _xRow); + void fill(const ::com::sun::star::uno::Any& _rValue); }; diff --git a/connectivity/source/commontools/FValue.cxx b/connectivity/source/commontools/FValue.cxx index 0142f02404..cdae636c4a 100644 --- a/connectivity/source/commontools/FValue.cxx +++ b/connectivity/source/commontools/FValue.cxx @@ -36,6 +36,7 @@ #include "connectivity/CommonTools.hxx" #include #include +#include using namespace connectivity; using namespace dbtools; @@ -47,10 +48,12 @@ using namespace ::com::sun::star::io; namespace { static sal_Bool isStorageCompatible(sal_Int32 _eType1, sal_Int32 _eType2) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::isStorageCompatible" ); sal_Bool bIsCompatible = sal_True; if (_eType1 != _eType2) { + RTL_LOGFILE_CONTEXT_TRACE( aLogger, "ORowSetValue::isStorageCompatible _eType1 != _eType2" ); switch (_eType1) { case DataType::CHAR: @@ -196,65 +199,65 @@ namespace tracing // ----------------------------------------------------------------------------- void ORowSetValue::setTypeKind(sal_Int32 _eType) { - if (!m_bNull) - if (!isStorageCompatible(_eType, m_eTypeKind)) + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::setTypeKind" ); + if ( !m_bNull && !isStorageCompatible(_eType, m_eTypeKind) ) + { + switch(_eType) { - switch(_eType) - { - case DataType::VARCHAR: - case DataType::CHAR: - case DataType::DECIMAL: - case DataType::NUMERIC: - case DataType::LONGVARCHAR: - (*this) = getString(); - break; - case DataType::BIGINT: - (*this) = getLong(); - break; + case DataType::VARCHAR: + case DataType::CHAR: + case DataType::DECIMAL: + case DataType::NUMERIC: + case DataType::LONGVARCHAR: + (*this) = getString(); + break; + case DataType::BIGINT: + (*this) = getLong(); + break; - case DataType::FLOAT: - (*this) = getFloat(); - break; - case DataType::DOUBLE: - case DataType::REAL: - (*this) = getDouble(); - break; - case DataType::TINYINT: - (*this) = getInt8(); - break; - case DataType::SMALLINT: - (*this) = getInt16(); - break; - case DataType::INTEGER: - (*this) = getInt32(); - break; - case DataType::BIT: - case DataType::BOOLEAN: - (*this) = getBool(); - break; - case DataType::DATE: - (*this) = getDate(); - break; - case DataType::TIME: - (*this) = getTime(); - break; - case DataType::TIMESTAMP: - (*this) = getDateTime(); - break; - case DataType::BINARY: - case DataType::VARBINARY: - case DataType::LONGVARBINARY: - (*this) = getSequence(); - break; - case DataType::BLOB: - case DataType::CLOB: - case DataType::OBJECT: - (*this) = getAny(); - break; - default: - OSL_ENSURE(0,"ORowSetValue:operator==(): UNSPUPPORTED TYPE!"); - } + case DataType::FLOAT: + (*this) = getFloat(); + break; + case DataType::DOUBLE: + case DataType::REAL: + (*this) = getDouble(); + break; + case DataType::TINYINT: + (*this) = getInt8(); + break; + case DataType::SMALLINT: + (*this) = getInt16(); + break; + case DataType::INTEGER: + (*this) = getInt32(); + break; + case DataType::BIT: + case DataType::BOOLEAN: + (*this) = getBool(); + break; + case DataType::DATE: + (*this) = getDate(); + break; + case DataType::TIME: + (*this) = getTime(); + break; + case DataType::TIMESTAMP: + (*this) = getDateTime(); + break; + case DataType::BINARY: + case DataType::VARBINARY: + case DataType::LONGVARBINARY: + (*this) = getSequence(); + break; + case DataType::BLOB: + case DataType::CLOB: + case DataType::OBJECT: + (*this) = getAny(); + break; + default: + OSL_ENSURE(0,"ORowSetValue:operator==(): UNSPUPPORTED TYPE!"); } + } m_eTypeKind = _eType; } @@ -262,6 +265,7 @@ void ORowSetValue::setTypeKind(sal_Int32 _eType) // ----------------------------------------------------------------------------- void ORowSetValue::free() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::free" ); if(!m_bNull) { switch(m_eTypeKind) @@ -348,7 +352,7 @@ ORowSetValue& ORowSetValue::operator=(const ORowSetValue& _rRH) if(&_rRH == this) return *this; - if ( m_eTypeKind != _rRH.m_eTypeKind || _rRH.m_bNull || m_bSigned != _rRH.m_bSigned) + if ( m_eTypeKind != _rRH.m_eTypeKind || (_rRH.m_bNull && !m_bNull) || m_bSigned != _rRH.m_bSigned) free(); m_bBound = _rRH.m_bBound; @@ -581,7 +585,7 @@ ORowSetValue& ORowSetValue::operator=(const ::rtl::OUString& _rRH) ORowSetValue& ORowSetValue::operator=(const double& _rRH) { - if(m_eTypeKind != DataType::DOUBLE) + if( !isStorageCompatible(m_eTypeKind,DataType::DOUBLE) ) free(); if(m_bNull) @@ -848,6 +852,7 @@ bool ORowSetValue::operator==(const ORowSetValue& _rRH) const // ------------------------------------------------------------------------- Any ORowSetValue::makeAny() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::makeAny" ); Any rValue; if(isBound() && !isNull()) { @@ -939,6 +944,7 @@ Any ORowSetValue::makeAny() const // ------------------------------------------------------------------------- ::rtl::OUString ORowSetValue::getString( ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::getString" ); ::rtl::OUString aRet; if(!m_bNull) { @@ -1014,6 +1020,7 @@ Any ORowSetValue::makeAny() const // ------------------------------------------------------------------------- sal_Bool ORowSetValue::getBool() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::getBool" ); sal_Bool bRet = sal_False; if(!m_bNull) { @@ -1084,6 +1091,7 @@ sal_Bool ORowSetValue::getBool() const // ------------------------------------------------------------------------- sal_Int8 ORowSetValue::getInt8() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::getInt8" ); sal_Int8 nRet = 0; @@ -1148,6 +1156,7 @@ sal_Int8 ORowSetValue::getInt8() const // ------------------------------------------------------------------------- sal_Int16 ORowSetValue::getInt16() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::getInt16" ); sal_Int16 nRet = 0; @@ -1212,6 +1221,7 @@ sal_Int16 ORowSetValue::getInt16() const // ------------------------------------------------------------------------- sal_Int32 ORowSetValue::getInt32() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::getInt32" ); sal_Int32 nRet = 0; if(!m_bNull) { @@ -1276,6 +1286,7 @@ sal_Int32 ORowSetValue::getInt32() const // ------------------------------------------------------------------------- sal_Int64 ORowSetValue::getLong() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::getLong" ); sal_Int64 nRet = 0; if(!m_bNull) { @@ -1340,6 +1351,7 @@ sal_Int64 ORowSetValue::getLong() const // ------------------------------------------------------------------------- float ORowSetValue::getFloat() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::getFloat" ); float nRet = 0; if(!m_bNull) { @@ -1408,6 +1420,7 @@ float ORowSetValue::getFloat() const // ------------------------------------------------------------------------- double ORowSetValue::getDouble() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::getDouble" ); double nRet = 0; @@ -1478,6 +1491,7 @@ double ORowSetValue::getDouble() const // ------------------------------------------------------------------------- void ORowSetValue::setFromDouble(const double& _rVal,sal_Int32 _nDatatype) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::setFromDouble" ); free(); m_bNull = sal_False; @@ -1564,6 +1578,7 @@ void ORowSetValue::setFromDouble(const double& _rVal,sal_Int32 _nDatatype) // ----------------------------------------------------------------------------- Sequence ORowSetValue::getSequence() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::getSequence" ); Sequence aSeq; if (!m_bNull) { @@ -1605,6 +1620,7 @@ Sequence ORowSetValue::getSequence() const // ----------------------------------------------------------------------------- ::com::sun::star::util::Date ORowSetValue::getDate() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::getDate" ); ::com::sun::star::util::Date aValue; if(!m_bNull) { @@ -1643,6 +1659,7 @@ Sequence ORowSetValue::getSequence() const // ----------------------------------------------------------------------------- ::com::sun::star::util::Time ORowSetValue::getTime() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::getTime" ); ::com::sun::star::util::Time aValue; if(!m_bNull) { @@ -1680,6 +1697,7 @@ Sequence ORowSetValue::getSequence() const // ----------------------------------------------------------------------------- ::com::sun::star::util::DateTime ORowSetValue::getDateTime() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::getDateTime" ); ::com::sun::star::util::DateTime aValue; if(!m_bNull) { @@ -1726,6 +1744,7 @@ Sequence ORowSetValue::getSequence() const // ----------------------------------------------------------------------------- void ORowSetValue::setSigned(sal_Bool _bMod) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::setSigned" ); if ( m_bSigned != _bMod ) { m_bSigned = _bMod; @@ -1792,6 +1811,15 @@ void ORowSetValue::fill(sal_Int32 _nPos, sal_Int32 _nType, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRow>& _xRow) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::fill" ); + fill(_nPos,_nType,sal_True,_xRow); +} +void ORowSetValue::fill(sal_Int32 _nPos, + sal_Int32 _nType, + sal_Bool _bNullable, + const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRow>& _xRow) +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::fill" ); sal_Bool bReadData = sal_True; switch(_nType) { @@ -1863,13 +1891,14 @@ void ORowSetValue::fill(sal_Int32 _nPos, bReadData = sal_False; break; } - if ( bReadData && _xRow->wasNull() ) + if ( bReadData && _bNullable && _xRow->wasNull() ) setNull(); setTypeKind(_nType); } // ----------------------------------------------------------------------------- void ORowSetValue::fill(const Any& _rValue) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbtools", "Ocke.Janssen@sun.com", "ORowSetValue::fill" ); switch (_rValue.getValueType().getTypeClass()) { case TypeClass_VOID: diff --git a/connectivity/source/drivers/ado/APreparedStatement.cxx b/connectivity/source/drivers/ado/APreparedStatement.cxx index 1a7e0a41c9..517d17dd0c 100644 --- a/connectivity/source/drivers/ado/APreparedStatement.cxx +++ b/connectivity/source/drivers/ado/APreparedStatement.cxx @@ -41,6 +41,7 @@ #include #include "connectivity/dbexception.hxx" #include "connectivity/dbtools.hxx" +#include "resource/ado_res.hrc" #include @@ -433,9 +434,16 @@ void SAL_CALL OPreparedStatement::setObjectNull( sal_Int32 parameterIndex, sal_I } // ------------------------------------------------------------------------- -void SAL_CALL OPreparedStatement::setObject( sal_Int32 /*parameterIndex*/, const Any& /*x*/ ) throw(SQLException, RuntimeException) +void SAL_CALL OPreparedStatement::setObject( sal_Int32 parameterIndex, const Any& x ) throw(SQLException, RuntimeException) { - ::dbtools::throwFeatureNotImplementedException( "XParameters::setObject", *this ); + if(!::dbtools::implSetObject(this,parameterIndex,x)) + { + const ::rtl::OUString sError( m_pConnection->getResources().getResourceStringWithSubstitution( + STR_UNKNOWN_PARA_TYPE, + "$position$", ::rtl::OUString::valueOf(parameterIndex) + ) ); + ::dbtools::throwGenericSQLException(sError,*this); + } // setObject (parameterIndex, x, sqlType, 0); } // ------------------------------------------------------------------------- diff --git a/connectivity/source/drivers/ado/makefile.mk b/connectivity/source/drivers/ado/makefile.mk index d74d12c546..1aace34e4d 100644 --- a/connectivity/source/drivers/ado/makefile.mk +++ b/connectivity/source/drivers/ado/makefile.mk @@ -34,6 +34,7 @@ PRJ=..$/..$/.. PRJINC=..$/.. PRJNAME=connectivity TARGET=ado +VISIBILITY_HIDDEN=TRUE # ENABLE_EXCEPTIONS=TRUE diff --git a/connectivity/source/drivers/calc/CCatalog.cxx b/connectivity/source/drivers/calc/CCatalog.cxx index 214c05cd6d..b26beb6c5c 100644 --- a/connectivity/source/drivers/calc/CCatalog.cxx +++ b/connectivity/source/drivers/calc/CCatalog.cxx @@ -37,6 +37,7 @@ #include "calc/CTables.hxx" #include #include +#include using namespace ::com::sun::star::uno; using namespace ::com::sun::star::beans; @@ -49,10 +50,12 @@ using namespace connectivity::calc; // ------------------------------------------------------------------------- OCalcCatalog::OCalcCatalog(OCalcConnection* _pCon) : file::OFileCatalog(_pCon) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcCatalog::OCalcCatalog" ); } // ------------------------------------------------------------------------- void OCalcCatalog::refreshTables() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcCatalog::refreshTables" ); TStringVector aVector; Sequence< ::rtl::OUString > aTypes; OCalcConnection::ODocHolder aDocHodler(((OCalcConnection*)m_pConnection)); @@ -71,8 +74,8 @@ void OCalcCatalog::refreshTables() m_pTables = new OCalcTables(m_xMetaData,*this,m_aMutex,aVector); // this avoids that the document will be loaded a 2nd time when one table will be accessed. - if ( m_pTables && m_pTables->hasElements() ) - m_pTables->getByIndex(0); + //if ( m_pTables && m_pTables->hasElements() ) + // m_pTables->getByIndex(0); } // ----------------------------------------------------------------------------- diff --git a/connectivity/source/drivers/calc/CConnection.cxx b/connectivity/source/drivers/calc/CConnection.cxx index 4f3997943a..a515c9ddb3 100644 --- a/connectivity/source/drivers/calc/CConnection.cxx +++ b/connectivity/source/drivers/calc/CConnection.cxx @@ -49,6 +49,7 @@ #include #include #include +#include using namespace connectivity::calc; using namespace connectivity::file; @@ -69,6 +70,7 @@ using namespace ::com::sun::star::sheet; OCalcConnection::OCalcConnection(ODriver* _pDriver) : OConnection(_pDriver),m_nDocCount(0) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcConnection::OCalcConnection" ); // m_aFilenameExtension is not used } @@ -79,6 +81,7 @@ OCalcConnection::~OCalcConnection() void OCalcConnection::construct(const ::rtl::OUString& url,const Sequence< PropertyValue >& info) throw(SQLException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcConnection::construct" ); // open file sal_Int32 nLen = url.indexOf(':'); @@ -114,10 +117,12 @@ void OCalcConnection::construct(const ::rtl::OUString& url,const Sequence< Prope } } // for(;pIter != pEnd;++pIter) ODocHolder aDocHodler(this); // just to test that the doc can be loaded + acquireDoc(); } // ----------------------------------------------------------------------------- Reference< XSpreadsheetDocument> OCalcConnection::acquireDoc() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcConnection::acquireDoc" ); if ( m_xDoc.is() ) { osl_incrementInterlockedCount(&m_nDocCount); @@ -190,14 +195,17 @@ Reference< XSpreadsheetDocument> OCalcConnection::acquireDoc() // ----------------------------------------------------------------------------- void OCalcConnection::releaseDoc() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcConnection::releaseDoc" ); if ( osl_decrementInterlockedCount(&m_nDocCount) == 0 ) ::comphelper::disposeComponent( m_xDoc ); } // ----------------------------------------------------------------------------- void OCalcConnection::disposing() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcConnection::disposing" ); ::osl::MutexGuard aGuard(m_aMutex); + m_nDocCount = 0; ::comphelper::disposeComponent( m_xDoc ); OConnection::disposing(); @@ -212,6 +220,7 @@ IMPLEMENT_SERVICE_INFO(OCalcConnection, "com.sun.star.sdbc.drivers.calc.Connecti Reference< XDatabaseMetaData > SAL_CALL OCalcConnection::getMetaData( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcConnection::getMetaData" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OConnection_BASE::rBHelper.bDisposed); @@ -230,6 +239,7 @@ Reference< XDatabaseMetaData > SAL_CALL OCalcConnection::getMetaData( ) throw(S ::com::sun::star::uno::Reference< XTablesSupplier > OCalcConnection::createCatalog() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcConnection::createCatalog" ); ::osl::MutexGuard aGuard( m_aMutex ); Reference< XTablesSupplier > xTab = m_xCatalog; if(!xTab.is()) @@ -245,6 +255,7 @@ Reference< XDatabaseMetaData > SAL_CALL OCalcConnection::getMetaData( ) throw(S Reference< XStatement > SAL_CALL OCalcConnection::createStatement( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcConnection::createStatement" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OConnection_BASE::rBHelper.bDisposed); @@ -259,6 +270,7 @@ Reference< XStatement > SAL_CALL OCalcConnection::createStatement( ) throw(SQLE Reference< XPreparedStatement > SAL_CALL OCalcConnection::prepareStatement( const ::rtl::OUString& sql ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcConnection::prepareStatement" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OConnection_BASE::rBHelper.bDisposed); @@ -275,6 +287,7 @@ Reference< XPreparedStatement > SAL_CALL OCalcConnection::prepareStatement( cons Reference< XPreparedStatement > SAL_CALL OCalcConnection::prepareCall( const ::rtl::OUString& /*sql*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcConnection::prepareCall" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OConnection_BASE::rBHelper.bDisposed); diff --git a/connectivity/source/drivers/calc/CDatabaseMetaData.cxx b/connectivity/source/drivers/calc/CDatabaseMetaData.cxx index 1fdd7855f4..b89a2bfc5a 100644 --- a/connectivity/source/drivers/calc/CDatabaseMetaData.cxx +++ b/connectivity/source/drivers/calc/CDatabaseMetaData.cxx @@ -32,16 +32,12 @@ #include "precompiled_connectivity.hxx" -#ifndef _CONNECTIVITY_CALC_OCALCDATABASEMETADATA_HXX_ #include "calc/CDatabaseMetaData.hxx" -#endif #include "calc/CConnection.hxx" #include #include #include -#ifndef _COM_SUN_STAR_BEANS_XPropertySet_HPP_ #include -#endif #include #include #include @@ -55,6 +51,7 @@ #include "FDatabaseMetaDataResultSet.hxx" #include #include +#include using namespace connectivity::calc; using namespace connectivity::file; @@ -70,6 +67,7 @@ using namespace ::com::sun::star::sheet; OCalcDatabaseMetaData::OCalcDatabaseMetaData(OConnection* _pCon) :ODatabaseMetaData(_pCon) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcDatabaseMetaData::OCalcDatabaseMetaData" ); } // ------------------------------------------------------------------------- @@ -81,6 +79,7 @@ OCalcDatabaseMetaData::~OCalcDatabaseMetaData() // ------------------------------------------------------------------------- Reference< XResultSet > OCalcDatabaseMetaData::impl_getTypeInfo_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcDatabaseMetaData::impl_getTypeInfo_throw" ); ::osl::MutexGuard aGuard( m_aMutex ); ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTypeInfo); @@ -163,6 +162,7 @@ Reference< XResultSet > SAL_CALL OCalcDatabaseMetaData::getColumns( const Any& /*catalog*/, const ::rtl::OUString& /*schemaPattern*/, const ::rtl::OUString& tableNamePattern, const ::rtl::OUString& columnNamePattern ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcDatabaseMetaData::getColumns" ); ::osl::MutexGuard aGuard( m_aMutex ); @@ -180,33 +180,32 @@ Reference< XResultSet > SAL_CALL OCalcDatabaseMetaData::getColumns( aRow[10] = new ORowSetValueDecorator((sal_Int32)10); Sequence< ::rtl::OUString> aTabNames(xNames->getElementNames()); - const ::rtl::OUString* pTabBegin = aTabNames.getConstArray(); - const ::rtl::OUString* pTabEnd = pTabBegin + aTabNames.getLength(); - for(;pTabBegin != pTabEnd;++pTabBegin) + const ::rtl::OUString* pTabIter = aTabNames.getConstArray(); + const ::rtl::OUString* pTabEnd = pTabIter + aTabNames.getLength(); + for(;pTabIter != pTabEnd;++pTabIter) { - if(match(tableNamePattern,*pTabBegin,'\0')) + if(match(tableNamePattern,*pTabIter,'\0')) { - Reference< XColumnsSupplier> xTable; - xNames->getByName(*pTabBegin) >>= xTable; + const Reference< XColumnsSupplier> xTable(xNames->getByName(*pTabIter),UNO_QUERY_THROW); OSL_ENSURE(xTable.is(),"Table not found! Normallya exception had to be thrown here!"); - aRow[3] = new ORowSetValueDecorator(*pTabBegin); + aRow[3] = new ORowSetValueDecorator(*pTabIter); - Reference< XNameAccess> xColumns = xTable->getColumns(); + const Reference< XNameAccess> xColumns = xTable->getColumns(); if(!xColumns.is()) throw SQLException(); - Sequence< ::rtl::OUString> aColNames(xColumns->getElementNames()); + const Sequence< ::rtl::OUString> aColNames(xColumns->getElementNames()); - const ::rtl::OUString* pBegin = aColNames.getConstArray(); - const ::rtl::OUString* pEnd = pBegin + aColNames.getLength(); + const ::rtl::OUString* pColumnIter = aColNames.getConstArray(); + const ::rtl::OUString* pEnd = pColumnIter + aColNames.getLength(); Reference< XPropertySet> xColumn; - for(sal_Int32 i=1;pBegin != pEnd;++pBegin,++i) + for(sal_Int32 i=1;pColumnIter != pEnd;++pColumnIter,++i) { - if(match(columnNamePattern,*pBegin,'\0')) + if(match(columnNamePattern,*pColumnIter,'\0')) { - aRow[4] = new ORowSetValueDecorator( *pBegin); + aRow[4] = new ORowSetValueDecorator( *pColumnIter); - xColumns->getByName(*pBegin) >>= xColumn; + xColumns->getByName(*pColumnIter) >>= xColumn; OSL_ENSURE(xColumn.is(),"Columns contains a column who isn't a fastpropertyset!"); aRow[5] = new ORowSetValueDecorator(::comphelper::getINT32(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE)))); aRow[6] = new ORowSetValueDecorator(::comphelper::getString(xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPENAME)))); @@ -259,6 +258,7 @@ Reference< XResultSet > SAL_CALL OCalcDatabaseMetaData::getColumns( ::rtl::OUString SAL_CALL OCalcDatabaseMetaData::getURL( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcDatabaseMetaData::getURL" ); ::osl::MutexGuard aGuard( m_aMutex ); return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:calc:")) + m_pConnection->getURL(); @@ -268,6 +268,7 @@ Reference< XResultSet > SAL_CALL OCalcDatabaseMetaData::getColumns( sal_Int32 SAL_CALL OCalcDatabaseMetaData::getMaxBinaryLiteralLength( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcDatabaseMetaData::getMaxBinaryLiteralLength" ); return STRING_MAXLEN; } @@ -275,21 +276,25 @@ sal_Int32 SAL_CALL OCalcDatabaseMetaData::getMaxBinaryLiteralLength( ) throw(SQ sal_Int32 SAL_CALL OCalcDatabaseMetaData::getMaxCharLiteralLength( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcDatabaseMetaData::getMaxCharLiteralLength" ); return STRING_MAXLEN; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL OCalcDatabaseMetaData::getMaxColumnNameLength( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcDatabaseMetaData::getMaxColumnNameLength" ); return STRING_MAXLEN; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL OCalcDatabaseMetaData::getMaxColumnsInIndex( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcDatabaseMetaData::getMaxColumnsInIndex" ); return 1; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL OCalcDatabaseMetaData::getMaxColumnsInTable( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcDatabaseMetaData::getMaxColumnsInTable" ); return 256; } @@ -394,6 +399,7 @@ Reference< XResultSet > SAL_CALL OCalcDatabaseMetaData::getTables( const ::rtl::OUString& tableNamePattern, const Sequence< ::rtl::OUString >& types ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcDatabaseMetaData::getTables" ); ::osl::MutexGuard aGuard( m_aMutex ); ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eTables); diff --git a/connectivity/source/drivers/calc/CResultSet.cxx b/connectivity/source/drivers/calc/CResultSet.cxx index 6b43e42b62..e9a977ccc9 100644 --- a/connectivity/source/drivers/calc/CResultSet.cxx +++ b/connectivity/source/drivers/calc/CResultSet.cxx @@ -129,9 +129,6 @@ sal_Bool SAL_CALL OCalcResultSet::moveRelativeToBookmark( const Any& bookmark, // ------------------------------------------------------------------------- sal_Int32 SAL_CALL OCalcResultSet::compareBookmarks( const Any& lhs, const Any& rhs ) throw( SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(OResultSet_BASE::rBHelper.bDisposed); - return (lhs == rhs) ? 0 : 2; } // ------------------------------------------------------------------------- diff --git a/connectivity/source/drivers/calc/CTable.cxx b/connectivity/source/drivers/calc/CTable.cxx index f9be3ae6d6..93e9ac0c86 100644 --- a/connectivity/source/drivers/calc/CTable.cxx +++ b/connectivity/source/drivers/calc/CTable.cxx @@ -64,6 +64,7 @@ #include #include #include +#include using namespace connectivity; using namespace connectivity::calc; @@ -85,31 +86,31 @@ using namespace ::com::sun::star::util; void lcl_UpdateArea( const Reference& xUsedRange, sal_Int32& rEndCol, sal_Int32& rEndRow ) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::lcl_UpdateArea" ); // update rEndCol, rEndRow if any non-empty cell in xUsedRange is right/below - Reference xUsedQuery( xUsedRange, UNO_QUERY ); + const Reference xUsedQuery( xUsedRange, UNO_QUERY ); if ( xUsedQuery.is() ) { const sal_Int16 nContentFlags = CellFlags::STRING | CellFlags::VALUE | CellFlags::DATETIME | CellFlags::FORMULA | CellFlags::ANNOTATION; - Reference xUsedRanges = xUsedQuery->queryContentCells( nContentFlags ); - Sequence aAddresses = xUsedRanges->getRangeAddresses(); + const Reference xUsedRanges = xUsedQuery->queryContentCells( nContentFlags ); + const Sequence aAddresses = xUsedRanges->getRangeAddresses(); - sal_Int32 nCount = aAddresses.getLength(); + const sal_Int32 nCount = aAddresses.getLength(); const CellRangeAddress* pData = aAddresses.getConstArray(); for ( sal_Int32 i=0; i rEndCol ) - rEndCol = pData[i].EndColumn; - if ( pData[i].EndRow > rEndRow ) - rEndRow = pData[i].EndRow; + rEndCol = pData[i].EndColumn > rEndCol ? pData[i].EndColumn : rEndCol; + rEndRow = pData[i].EndRow > rEndRow ? pData[i].EndRow : rEndRow; } } } void lcl_GetDataArea( const Reference& xSheet, sal_Int32& rColumnCount, sal_Int32& rRowCount ) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::lcl_GetDataArea" ); Reference xCursor = xSheet->createCursor(); Reference xRange( xCursor, UNO_QUERY ); if ( !xRange.is() ) @@ -159,14 +160,15 @@ void lcl_GetDataArea( const Reference& xSheet, sal_Int32& rColumnC CellContentType lcl_GetContentOrResultType( const Reference& xCell ) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::lcl_GetContentOrResultType" ); CellContentType eCellType = xCell->getType(); if ( eCellType == CellContentType_FORMULA ) { Reference xProp( xCell, UNO_QUERY ); try { - Any aTypeAny = xProp->getPropertyValue( ::rtl::OUString::createFromAscii("FormulaResultType") ); - aTypeAny >>= eCellType; // type of formula result + static ::rtl::OUString s_FormulaResultType(RTL_CONSTASCII_USTRINGPARAM("FormulaResultType")); + xProp->getPropertyValue( s_FormulaResultType ) >>= eCellType; // type of formula result } catch (UnknownPropertyException&) { @@ -178,6 +180,7 @@ CellContentType lcl_GetContentOrResultType( const Reference& xCell ) Reference lcl_GetUsedCell( const Reference& xSheet, sal_Int32 nDocColumn, sal_Int32 nDocRow ) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::lcl_GetUsedCell" ); Reference xCell = xSheet->getCellByPosition( nDocColumn, nDocRow ); if ( xCell.is() && xCell->getType() == CellContentType_EMPTY ) { @@ -215,6 +218,7 @@ Reference lcl_GetUsedCell( const Reference& xSheet, sal_Int bool lcl_HasTextInColumn( const Reference& xSheet, sal_Int32 nDocColumn, sal_Int32 nDocRow ) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::lcl_HasTextInColumn" ); // look for any text cell or text result in the column Reference xAddr( xSheet, UNO_QUERY ); @@ -244,6 +248,7 @@ void lcl_GetColumnInfo( const Reference& xSheet, const Reference& xSheet, const Reference& xSheet, const ReferencegetPropertyValue( ::rtl::OUString::createFromAscii("NumberFormat") ); + static ::rtl::OUString s_NumberFormat(RTL_CONSTASCII_USTRINGPARAM("NumberFormat")); sal_Int32 nKey = 0; - if ( aNumAny >>= nKey ) + + if ( xProp->getPropertyValue( s_NumberFormat ) >>= nKey ) { - Reference xFormat = xFormats->getByKey( nKey ); + const Reference xFormat = xFormats->getByKey( nKey ); if ( xFormat.is() ) { - Any aTypeAny = xFormat->getPropertyValue( OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE) ); - aTypeAny >>= nNumType; + xFormat->getPropertyValue( OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE) ) >>= nNumType; } } } @@ -332,106 +337,109 @@ void lcl_SetValue( ORowSetValue& rValue, const Reference& xSheet, const ::Date& rNullDate, sal_Int32 nDBRow, sal_Int32 nDBColumn, sal_Int32 nType ) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::lcl_SetValue" ); sal_Int32 nDocColumn = nStartCol + nDBColumn - 1; // database counts from 1 sal_Int32 nDocRow = nStartRow + nDBRow - 1; if (bHasHeaders) ++nDocRow; - Reference xCell = xSheet->getCellByPosition( nDocColumn, nDocRow ); + const Reference xCell = xSheet->getCellByPosition( nDocColumn, nDocRow ); if ( xCell.is() ) { - CellContentType eCellType = lcl_GetContentOrResultType( xCell ); - switch (nType) + if ( DataType::VARCHAR == nType ) { - case DataType::VARCHAR: - { - // no difference between empty cell and empty string in spreadsheet - Reference xText( xCell, UNO_QUERY ); - if ( xText.is() ) - rValue = xText->getString(); - } - break; - case DataType::DECIMAL: - if ( eCellType == CellContentType_VALUE ) - rValue = xCell->getValue(); // double - else - rValue.setNull(); - break; - case DataType::BIT: - if ( eCellType == CellContentType_VALUE ) - rValue = (sal_Bool)( xCell->getValue() != 0.0 ); - else - rValue.setNull(); - break; - case DataType::DATE: - if ( eCellType == CellContentType_VALUE ) - { - ::Date aDate( rNullDate ); - aDate += (long)::rtl::math::approxFloor( xCell->getValue() ); - ::com::sun::star::util::Date aDateStruct( aDate.GetDay(), aDate.GetMonth(), aDate.GetYear() ); - rValue = aDateStruct; - } - else - rValue.setNull(); - break; - case DataType::TIME: - if ( eCellType == CellContentType_VALUE ) - { - double fCellVal = xCell->getValue(); - double fTime = fCellVal - rtl::math::approxFloor( fCellVal ); - long nIntTime = (long)rtl::math::round( fTime * 8640000.0 ); - if ( nIntTime == 8640000 ) - nIntTime = 0; // 23:59:59.995 and above is 00:00:00.00 - ::com::sun::star::util::Time aTime; - aTime.HundredthSeconds = (sal_uInt16)( nIntTime % 100 ); - nIntTime /= 100; - aTime.Seconds = (sal_uInt16)( nIntTime % 60 ); - nIntTime /= 60; - aTime.Minutes = (sal_uInt16)( nIntTime % 60 ); - nIntTime /= 60; - OSL_ENSURE( nIntTime < 24, "error in time calculation" ); - aTime.Hours = (sal_uInt16) nIntTime; - rValue = aTime; - } - else - rValue.setNull(); - break; - case DataType::TIMESTAMP: - if ( eCellType == CellContentType_VALUE ) - { - double fCellVal = xCell->getValue(); - double fDays = ::rtl::math::approxFloor( fCellVal ); - double fTime = fCellVal - fDays; - long nIntDays = (long)fDays; - long nIntTime = (long)::rtl::math::round( fTime * 8640000.0 ); - if ( nIntTime == 8640000 ) + // no difference between empty cell and empty string in spreadsheet + const Reference xText( xCell, UNO_QUERY ); + if ( xText.is() ) + rValue = xText->getString(); + } + else + { + CellContentType eCellType = lcl_GetContentOrResultType( xCell ); + switch (nType) + { + case DataType::DECIMAL: + if ( eCellType == CellContentType_VALUE ) + rValue = xCell->getValue(); // double + else + rValue.setNull(); + break; + case DataType::BIT: + if ( eCellType == CellContentType_VALUE ) + rValue = (sal_Bool)( xCell->getValue() != 0.0 ); + else + rValue.setNull(); + break; + case DataType::DATE: + if ( eCellType == CellContentType_VALUE ) + { + ::Date aDate( rNullDate ); + aDate += (long)::rtl::math::approxFloor( xCell->getValue() ); + ::com::sun::star::util::Date aDateStruct( aDate.GetDay(), aDate.GetMonth(), aDate.GetYear() ); + rValue = aDateStruct; + } + else + rValue.setNull(); + break; + case DataType::TIME: + if ( eCellType == CellContentType_VALUE ) { - nIntTime = 0; // 23:59:59.995 and above is 00:00:00.00 - ++nIntDays; // (next day) + double fCellVal = xCell->getValue(); + double fTime = fCellVal - rtl::math::approxFloor( fCellVal ); + long nIntTime = (long)rtl::math::round( fTime * 8640000.0 ); + if ( nIntTime == 8640000 ) + nIntTime = 0; // 23:59:59.995 and above is 00:00:00.00 + ::com::sun::star::util::Time aTime; + aTime.HundredthSeconds = (sal_uInt16)( nIntTime % 100 ); + nIntTime /= 100; + aTime.Seconds = (sal_uInt16)( nIntTime % 60 ); + nIntTime /= 60; + aTime.Minutes = (sal_uInt16)( nIntTime % 60 ); + nIntTime /= 60; + OSL_ENSURE( nIntTime < 24, "error in time calculation" ); + aTime.Hours = (sal_uInt16) nIntTime; + rValue = aTime; } + else + rValue.setNull(); + break; + case DataType::TIMESTAMP: + if ( eCellType == CellContentType_VALUE ) + { + double fCellVal = xCell->getValue(); + double fDays = ::rtl::math::approxFloor( fCellVal ); + double fTime = fCellVal - fDays; + long nIntDays = (long)fDays; + long nIntTime = (long)::rtl::math::round( fTime * 8640000.0 ); + if ( nIntTime == 8640000 ) + { + nIntTime = 0; // 23:59:59.995 and above is 00:00:00.00 + ++nIntDays; // (next day) + } - ::com::sun::star::util::DateTime aDateTime; + ::com::sun::star::util::DateTime aDateTime; - aDateTime.HundredthSeconds = (sal_uInt16)( nIntTime % 100 ); - nIntTime /= 100; - aDateTime.Seconds = (sal_uInt16)( nIntTime % 60 ); - nIntTime /= 60; - aDateTime.Minutes = (sal_uInt16)( nIntTime % 60 ); - nIntTime /= 60; - OSL_ENSURE( nIntTime < 24, "error in time calculation" ); - aDateTime.Hours = (sal_uInt16) nIntTime; + aDateTime.HundredthSeconds = (sal_uInt16)( nIntTime % 100 ); + nIntTime /= 100; + aDateTime.Seconds = (sal_uInt16)( nIntTime % 60 ); + nIntTime /= 60; + aDateTime.Minutes = (sal_uInt16)( nIntTime % 60 ); + nIntTime /= 60; + OSL_ENSURE( nIntTime < 24, "error in time calculation" ); + aDateTime.Hours = (sal_uInt16) nIntTime; - ::Date aDate( rNullDate ); - aDate += nIntDays; - aDateTime.Day = aDate.GetDay(); - aDateTime.Month = aDate.GetMonth(); - aDateTime.Year = aDate.GetYear(); + ::Date aDate( rNullDate ); + aDate += nIntDays; + aDateTime.Day = aDate.GetDay(); + aDateTime.Month = aDate.GetMonth(); + aDateTime.Year = aDate.GetYear(); - rValue = aDateTime; - } - else - rValue.setNull(); - break; + rValue = aDateTime; + } + else + rValue.setNull(); + break; + } // switch (nType) } } @@ -442,6 +450,7 @@ void lcl_SetValue( ORowSetValue& rValue, const Reference& xSheet, ::rtl::OUString lcl_GetColumnStr( sal_Int32 nColumn ) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::lcl_GetColumnStr" ); if ( nColumn < 26 ) return ::rtl::OUString::valueOf( (sal_Unicode) ( 'A' + nColumn ) ); else @@ -456,6 +465,7 @@ void lcl_SetValue( ORowSetValue& rValue, const Reference& xSheet, void OCalcTable::fillColumns() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::fillColumns" ); if ( !m_xSheet.is() ) throw SQLException(); @@ -463,6 +473,7 @@ void OCalcTable::fillColumns() aStrFieldName.AssignAscii("Column"); ::rtl::OUString aTypeName; ::comphelper::UStringMixEqual aCase(m_pConnection->getMetaData()->storesMixedCaseQuotedIdentifiers()); + const sal_Bool bStoresMixedCaseQuotedIdentifiers = getConnection()->getMetaData()->storesMixedCaseQuotedIdentifiers(); for (sal_Int32 i = 0; i < m_nDataCols; i++) { @@ -482,7 +493,10 @@ void OCalcTable::fillColumns() switch ( eType ) { case DataType::VARCHAR: - aTypeName = ::rtl::OUString::createFromAscii("VARCHAR"); + { + static const ::rtl::OUString s_sType(RTL_CONSTASCII_USTRINGPARAM("VARCHAR")); + aTypeName = s_sType; + } break; case DataType::DECIMAL: aTypeName = ::rtl::OUString::createFromAscii("DECIMAL"); @@ -517,7 +531,7 @@ void OCalcTable::fillColumns() sdbcx::OColumn* pColumn = new sdbcx::OColumn( aAlias, aTypeName, ::rtl::OUString(), ColumnValue::NULLABLE, nPrecision, nDecimals, eType, sal_False, sal_False, bCurrency, - getConnection()->getMetaData()->storesMixedCaseQuotedIdentifiers() ); + bStoresMixedCaseQuotedIdentifiers); Reference< XPropertySet> xCol = pColumn; m_aColumns->get().push_back(xCol); m_aTypes.push_back(eType); @@ -545,10 +559,12 @@ OCalcTable::OCalcTable(sdbcx::OCollection* _pTables,OCalcConnection* _pConnectio ,m_nDataRows(0) ,m_bHasHeaders(sal_False) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::OCalcTable" ); } // ----------------------------------------------------------------------------- void OCalcTable::construct() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::construct" ); // get sheet object Reference< XSpreadsheetDocument> xDoc = m_pConnection->acquireDoc(); if (xDoc.is()) @@ -631,6 +647,7 @@ void OCalcTable::construct() // ------------------------------------------------------------------------- void OCalcTable::refreshColumns() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::refreshColumns" ); ::osl::MutexGuard aGuard( m_aMutex ); TStringVector aVector; @@ -647,12 +664,14 @@ void OCalcTable::refreshColumns() // ------------------------------------------------------------------------- void OCalcTable::refreshIndexes() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::refreshIndexes" ); // Calc table has no index } // ------------------------------------------------------------------------- void SAL_CALL OCalcTable::disposing(void) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::disposing" ); OFileTable::disposing(); ::osl::MutexGuard aGuard(m_aMutex); m_aColumns = NULL; @@ -664,6 +683,7 @@ void SAL_CALL OCalcTable::disposing(void) // ------------------------------------------------------------------------- Sequence< Type > SAL_CALL OCalcTable::getTypes( ) throw(RuntimeException) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::getTypes" ); Sequence< Type > aTypes = OTable_TYPEDEF::getTypes(); ::std::vector aOwnTypes; aOwnTypes.reserve(aTypes.getLength()); @@ -695,13 +715,14 @@ Any SAL_CALL OCalcTable::queryInterface( const Type & rType ) throw(RuntimeExcep rType == ::getCppuType((const Reference*)0)) return Any(); - Any aRet = ::cppu::queryInterface(rType,static_cast< ::com::sun::star::lang::XUnoTunnel*> (this)); + const Any aRet = ::cppu::queryInterface(rType,static_cast< ::com::sun::star::lang::XUnoTunnel*> (this)); return aRet.hasValue() ? aRet : OTable_TYPEDEF::queryInterface(rType); } //-------------------------------------------------------------------------- Sequence< sal_Int8 > OCalcTable::getUnoTunnelImplementationId() { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::getUnoTunnelImplementationId" ); static ::cppu::OImplementationId * pId = 0; if (! pId) { @@ -719,6 +740,7 @@ Sequence< sal_Int8 > OCalcTable::getUnoTunnelImplementationId() //------------------------------------------------------------------ sal_Int64 OCalcTable::getSomething( const Sequence< sal_Int8 > & rId ) throw (RuntimeException) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::getSomething" ); return (rId.getLength() == 16 && 0 == rtl_compareMemory(getUnoTunnelImplementationId().getConstArray(), rId.getConstArray(), 16 ) ) ? reinterpret_cast< sal_Int64 >( this ) : OCalcTable_BASE::getSomething(rId); @@ -726,11 +748,13 @@ sal_Int64 OCalcTable::getSomething( const Sequence< sal_Int8 > & rId ) throw (Ru //------------------------------------------------------------------ sal_Int32 OCalcTable::getCurrentLastPos() const { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::getCurrentLastPos" ); return m_nDataRows; } //------------------------------------------------------------------ sal_Bool OCalcTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int32 nOffset, sal_Int32& nCurPos) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::seekRow" ); // ---------------------------------------------------------- // Positionierung vorbereiten: @@ -804,6 +828,7 @@ End: sal_Bool OCalcTable::fetchRow( OValueRefRow& _rRow, const OSQLColumns & _rCols, sal_Bool _bUseTableDefs, sal_Bool bRetrieveData ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::fetchRow" ); // read the bookmark BOOL bIsCurRecordDeleted = sal_False; @@ -817,7 +842,8 @@ sal_Bool OCalcTable::fetchRow( OValueRefRow& _rRow, const OSQLColumns & _rCols, OSQLColumns::Vector::const_iterator aIter = _rCols.get().begin(); OSQLColumns::Vector::const_iterator aEnd = _rCols.get().end(); - for (OValueRefVector::Vector::size_type i = 1; aIter != aEnd && i < _rRow->get().size(); + const OValueRefVector::Vector::size_type nCount = _rRow->get().size(); + for (OValueRefVector::Vector::size_type i = 1; aIter != aEnd && i < nCount; ++aIter, i++) { if ( (_rRow->get())[i]->isBound() ) @@ -838,6 +864,7 @@ sal_Bool OCalcTable::fetchRow( OValueRefRow& _rRow, const OSQLColumns & _rCols, // ------------------------------------------------------------------------- void OCalcTable::FileClose() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTable::FileClose" ); ::osl::MutexGuard aGuard(m_aMutex); OCalcTable_BASE::FileClose(); diff --git a/connectivity/source/drivers/calc/CTables.cxx b/connectivity/source/drivers/calc/CTables.cxx index c303c07adf..77057abd11 100644 --- a/connectivity/source/drivers/calc/CTables.cxx +++ b/connectivity/source/drivers/calc/CTables.cxx @@ -38,6 +38,7 @@ #endif #include "calc/CCatalog.hxx" #include +#include using namespace ::comphelper; using namespace connectivity; @@ -53,6 +54,7 @@ namespace starutil = ::com::sun::star::util; sdbcx::ObjectType OCalcTables::createObject(const ::rtl::OUString& _rName) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "calc", "Ocke.Janssen@sun.com", "OCalcTables::createObject" ); OCalcTable* pTable = new OCalcTable(this,(OCalcConnection*)static_cast(m_rParent).getConnection(), _rName,::rtl::OUString::createFromAscii("TABLE")); sdbcx::ObjectType xRet = pTable; diff --git a/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx b/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx index 2858e8e21e..559f0820fd 100644 --- a/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx +++ b/connectivity/source/drivers/dbase/DDatabaseMetaData.cxx @@ -38,9 +38,7 @@ #include #include #include -#ifndef _COM_SUN_STAR_BEANS_XPropertySet_HPP_ #include -#endif #include #include #include @@ -52,6 +50,7 @@ #include #include #include +#include using namespace ::comphelper; using namespace connectivity::dbase; @@ -66,6 +65,7 @@ using namespace ::com::sun::star::lang; ODbaseDatabaseMetaData::ODbaseDatabaseMetaData(::connectivity::file::OConnection* _pCon) :ODatabaseMetaData(_pCon) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseDatabaseMetaData::ODbaseDatabaseMetaData" ); } // ------------------------------------------------------------------------- ODbaseDatabaseMetaData::~ODbaseDatabaseMetaData() @@ -74,6 +74,7 @@ ODbaseDatabaseMetaData::~ODbaseDatabaseMetaData() // ------------------------------------------------------------------------- Reference< XResultSet > ODbaseDatabaseMetaData::impl_getTypeInfo_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseDatabaseMetaData::impl_getTypeInfo_throw" ); ::osl::MutexGuard aGuard( m_aMutex ); ::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTypeInfo); @@ -151,6 +152,7 @@ Reference< XResultSet > SAL_CALL ODbaseDatabaseMetaData::getColumns( const Any& /*catalog*/, const ::rtl::OUString& /*schemaPattern*/, const ::rtl::OUString& tableNamePattern, const ::rtl::OUString& columnNamePattern ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseDatabaseMetaData::getColumns" ); ::osl::MutexGuard aGuard( m_aMutex ); @@ -241,6 +243,7 @@ Reference< XResultSet > SAL_CALL ODbaseDatabaseMetaData::getIndexInfo( const Any& /*catalog*/, const ::rtl::OUString& /*schema*/, const ::rtl::OUString& table, sal_Bool unique, sal_Bool /*approximate*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseDatabaseMetaData::getIndexInfo" ); ::osl::MutexGuard aGuard( m_aMutex ); Reference< XTablesSupplier > xTables = m_pConnection->createCatalog(); @@ -316,47 +319,56 @@ Reference< XResultSet > SAL_CALL ODbaseDatabaseMetaData::getIndexInfo( // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL ODbaseDatabaseMetaData::getURL( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseDatabaseMetaData::getURL" ); ::osl::MutexGuard aGuard( m_aMutex ); return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:dbase:")) + m_pConnection->getURL(); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODbaseDatabaseMetaData::getMaxBinaryLiteralLength( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseDatabaseMetaData::getMaxBinaryLiteralLength" ); return STRING_MAXLEN; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODbaseDatabaseMetaData::getMaxCharLiteralLength( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseDatabaseMetaData::getMaxCharLiteralLength" ); return 254; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODbaseDatabaseMetaData::getMaxColumnNameLength( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseDatabaseMetaData::getMaxColumnNameLength" ); return 10; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODbaseDatabaseMetaData::getMaxColumnsInIndex( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseDatabaseMetaData::getMaxColumnsInIndex" ); return 1; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODbaseDatabaseMetaData::getMaxColumnsInTable( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseDatabaseMetaData::getMaxColumnsInTable" ); return 128; } // ----------------------------------------------------------------------------- sal_Bool SAL_CALL ODbaseDatabaseMetaData::supportsAlterTableWithAddColumn( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseDatabaseMetaData::supportsAlterTableWithAddColumn" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODbaseDatabaseMetaData::supportsAlterTableWithDropColumn( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseDatabaseMetaData::supportsAlterTableWithDropColumn" ); return sal_False; } // ----------------------------------------------------------------------------- sal_Bool SAL_CALL ODbaseDatabaseMetaData::isReadOnly( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseDatabaseMetaData::isReadOnly" ); ::osl::MutexGuard aGuard( m_aMutex ); sal_Bool bReadOnly = sal_False; @@ -369,11 +381,13 @@ sal_Bool SAL_CALL ODbaseDatabaseMetaData::isReadOnly( ) throw(SQLException, Run // ----------------------------------------------------------------------------- sal_Bool ODbaseDatabaseMetaData::impl_storesMixedCaseQuotedIdentifiers_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseDatabaseMetaData::impl_storesMixedCaseQuotedIdentifiers_throw" ); return sal_True; } // ----------------------------------------------------------------------------- sal_Bool ODbaseDatabaseMetaData::impl_supportsMixedCaseQuotedIdentifiers_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseDatabaseMetaData::impl_supportsMixedCaseQuotedIdentifiers_throw" ); return sal_True; } // ----------------------------------------------------------------------------- diff --git a/connectivity/source/drivers/dbase/DNoException.cxx b/connectivity/source/drivers/dbase/DNoException.cxx index 760a0e6108..3554efc4d2 100644 --- a/connectivity/source/drivers/dbase/DNoException.cxx +++ b/connectivity/source/drivers/dbase/DNoException.cxx @@ -38,6 +38,7 @@ #include #include +#include using namespace connectivity; using namespace connectivity::dbase; @@ -46,6 +47,7 @@ using namespace com::sun::star::sdbc; //------------------------------------------------------------------ sal_Bool ODbaseTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int32 nOffset, sal_Int32& nCurPos) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::seekRow" ); // ---------------------------------------------------------- // Positionierung vorbereiten: OSL_ENSURE(m_pFileStream,"ODbaseTable::seekRow: FileStream is NULL!"); @@ -130,6 +132,7 @@ End: // ----------------------------------------------------------------------------- BOOL ODbaseTable::ReadMemo(ULONG nBlockNo, ORowSetValue& aVariable) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::ReadMemo" ); BOOL bIsText = TRUE; // SdbConnection* pConnection = GetConnection(); @@ -231,6 +234,7 @@ BOOL ODbaseTable::ReadMemo(ULONG nBlockNo, ORowSetValue& aVariable) // ----------------------------------------------------------------------------- void ODbaseTable::AllocBuffer() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::AllocBuffer" ); UINT16 nSize = m_aHeader.db_slng; OSL_ENSURE(nSize > 0, "Size too small"); @@ -250,6 +254,7 @@ void ODbaseTable::AllocBuffer() // ----------------------------------------------------------------------------- BOOL ODbaseTable::WriteBuffer() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::WriteBuffer" ); OSL_ENSURE(m_nFilePos >= 1,"SdbDBFCursor::FileFetchRow: ungueltige Record-Position"); // Auf gewuenschten Record positionieren: @@ -260,6 +265,7 @@ BOOL ODbaseTable::WriteBuffer() // ----------------------------------------------------------------------------- sal_Int32 ODbaseTable::getCurrentLastPos() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::getCurrentLastPos" ); return m_aHeader.db_anz; } // ----------------------------------------------------------------------------- @@ -270,6 +276,7 @@ sal_Int32 ODbaseTable::getCurrentLastPos() const //------------------------------------------------------------------ void ONDXNode::Read(SvStream &rStream, ODbaseIndex& rIndex) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ONDXNode::Read" ); rStream >> aKey.nRecord; // schluessel if (rIndex.getHeader().db_keytype) @@ -303,6 +310,7 @@ union //------------------------------------------------------------------ void ONDXNode::Write(SvStream &rStream, const ONDXPage& rPage) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ONDXNode::Write" ); const ODbaseIndex& rIndex = rPage.GetIndex(); if (!rIndex.isUnique() || rPage.IsLeaf()) rStream << (sal_uInt32)aKey.nRecord; // schluessel @@ -337,6 +345,7 @@ void ONDXNode::Write(SvStream &rStream, const ONDXPage& rPage) const //------------------------------------------------------------------ ONDXPagePtr& ONDXNode::GetChild(ODbaseIndex* pIndex, ONDXPage* pParent) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ONDXNode::GetChild" ); if (!aChild.Is() && pIndex) { aChild = pIndex->CreatePage(aChild.GetPagePos(),pParent,aChild.HasPage()); @@ -350,12 +359,14 @@ ONDXPagePtr& ONDXNode::GetChild(ODbaseIndex* pIndex, ONDXPage* pParent) //------------------------------------------------------------------ BOOL ONDXKey::IsText(sal_Int32 eType) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ONDXKey::IsText" ); return eType == DataType::VARCHAR || eType == DataType::CHAR; } //------------------------------------------------------------------ StringCompare ONDXKey::Compare(const ONDXKey& rKey) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ONDXKey::Compare" ); // DBG_ASSERT(is(), "Falscher Indexzugriff"); StringCompare eResult; @@ -394,11 +405,13 @@ StringCompare ONDXKey::Compare(const ONDXKey& rKey) const // ----------------------------------------------------------------------------- void ONDXKey::setValue(const ORowSetValue& _rVal) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ONDXKey::setValue" ); xValue = _rVal; } // ----------------------------------------------------------------------------- const ORowSetValue& ONDXKey::getValue() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ONDXKey::getValue" ); return xValue; } // ----------------------------------------------------------------------------- @@ -422,6 +435,7 @@ ONDXPagePtr::ONDXPagePtr(const ONDXPagePtr& rRef) :ONDXPageRef(rRef) ,nPagePos(rRef.nPagePos) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ONDXPagePtr::ONDXPagePtr" ); } //------------------------------------------------------------------ @@ -429,6 +443,7 @@ ONDXPagePtr::ONDXPagePtr(ONDXPage* pRefPage) :ONDXPageRef(pRefPage) ,nPagePos(0) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ONDXPagePtr::ONDXPagePtr" ); if (pRefPage) nPagePos = pRefPage->GetPagePos(); } @@ -505,6 +520,7 @@ SvStream& connectivity::dbase::operator << (SvStream &rStream, const ONDXPage& r //------------------------------------------------------------------ void ONDXPage::PrintPage() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ONDXPage::PrintPage" ); DBG_TRACE4("\nSDB: -----------Page: %d Parent: %d Count: %d Child: %d-----", nPagePos, HasParent() ? aParent->GetPagePos() : 0 ,nCount, aChild.GetPagePos()); @@ -546,12 +562,14 @@ void ONDXPage::PrintPage() // ----------------------------------------------------------------------------- BOOL ONDXPage::IsFull() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ONDXPage::IsFull" ); return Count() == rIndex.getHeader().db_maxkeys; } // ----------------------------------------------------------------------------- //------------------------------------------------------------------ USHORT ONDXPage::Search(const ONDXKey& rSearch) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ONDXPage::Search" ); // binare Suche spaeter USHORT i = 0xFFFF; while (++i < Count()) @@ -564,6 +582,7 @@ USHORT ONDXPage::Search(const ONDXKey& rSearch) //------------------------------------------------------------------ USHORT ONDXPage::Search(const ONDXPage* pPage) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ONDXPage::Search" ); USHORT i = 0xFFFF; while (++i < Count()) if (((*this)[i]).GetChild() == pPage) @@ -578,6 +597,7 @@ USHORT ONDXPage::Search(const ONDXPage* pPage) void ONDXPage::SearchAndReplace(const ONDXKey& rSearch, ONDXKey& rReplace) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ONDXPage::SearchAndReplace" ); OSL_ENSURE(rSearch != rReplace,"Invalid here:rSearch == rReplace"); if (rSearch != rReplace) { @@ -610,6 +630,7 @@ const ONDXNode& ONDXPage::operator[] (USHORT nPos) const // ----------------------------------------------------------------------------- void ONDXPage::Remove(USHORT nPos) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ONDXPage::Remove" ); DBG_ASSERT(nCount > nPos, "falscher Indexzugriff"); for (USHORT i = nPos; i < (nCount-1); i++) diff --git a/connectivity/source/drivers/dbase/DTable.cxx b/connectivity/source/drivers/dbase/DTable.cxx index e5e08e083d..7ea045d65a 100644 --- a/connectivity/source/drivers/dbase/DTable.cxx +++ b/connectivity/source/drivers/dbase/DTable.cxx @@ -61,6 +61,7 @@ #include "connectivity/FValue.hxx" #include "connectivity/dbconversion.hxx" #include "resource/dbase_res.hrc" +#include #include @@ -108,6 +109,7 @@ sal_Int32 lcl_getFileSize(SvStream& _rStream) // ------------------------------------------------------------------------- void ODbaseTable::readHeader() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::readHeader" ); OSL_ENSURE(m_pFileStream,"No Stream available!"); if(!m_pFileStream) return; @@ -198,6 +200,7 @@ void ODbaseTable::readHeader() // ------------------------------------------------------------------------- void ODbaseTable::fillColumns() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::fillColumns" ); m_pFileStream->Seek(STREAM_SEEK_TO_BEGIN); m_pFileStream->Seek(32L); @@ -313,6 +316,7 @@ ODbaseTable::ODbaseTable(sdbcx::OCollection* _pTables,ODbaseConnection* _pConnec ,m_pMemoStream(NULL) ,m_bWriteableMemo(sal_False) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::ODbaseTable" ); // initialize the header m_aHeader.db_typ = dBaseIII; m_aHeader.db_anz = 0; @@ -335,12 +339,14 @@ ODbaseTable::ODbaseTable(sdbcx::OCollection* _pTables,ODbaseConnection* _pConnec ,m_pMemoStream(NULL) ,m_bWriteableMemo(sal_False) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::ODbaseTable" ); m_eEncoding = getConnection()->getTextEncoding(); } // ----------------------------------------------------------------------------- void ODbaseTable::construct() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::construct" ); // initialize the header m_aHeader.db_typ = dBaseIII; m_aHeader.db_anz = 0; @@ -424,6 +430,7 @@ void ODbaseTable::construct() //------------------------------------------------------------------ BOOL ODbaseTable::ReadMemoHeader() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::ReadMemoHeader" ); m_pMemoStream->SetNumberFormatInt(NUMBERFORMAT_INT_LITTLEENDIAN); m_pMemoStream->RefreshBuffer(); // sicherstellen das die Kopfinformationen tatsaechlich neu gelesen werden m_pMemoStream->Seek(0L); @@ -473,6 +480,7 @@ BOOL ODbaseTable::ReadMemoHeader() // ------------------------------------------------------------------------- String ODbaseTable::getEntry(OConnection* _pConnection,const ::rtl::OUString& _sName ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::getEntry" ); ::rtl::OUString sURL; try { @@ -516,6 +524,7 @@ String ODbaseTable::getEntry(OConnection* _pConnection,const ::rtl::OUString& _s // ------------------------------------------------------------------------- void ODbaseTable::refreshColumns() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::refreshColumns" ); ::osl::MutexGuard aGuard( m_aMutex ); TStringVector aVector; @@ -532,6 +541,7 @@ void ODbaseTable::refreshColumns() // ------------------------------------------------------------------------- void ODbaseTable::refreshIndexes() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::refreshIndexes" ); TStringVector aVector; if(m_pFileStream && (!m_pIndexes || m_pIndexes->getCount() == 0)) { @@ -577,6 +587,7 @@ void ODbaseTable::refreshIndexes() // ------------------------------------------------------------------------- void SAL_CALL ODbaseTable::disposing(void) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::disposing" ); OFileTable::disposing(); ::osl::MutexGuard aGuard(m_aMutex); m_aColumns = NULL; @@ -584,6 +595,7 @@ void SAL_CALL ODbaseTable::disposing(void) // ------------------------------------------------------------------------- Sequence< Type > SAL_CALL ODbaseTable::getTypes( ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::getTypes" ); Sequence< Type > aTypes = OTable_TYPEDEF::getTypes(); ::std::vector aOwnTypes; aOwnTypes.reserve(aTypes.getLength()); @@ -607,6 +619,7 @@ Sequence< Type > SAL_CALL ODbaseTable::getTypes( ) throw(RuntimeException) // ------------------------------------------------------------------------- Any SAL_CALL ODbaseTable::queryInterface( const Type & rType ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::queryInterface" ); if( rType == ::getCppuType((const Reference*)0) || rType == ::getCppuType((const Reference*)0)) return Any(); @@ -618,6 +631,7 @@ Any SAL_CALL ODbaseTable::queryInterface( const Type & rType ) throw(RuntimeExce //-------------------------------------------------------------------------- Sequence< sal_Int8 > ODbaseTable::getUnoTunnelImplementationId() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::getUnoTunnelImplementationId" ); static ::cppu::OImplementationId * pId = 0; if (! pId) { @@ -635,6 +649,7 @@ Sequence< sal_Int8 > ODbaseTable::getUnoTunnelImplementationId() //------------------------------------------------------------------ sal_Int64 ODbaseTable::getSomething( const Sequence< sal_Int8 > & rId ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::getSomething" ); return (rId.getLength() == 16 && 0 == rtl_compareMemory(getUnoTunnelImplementationId().getConstArray(), rId.getConstArray(), 16 ) ) ? reinterpret_cast< sal_Int64 >( this ) : ODbaseTable_BASE::getSomething(rId); @@ -642,6 +657,7 @@ sal_Int64 ODbaseTable::getSomething( const Sequence< sal_Int8 > & rId ) throw (R //------------------------------------------------------------------ sal_Bool ODbaseTable::fetchRow(OValueRefRow& _rRow,const OSQLColumns & _rCols, sal_Bool _bUseTableDefs,sal_Bool bRetrieveData) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::fetchRow" ); // Einlesen der Daten BOOL bIsCurRecordDeleted = ((char)m_pBuffer[0] == '*') ? TRUE : sal_False; @@ -802,6 +818,7 @@ sal_Bool ODbaseTable::fetchRow(OValueRefRow& _rRow,const OSQLColumns & _rCols, s // ------------------------------------------------------------------------- void ODbaseTable::FileClose() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::FileClose" ); ::osl::MutexGuard aGuard(m_aMutex); // falls noch nicht alles geschrieben wurde if (m_pMemoStream && m_pMemoStream->IsWritable()) @@ -815,6 +832,7 @@ void ODbaseTable::FileClose() // ------------------------------------------------------------------------- BOOL ODbaseTable::CreateImpl() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::CreateImpl" ); OSL_ENSURE(!m_pFileStream, "SequenceError"); if ( m_pConnection->isCheckEnabled() && ::dbtools::convertName2SQLName(m_Name,::rtl::OUString()) != m_Name ) @@ -931,6 +949,7 @@ BOOL ODbaseTable::CreateImpl() // ----------------------------------------------------------------------------- void ODbaseTable::throwInvalidColumnType(const sal_uInt16 _nErrorId,const ::rtl::OUString& _sColumnName) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::throwInvalidColumnType" ); try { // we have to drop the file because it is corrupted now @@ -950,6 +969,7 @@ void ODbaseTable::throwInvalidColumnType(const sal_uInt16 _nErrorId,const ::rtl: // erzeugt grundsaetzlich dBase IV Datei Format BOOL ODbaseTable::CreateFile(const INetURLObject& aFile, BOOL& bCreateMemo) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::CreateFile" ); bCreateMemo = sal_False; Date aDate; // aktuelles Datum @@ -1127,6 +1147,7 @@ BOOL ODbaseTable::CreateFile(const INetURLObject& aFile, BOOL& bCreateMemo) // erzeugt grundsaetzlich dBase III Datei Format BOOL ODbaseTable::CreateMemoFile(const INetURLObject& aFile) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::CreateMemoFile" ); // Makro zum Filehandling fuers Erzeugen von Tabellen m_pMemoStream = createStream_simpleError( aFile.GetMainURL(INetURLObject::NO_DECODE),STREAM_READWRITE | STREAM_SHARE_DENYWRITE); @@ -1158,6 +1179,7 @@ BOOL ODbaseTable::CreateMemoFile(const INetURLObject& aFile) //------------------------------------------------------------------ BOOL ODbaseTable::Drop_Static(const ::rtl::OUString& _sUrl,sal_Bool _bHasMemoFields,OCollection* _pIndexes ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::Drop_Static" ); INetURLObject aURL; aURL.SetURL(_sUrl); @@ -1208,6 +1230,7 @@ BOOL ODbaseTable::Drop_Static(const ::rtl::OUString& _sUrl,sal_Bool _bHasMemoFie // ----------------------------------------------------------------------------- BOOL ODbaseTable::DropImpl() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::DropImpl" ); FileClose(); if(!m_pIndexes) @@ -1226,6 +1249,7 @@ BOOL ODbaseTable::DropImpl() //------------------------------------------------------------------ BOOL ODbaseTable::InsertRow(OValueRefVector& rRow, BOOL bFlush,const Reference& _xCols) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::InsertRow" ); // Buffer mit Leerzeichen fuellen AllocBuffer(); memset(m_pBuffer, ' ', m_aHeader.db_slng); @@ -1282,6 +1306,7 @@ BOOL ODbaseTable::InsertRow(OValueRefVector& rRow, BOOL bFlush,const Reference& _xCols) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::UpdateRow" ); // Buffer mit Leerzeichen fuellen AllocBuffer(); @@ -1311,6 +1336,7 @@ BOOL ODbaseTable::UpdateRow(OValueRefVector& rRow, OValueRefRow& pOrgRow,const R //------------------------------------------------------------------ BOOL ODbaseTable::DeleteRow(const OSQLColumns& _rCols) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::DeleteRow" ); // Einfach das Loesch-Flag setzen (egal, ob es schon gesetzt war // oder nicht): // Auf gewuenschten Record positionieren: @@ -1364,6 +1390,7 @@ BOOL ODbaseTable::DeleteRow(const OSQLColumns& _rCols) // ------------------------------------------------------------------------- Reference ODbaseTable::isUniqueByColumnName(sal_Int32 _nColumnPos) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::isUniqueByColumnName" ); if(!m_pIndexes) refreshIndexes(); if(m_pIndexes->hasElements()) @@ -1398,6 +1425,7 @@ double toDouble(const ByteString& rString) //------------------------------------------------------------------ BOOL ODbaseTable::UpdateBuffer(OValueRefVector& rRow, OValueRefRow pOrgRow,const Reference& _xCols) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::UpdateBuffer" ); OSL_ENSURE(m_pBuffer,"Buffer is NULL!"); if ( !m_pBuffer ) return FALSE; @@ -1684,6 +1712,7 @@ BOOL ODbaseTable::UpdateBuffer(OValueRefVector& rRow, OValueRefRow pOrgRow,const // ----------------------------------------------------------------------------- BOOL ODbaseTable::WriteMemo(ORowSetValue& aVariable, ULONG& rBlockNr) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::WriteMemo" ); // wird die BlockNr 0 vorgegeben, wird der block ans Ende gehaengt BYTE nHeader[4]; @@ -1816,6 +1845,7 @@ BOOL ODbaseTable::WriteMemo(ORowSetValue& aVariable, ULONG& rBlockNr) // XAlterTable void SAL_CALL ODbaseTable::alterColumnByName( const ::rtl::OUString& colName, const Reference< XPropertySet >& descriptor ) throw(SQLException, NoSuchElementException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::alterColumnByName" ); ::osl::MutexGuard aGuard(m_aMutex); checkDisposed(OTableDescriptor_BASE::rBHelper.bDisposed); @@ -1828,6 +1858,7 @@ void SAL_CALL ODbaseTable::alterColumnByName( const ::rtl::OUString& colName, co // ------------------------------------------------------------------------- void SAL_CALL ODbaseTable::alterColumnByIndex( sal_Int32 index, const Reference< XPropertySet >& descriptor ) throw(SQLException, ::com::sun::star::lang::IndexOutOfBoundsException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::alterColumnByIndex" ); ::osl::MutexGuard aGuard(m_aMutex); checkDisposed(OTableDescriptor_BASE::rBHelper.bDisposed); @@ -1843,6 +1874,7 @@ void ODbaseTable::alterColumn(sal_Int32 index, const Reference< XPropertySet >& descriptor , const Reference< XDataDescriptorFactory >& xOldColumn ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::alterColumn" ); if(index < 0 || index >= m_pColumns->getCount()) throw IndexOutOfBoundsException(::rtl::OUString::valueOf(index),*this); @@ -1948,11 +1980,13 @@ void ODbaseTable::alterColumn(sal_Int32 index, // ----------------------------------------------------------------------------- Reference< XDatabaseMetaData> ODbaseTable::getMetaData() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::getMetaData" ); return getConnection()->getMetaData(); } // ------------------------------------------------------------------------- void SAL_CALL ODbaseTable::rename( const ::rtl::OUString& newName ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::container::ElementExistException, ::com::sun::star::uno::RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::rename" ); ::osl::MutexGuard aGuard(m_aMutex); checkDisposed(OTableDescriptor_BASE::rBHelper.bDisposed); if(m_pTables && m_pTables->hasByName(newName)) @@ -2011,6 +2045,7 @@ namespace // ------------------------------------------------------------------------- void SAL_CALL ODbaseTable::renameImpl( const ::rtl::OUString& newName ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::container::ElementExistException, ::com::sun::star::uno::RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::getEntry" ); ::osl::MutexGuard aGuard(m_aMutex); FileClose(); @@ -2026,6 +2061,7 @@ void SAL_CALL ODbaseTable::renameImpl( const ::rtl::OUString& newName ) throw(:: // ----------------------------------------------------------------------------- void ODbaseTable::addColumn(const Reference< XPropertySet >& _xNewColumn) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::addColumn" ); String sTempName = createTempFile(); ODbaseTable* pNewTable = new ODbaseTable(m_pTables,static_cast(m_pConnection)); @@ -2098,6 +2134,7 @@ void ODbaseTable::addColumn(const Reference< XPropertySet >& _xNewColumn) // ----------------------------------------------------------------------------- void ODbaseTable::dropColumn(sal_Int32 _nPos) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::dropColumn" ); String sTempName = createTempFile(); ODbaseTable* pNewTable = new ODbaseTable(m_pTables,static_cast(m_pConnection)); @@ -2153,6 +2190,7 @@ void ODbaseTable::dropColumn(sal_Int32 _nPos) // ----------------------------------------------------------------------------- String ODbaseTable::createTempFile() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::createTempFile" ); ::rtl::OUString aIdent = m_pConnection->getContent()->getIdentifier()->getContentIdentifier(); if ( aIdent.lastIndexOf('/') != (aIdent.getLength()-1) ) aIdent += ::rtl::OUString::createFromAscii("/"); @@ -2177,6 +2215,7 @@ String ODbaseTable::createTempFile() // ----------------------------------------------------------------------------- void ODbaseTable::copyData(ODbaseTable* _pNewTable,sal_Int32 _nPos) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::copyData" ); sal_Int32 nPos = _nPos + 1; // +1 because we always have the bookmark clumn as well OValueRefRow aRow = new OValueRefVector(m_pColumns->getCount()); OValueRefRow aInsertRow; @@ -2234,6 +2273,7 @@ void ODbaseTable::copyData(ODbaseTable* _pNewTable,sal_Int32 _nPos) // ----------------------------------------------------------------------------- void ODbaseTable::throwInvalidDbaseFormat() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::throwInvalidDbaseFormat" ); FileClose(); // no dbase file @@ -2246,12 +2286,14 @@ void ODbaseTable::throwInvalidDbaseFormat() // ----------------------------------------------------------------------------- void ODbaseTable::refreshHeader() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::refreshHeader" ); if ( m_aHeader.db_anz == 0 ) readHeader(); } //------------------------------------------------------------------ sal_Bool ODbaseTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int32 nOffset, sal_Int32& nCurPos) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::seekRow" ); // ---------------------------------------------------------- // Positionierung vorbereiten: OSL_ENSURE(m_pFileStream,"ODbaseTable::seekRow: FileStream is NULL!"); @@ -2336,6 +2378,7 @@ End: // ----------------------------------------------------------------------------- BOOL ODbaseTable::ReadMemo(ULONG nBlockNo, ORowSetValue& aVariable) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::ReadMemo" ); BOOL bIsText = TRUE; // SdbConnection* pConnection = GetConnection(); @@ -2437,6 +2480,7 @@ BOOL ODbaseTable::ReadMemo(ULONG nBlockNo, ORowSetValue& aVariable) // ----------------------------------------------------------------------------- void ODbaseTable::AllocBuffer() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::AllocBuffer" ); UINT16 nSize = m_aHeader.db_slng; OSL_ENSURE(nSize > 0, "Size too small"); @@ -2456,6 +2500,7 @@ void ODbaseTable::AllocBuffer() // ----------------------------------------------------------------------------- BOOL ODbaseTable::WriteBuffer() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::WriteBuffer" ); OSL_ENSURE(m_nFilePos >= 1,"SdbDBFCursor::FileFetchRow: ungueltige Record-Position"); // Auf gewuenschten Record positionieren: @@ -2466,5 +2511,6 @@ BOOL ODbaseTable::WriteBuffer() // ----------------------------------------------------------------------------- sal_Int32 ODbaseTable::getCurrentLastPos() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbase", "Ocke.Janssen@sun.com", "ODbaseTable::getCurrentLastPos" ); return m_aHeader.db_anz; } diff --git a/connectivity/source/drivers/evoab2/NPreparedStatement.cxx b/connectivity/source/drivers/evoab2/NPreparedStatement.cxx index 6cab3d5c03..5dbf5493a2 100644 --- a/connectivity/source/drivers/evoab2/NPreparedStatement.cxx +++ b/connectivity/source/drivers/evoab2/NPreparedStatement.cxx @@ -261,9 +261,16 @@ void SAL_CALL OEvoabPreparedStatement::setObjectNull( sal_Int32 /*parameterIndex } // ------------------------------------------------------------------------- -void SAL_CALL OEvoabPreparedStatement::setObject( sal_Int32 /*parameterIndex*/, const Any& /*x*/ ) throw(SQLException, RuntimeException) +void SAL_CALL OEvoabPreparedStatement::setObject( sal_Int32 parameterIndex, const Any& x ) throw(SQLException, RuntimeException) { - ::dbtools::throwFunctionNotSupportedException( "XParameters::setObject", *this ); + if(!::dbtools::implSetObject(this,parameterIndex,x)) + { + const ::rtl::OUString sError( m_pConnection->getResources().getResourceStringWithSubstitution( + STR_UNKNOWN_PARA_TYPE, + "$position$", ::rtl::OUString::valueOf(parameterIndex) + ) ); + ::dbtools::throwGenericSQLException(sError,*this); + } } // ------------------------------------------------------------------------- diff --git a/connectivity/source/drivers/evoab2/makefile.mk b/connectivity/source/drivers/evoab2/makefile.mk index 86eaf8919b..3e59c8ecb4 100644 --- a/connectivity/source/drivers/evoab2/makefile.mk +++ b/connectivity/source/drivers/evoab2/makefile.mk @@ -34,6 +34,7 @@ PRJINC=..$/.. PRJNAME=connectivity TARGET=evoab2 ENABLE_EXCEPTIONS=TRUE +VISIBILITY_HIDDEN=TRUE .IF "$(ENABLE_EVOAB2)"!="TRUE" dummy: diff --git a/connectivity/source/drivers/file/FCatalog.cxx b/connectivity/source/drivers/file/FCatalog.cxx index 411737beb6..b98896786f 100644 --- a/connectivity/source/drivers/file/FCatalog.cxx +++ b/connectivity/source/drivers/file/FCatalog.cxx @@ -31,15 +31,11 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_connectivity.hxx" #include "file/FCatalog.hxx" -#ifndef _CONNECTIVITY_FILE_BCONNECTION_HXX_ #include "file/FConnection.hxx" -#endif #include "file/FTables.hxx" #include #include -//#ifndef _CONNECTIVITY_FILE_OEMPTYCOLLECTION_HXX_ -//#include "file/FEmptyCollection.hxx" -//#endif +#include using namespace ::com::sun::star::uno; using namespace ::com::sun::star::beans; @@ -53,10 +49,12 @@ using namespace connectivity::file; OFileCatalog::OFileCatalog(OConnection* _pCon) : connectivity::sdbcx::OCatalog(_pCon) ,m_pConnection(_pCon) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileCatalog::OFileCatalog" ); } // ------------------------------------------------------------------------- void SAL_CALL OFileCatalog::disposing() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileCatalog::disposing" ); ::osl::MutexGuard aGuard(m_aMutex); typedef connectivity::sdbcx::OCatalog OFileCatalog_BASE; @@ -66,11 +64,13 @@ void SAL_CALL OFileCatalog::disposing() // ----------------------------------------------------------------------------- ::rtl::OUString OFileCatalog::buildName(const Reference< XRow >& _xRow) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileCatalog::buildName" ); return _xRow->getString(3); } // ------------------------------------------------------------------------- void OFileCatalog::refreshTables() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileCatalog::refreshTables" ); TStringVector aVector; Sequence< ::rtl::OUString > aTypes; Reference< XResultSet > xResult = m_xMetaData->getTables(Any(), @@ -86,6 +86,7 @@ void OFileCatalog::refreshTables() // ------------------------------------------------------------------------- Any SAL_CALL OFileCatalog::queryInterface( const Type & rType ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileCatalog::queryInterface" ); if( rType == ::getCppuType((const Reference*)0) || rType == ::getCppuType((const Reference*)0) || rType == ::getCppuType((const Reference*)0)) @@ -98,6 +99,7 @@ Any SAL_CALL OFileCatalog::queryInterface( const Type & rType ) throw(RuntimeExc // ----------------------------------------------------------------------------- Sequence< Type > SAL_CALL OFileCatalog::getTypes( ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileCatalog::getTypes" ); typedef sdbcx::OCatalog OFileCatalog_BASE; Sequence< Type > aTypes = OFileCatalog_BASE::getTypes(); diff --git a/connectivity/source/drivers/file/FDatabaseMetaData.cxx b/connectivity/source/drivers/file/FDatabaseMetaData.cxx index 8e23afca81..d4a8b0d196 100644 --- a/connectivity/source/drivers/file/FDatabaseMetaData.cxx +++ b/connectivity/source/drivers/file/FDatabaseMetaData.cxx @@ -47,6 +47,7 @@ #include #include #include +#include using namespace com::sun::star::ucb; @@ -64,6 +65,7 @@ DBG_NAME( file_ODatabaseMetaData ) ODatabaseMetaData::ODatabaseMetaData(OConnection* _pCon) : ::connectivity::ODatabaseMetaDataBase(_pCon,_pCon->getConnectionInfo()) ,m_pConnection(_pCon) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::ODatabaseMetaData" ); DBG_CTOR( file_ODatabaseMetaData, NULL ); } // ------------------------------------------------------------------------- @@ -74,11 +76,13 @@ ODatabaseMetaData::~ODatabaseMetaData() // ------------------------------------------------------------------------- Reference< XResultSet > ODatabaseMetaData::impl_getTypeInfo_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_getTypeInfo_throw" ); return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTypeInfo ); } // ------------------------------------------------------------------------- ::rtl::OUString ODatabaseMetaData::impl_getCatalogSeparator_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_getCatalogSeparator_throw" ); return ::rtl::OUString(); } // ------------------------------------------------------------------------- @@ -86,6 +90,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getColumns( const Any& /*catalog*/, const ::rtl::OUString& /*schemaPattern*/, const ::rtl::OUString& /*tableNamePattern*/, const ::rtl::OUString& /*columnNamePattern*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getColumns" ); OSL_ENSURE(0,"Should be overloaded!"); return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eColumns ); } @@ -184,6 +189,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTables( const Any& /*catalog*/, const ::rtl::OUString& /*schemaPattern*/, const ::rtl::OUString& tableNamePattern, const Sequence< ::rtl::OUString >& types ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getTables" ); ::osl::MutexGuard aGuard( m_aMutex ); @@ -332,67 +338,80 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTables( // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxBinaryLiteralLength( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxBinaryLiteralLength" ); return 0; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxRowSize( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxRowSize" ); return 0; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxCatalogNameLength( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxCatalogNameLength" ); return 0; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxCharLiteralLength( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxCharLiteralLength" ); return STRING_MAXLEN; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnNameLength( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxColumnNameLength" ); return 0; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInIndex( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxColumnsInIndex" ); return 0; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxCursorNameLength( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxCursorNameLength" ); return 0; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxConnections( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxConnections" ); return 0; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInTable( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxColumnsInTable" ); return 0; } // ------------------------------------------------------------------------- sal_Int32 ODatabaseMetaData::impl_getMaxStatements_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_getMaxStatements_throw" ); return 0; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxTableNameLength( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxTableNameLength" ); return 0; } // ------------------------------------------------------------------------- sal_Int32 ODatabaseMetaData::impl_getMaxTablesInSelect_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_getMaxTablesInSelect_throw" ); return 1; } // ------------------------------------------------------------------------- Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTablePrivileges( const Any& /*catalog*/, const ::rtl::OUString& /*schemaPattern*/, const ::rtl::OUString& tableNamePattern ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getTablePrivileges" ); ::osl::MutexGuard aGuard( m_aMutex ); ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTablePrivileges ); @@ -461,192 +480,230 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTablePrivileges( // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::doesMaxRowSizeIncludeBlobs( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::doesMaxRowSizeIncludeBlobs" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::storesLowerCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::storesLowerCaseQuotedIdentifiers" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::storesLowerCaseIdentifiers( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::storesLowerCaseIdentifiers" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool ODatabaseMetaData::impl_storesMixedCaseQuotedIdentifiers_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_storesMixedCaseQuotedIdentifiers_throw" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::storesMixedCaseIdentifiers( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::storesMixedCaseIdentifiers" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::storesUpperCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::storesUpperCaseQuotedIdentifiers" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::storesUpperCaseIdentifiers( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::storesUpperCaseIdentifiers" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool ODatabaseMetaData::impl_supportsAlterTableWithAddColumn_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_supportsAlterTableWithAddColumn_throw" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool ODatabaseMetaData::impl_supportsAlterTableWithDropColumn_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_supportsAlterTableWithDropColumn_throw" ); return sal_False; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxIndexLength( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxIndexLength" ); return 0; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsNonNullableColumns( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsNonNullableColumns" ); return sal_False; } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL ODatabaseMetaData::getCatalogTerm( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getCatalogTerm" ); return ::rtl::OUString(); } // ------------------------------------------------------------------------- ::rtl::OUString ODatabaseMetaData::impl_getIdentifierQuoteString_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_getIdentifierQuoteString_throw" ); static const ::rtl::OUString sQuote = ::rtl::OUString::createFromAscii("\""); return sQuote; } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL ODatabaseMetaData::getExtraNameCharacters( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getExtraNameCharacters" ); return ::rtl::OUString(); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsDifferentTableCorrelationNames( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsDifferentTableCorrelationNames" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool ODatabaseMetaData::impl_isCatalogAtStart_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_isCatalogAtStart_throw" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::dataDefinitionIgnoredInTransactions( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::dataDefinitionIgnoredInTransactions" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::dataDefinitionCausesTransactionCommit( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::dataDefinitionCausesTransactionCommit" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsDataManipulationTransactionsOnly( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsDataManipulationTransactionsOnly" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsPositionedDelete( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsPositionedDelete" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsPositionedUpdate( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsPositionedUpdate" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenStatementsAcrossRollback( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsOpenStatementsAcrossRollback" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenStatementsAcrossCommit( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsOpenStatementsAcrossCommit" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenCursorsAcrossCommit( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsOpenCursorsAcrossCommit" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsOpenCursorsAcrossRollback( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsOpenCursorsAcrossRollback" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsTransactionIsolationLevel( sal_Int32 /*level*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsTransactionIsolationLevel" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool ODatabaseMetaData::impl_supportsSchemasInDataManipulation_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_supportsSchemasInDataManipulation_throw" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsANSI92FullSQL( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsANSI92FullSQL" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsANSI92EntryLevelSQL( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsANSI92EntryLevelSQL" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsIntegrityEnhancementFacility( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsIntegrityEnhancementFacility" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInIndexDefinitions( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsSchemasInIndexDefinitions" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool ODatabaseMetaData::impl_supportsSchemasInTableDefinitions_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_supportsSchemasInTableDefinitions_throw" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool ODatabaseMetaData::impl_supportsCatalogsInTableDefinitions_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_supportsCatalogsInTableDefinitions_throw" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInIndexDefinitions( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsCatalogsInIndexDefinitions" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool ODatabaseMetaData::impl_supportsCatalogsInDataManipulation_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_supportsCatalogsInDataManipulation_throw" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsOuterJoins( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsOuterJoins" ); return sal_False; } // ------------------------------------------------------------------------- Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTableTypes( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getTableTypes" ); ::osl::MutexGuard aGuard( m_aMutex ); ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTableTypes ); @@ -665,347 +722,416 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTableTypes( ) throw(SQLE // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxStatementLength( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxStatementLength" ); return 0; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxProcedureNameLength( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxProcedureNameLength" ); return 0; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxSchemaNameLength( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxSchemaNameLength" ); return 0; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsTransactions( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsTransactions" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::allProceduresAreCallable( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::allProceduresAreCallable" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsStoredProcedures( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsStoredProcedures" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsSelectForUpdate( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsSelectForUpdate" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::allTablesAreSelectable( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::allTablesAreSelectable" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::isReadOnly( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::isReadOnly" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::usesLocalFiles( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::usesLocalFiles" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::usesLocalFilePerTable( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::usesLocalFilePerTable" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsTypeConversion( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsTypeConversion" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::nullPlusNonNullIsNull( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::nullPlusNonNullIsNull" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsColumnAliasing( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsColumnAliasing" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsTableCorrelationNames( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsTableCorrelationNames" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsConvert( sal_Int32 /*fromType*/, sal_Int32 /*toType*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsConvert" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsExpressionsInOrderBy( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsExpressionsInOrderBy" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupBy( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsGroupBy" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupByBeyondSelect( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsGroupByBeyondSelect" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsGroupByUnrelated( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsGroupByUnrelated" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsMultipleTransactions( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsMultipleTransactions" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsMultipleResultSets( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsMultipleResultSets" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsLikeEscapeClause( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsLikeEscapeClause" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsOrderByUnrelated( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsOrderByUnrelated" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsUnion( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsUnion" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsUnionAll( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsUnionAll" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsMixedCaseIdentifiers( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsMixedCaseIdentifiers" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool ODatabaseMetaData::impl_supportsMixedCaseQuotedIdentifiers_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_supportsMixedCaseQuotedIdentifiers_throw" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::nullsAreSortedAtEnd( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::nullsAreSortedAtEnd" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::nullsAreSortedAtStart( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::nullsAreSortedAtStart" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::nullsAreSortedHigh( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::nullsAreSortedHigh" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::nullsAreSortedLow( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::nullsAreSortedLow" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInProcedureCalls( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsSchemasInProcedureCalls" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsSchemasInPrivilegeDefinitions( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsSchemasInPrivilegeDefinitions" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInProcedureCalls( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsCatalogsInProcedureCalls" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsCatalogsInPrivilegeDefinitions( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsCatalogsInPrivilegeDefinitions" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsCorrelatedSubqueries( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsCorrelatedSubqueries" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInComparisons( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsSubqueriesInComparisons" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInExists( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsSubqueriesInExists" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInIns( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsSubqueriesInIns" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsSubqueriesInQuantifieds( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsSubqueriesInQuantifieds" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsANSI92IntermediateSQL( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsANSI92IntermediateSQL" ); return sal_False; } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL ODatabaseMetaData::getURL( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getURL" ); static const ::rtl::OUString aValue = ::rtl::OUString::createFromAscii("sdbc:file:"); return aValue; } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL ODatabaseMetaData::getUserName( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getUserName" ); return ::rtl::OUString(); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL ODatabaseMetaData::getDriverName( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getDriverName" ); return ::rtl::OUString(); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL ODatabaseMetaData::getDriverVersion( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getDriverVersion" ); return ::rtl::OUString::valueOf((sal_Int32)1); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL ODatabaseMetaData::getDatabaseProductVersion( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getDatabaseProductVersion" ); return ::rtl::OUString::valueOf((sal_Int32)0); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL ODatabaseMetaData::getDatabaseProductName( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getDatabaseProductName" ); return ::rtl::OUString(); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL ODatabaseMetaData::getProcedureTerm( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getProcedureTerm" ); return ::rtl::OUString(); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL ODatabaseMetaData::getSchemaTerm( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getSchemaTerm" ); return ::rtl::OUString(); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getDriverMajorVersion( ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getDriverMajorVersion" ); return 0; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getDefaultTransactionIsolation( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getDefaultTransactionIsolation" ); return 0; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getDriverMinorVersion( ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getDriverMinorVersion" ); return 0; } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL ODatabaseMetaData::getSQLKeywords( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getSQLKeywords" ); return ::rtl::OUString(); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL ODatabaseMetaData::getSearchStringEscape( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getSearchStringEscape" ); return ::rtl::OUString(); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL ODatabaseMetaData::getStringFunctions( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getStringFunctions" ); return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("UCASE,LCASE,ASCII,LENGTH,OCTET_LENGTH,CHAR_LENGTH,CHARACTER_LENGTH,CHAR,CONCAT,LOCATE,SUBSTRING,LTRIM,RTRIM,SPACE,REPLACE,REPEAT,INSERT,LEFT,RIGHT")); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL ODatabaseMetaData::getTimeDateFunctions( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getTimeDateFunctions" ); return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DAYOFWEEK,DAYOFMONTH,DAYOFYEAR,MONTH,DAYNAME,MONTHNAME,QUARTER,WEEK,YEAR,HOUR,MINUTE,SECOND,CURDATE,CURTIME,NOW")); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL ODatabaseMetaData::getSystemFunctions( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getSystemFunctions" ); return ::rtl::OUString(); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL ODatabaseMetaData::getNumericFunctions( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getNumericFunctions" ); return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ABS,SIGN,MOD,FLOOR,CEILING,ROUND,EXP,LN,LOG,LOG10,POWER,SQRT,PI,COS,SIN,TAN,ACOS,ASIN,ATAN,ATAN2,DEGREES,RADIANS")); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsExtendedSQLGrammar( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsExtendedSQLGrammar" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsCoreSQLGrammar( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsCoreSQLGrammar" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsMinimumSQLGrammar( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsMinimumSQLGrammar" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsFullOuterJoins( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsFullOuterJoins" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsLimitedOuterJoins( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsLimitedOuterJoins" ); return sal_False; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInGroupBy( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxColumnsInGroupBy" ); return 0; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInOrderBy( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxColumnsInOrderBy" ); return 0; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxColumnsInSelect( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxColumnsInSelect" ); return 0; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL ODatabaseMetaData::getMaxUserNameLength( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getMaxUserNameLength" ); return 0; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsResultSetType( sal_Int32 setType ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsResultSetType" ); switch(setType) { case ResultSetType::FORWARD_ONLY: @@ -1019,6 +1145,7 @@ sal_Bool SAL_CALL ODatabaseMetaData::supportsResultSetType( sal_Int32 setType ) // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsResultSetConcurrency( sal_Int32 setType, sal_Int32 /*concurrency*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsResultSetConcurrency" ); switch(setType) { case ResultSetType::FORWARD_ONLY: @@ -1032,56 +1159,67 @@ sal_Bool SAL_CALL ODatabaseMetaData::supportsResultSetConcurrency( sal_Int32 set // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::ownUpdatesAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::ownUpdatesAreVisible" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::ownDeletesAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::ownDeletesAreVisible" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::ownInsertsAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::ownInsertsAreVisible" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::othersUpdatesAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::othersUpdatesAreVisible" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::othersDeletesAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::othersDeletesAreVisible" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::othersInsertsAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::othersInsertsAreVisible" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::updatesAreDetected( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::updatesAreDetected" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::deletesAreDetected( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::deletesAreDetected" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::insertsAreDetected( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::insertsAreDetected" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL ODatabaseMetaData::supportsBatchUpdates( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::supportsBatchUpdates" ); return sal_False; } // ------------------------------------------------------------------------- Reference< XResultSet > SAL_CALL ODatabaseMetaData::getUDTs( const Any& /*catalog*/, const ::rtl::OUString& /*schemaPattern*/, const ::rtl::OUString& /*typeNamePattern*/, const Sequence< sal_Int32 >& /*types*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getUDTs" ); return NULL; } diff --git a/connectivity/source/drivers/file/FDriver.cxx b/connectivity/source/drivers/file/FDriver.cxx index af6c674735..399ac16105 100644 --- a/connectivity/source/drivers/file/FDriver.cxx +++ b/connectivity/source/drivers/file/FDriver.cxx @@ -38,6 +38,7 @@ #include "connectivity/dbexception.hxx" #include "resource/common_res.hrc" #include "resource/sharedresources.hxx" +#include using namespace connectivity::file; @@ -52,10 +53,12 @@ OFileDriver::OFileDriver(const ::com::sun::star::uno::Reference< ::com::sun::sta : ODriver_BASE(m_aMutex) ,m_xFactory(_rxFactory) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileDriver::OFileDriver" ); } // -------------------------------------------------------------------------------- void OFileDriver::disposing() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileDriver::disposing" ); ::osl::MutexGuard aGuard(m_aMutex); @@ -79,7 +82,7 @@ rtl::OUString OFileDriver::getImplementationName_Static( ) throw(RuntimeExcepti //------------------------------------------------------------------------------ Sequence< ::rtl::OUString > OFileDriver::getSupportedServiceNames_Static( ) throw (RuntimeException) { - Sequence< ::rtl::OUString > aSNS( 2 ); + Sequence< ::rtl::OUString > aSNS( 2 ); aSNS[0] = ::rtl::OUString::createFromAscii("com.sun.star.sdbc.Driver"); aSNS[1] = ::rtl::OUString::createFromAscii("com.sun.star.sdbcx.Driver"); return aSNS; @@ -112,6 +115,7 @@ Sequence< ::rtl::OUString > SAL_CALL OFileDriver::getSupportedServiceNames( ) t // -------------------------------------------------------------------------------- Reference< XConnection > SAL_CALL OFileDriver::connect( const ::rtl::OUString& url, const Sequence< PropertyValue >& info ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileDriver::connect" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(ODriver_BASE::rBHelper.bDisposed); @@ -126,11 +130,13 @@ Reference< XConnection > SAL_CALL OFileDriver::connect( const ::rtl::OUString& u sal_Bool SAL_CALL OFileDriver::acceptsURL( const ::rtl::OUString& url ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileDriver::acceptsURL" ); return (!url.compareTo(::rtl::OUString::createFromAscii("sdbc:file:"),10)); } // -------------------------------------------------------------------------------- Sequence< DriverPropertyInfo > SAL_CALL OFileDriver::getPropertyInfo( const ::rtl::OUString& url, const Sequence< PropertyValue >& /*info*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileDriver::getPropertyInfo" ); if ( acceptsURL(url) ) { ::std::vector< DriverPropertyInfo > aDriverInfo; @@ -193,11 +199,13 @@ Sequence< DriverPropertyInfo > SAL_CALL OFileDriver::getPropertyInfo( const ::rt // -------------------------------------------------------------------------------- sal_Int32 SAL_CALL OFileDriver::getMajorVersion( ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileDriver::getMajorVersion" ); return 1; } // -------------------------------------------------------------------------------- sal_Int32 SAL_CALL OFileDriver::getMinorVersion( ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileDriver::getMinorVersion" ); return 0; } // -------------------------------------------------------------------------------- @@ -205,6 +213,7 @@ sal_Int32 SAL_CALL OFileDriver::getMinorVersion( ) throw(RuntimeException) // XDataDefinitionSupplier Reference< XTablesSupplier > SAL_CALL OFileDriver::getDataDefinitionByConnection( const Reference< ::com::sun::star::sdbc::XConnection >& connection ) throw(::com::sun::star::sdbc::SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileDriver::getDataDefinitionByConnection" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(ODriver_BASE::rBHelper.bDisposed); @@ -232,6 +241,7 @@ Reference< XTablesSupplier > SAL_CALL OFileDriver::getDataDefinitionByConnection // -------------------------------------------------------------------------------- Reference< XTablesSupplier > SAL_CALL OFileDriver::getDataDefinitionByURL( const ::rtl::OUString& url, const Sequence< PropertyValue >& info ) throw(::com::sun::star::sdbc::SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileDriver::getDataDefinitionByURL" ); if ( ! acceptsURL(url) ) { ::connectivity::SharedResources aResources; diff --git a/connectivity/source/drivers/file/FNoException.cxx b/connectivity/source/drivers/file/FNoException.cxx index 86e2371b0c..89fe915c4c 100644 --- a/connectivity/source/drivers/file/FNoException.cxx +++ b/connectivity/source/drivers/file/FNoException.cxx @@ -38,6 +38,7 @@ #include #include #include "TKeyValue.hxx" +#include using namespace connectivity; using namespace connectivity::file; @@ -85,19 +86,9 @@ void OSQLAnalyzer::bindParameterRow(OValueRefRow& _pRow) } } // ----------------------------------------------------------------------------- -sal_Bool OResultSet::isCount() const -{ - return (m_pParseTree && - m_pParseTree->count() > 2 && - SQL_ISRULE(m_pParseTree->getChild(2),scalar_exp_commalist) && - SQL_ISRULE(m_pParseTree->getChild(2)->getChild(0),derived_column) && - SQL_ISRULE(m_pParseTree->getChild(2)->getChild(0)->getChild(0),general_set_fct) && - m_pParseTree->getChild(2)->getChild(0)->getChild(0)->count() == 4 - ); -} -// ----------------------------------------------------------------------------- void OPreparedStatement::scanParameter(OSQLParseNode* pParseNode,::std::vector< OSQLParseNode*>& _rParaNodes) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::scanParameter" ); DBG_ASSERT(pParseNode != NULL,"OResultSet: interner Fehler: ungueltiger ParseNode"); // Parameter Name-Regel gefunden? @@ -118,6 +109,7 @@ void OPreparedStatement::scanParameter(OSQLParseNode* pParseNode,::std::vector< // ----------------------------------------------------------------------------- OKeyValue* OResultSet::GetOrderbyKeyValue(OValueRefRow& _rRow) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::GetOrderbyKeyValue" ); UINT32 nBookmarkValue = Abs((sal_Int32)(_rRow->get())[0]->getValue()); OKeyValue* pKeyValue = OKeyValue::createKeyValue((UINT32)nBookmarkValue); diff --git a/connectivity/source/drivers/file/FPreparedStatement.cxx b/connectivity/source/drivers/file/FPreparedStatement.cxx index 09adbf8cd4..82eea55ba8 100644 --- a/connectivity/source/drivers/file/FPreparedStatement.cxx +++ b/connectivity/source/drivers/file/FPreparedStatement.cxx @@ -49,6 +49,7 @@ #include #include #include "resource/file_res.hrc" +#include using namespace connectivity; using namespace comphelper; @@ -70,18 +71,21 @@ OPreparedStatement::OPreparedStatement( OConnection* _pConnection) : OStatement_BASE2( _pConnection ) ,m_pResultSet(NULL) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::OPreparedStatement" ); DBG_CTOR( file_OPreparedStatement, NULL ); } // ------------------------------------------------------------------------- OPreparedStatement::~OPreparedStatement() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::~OPreparedStatement" ); DBG_DTOR( file_OPreparedStatement, NULL ); } // ------------------------------------------------------------------------- void OPreparedStatement::disposing() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::disposing" ); ::osl::MutexGuard aGuard(m_aMutex); clearMyResultSet(); @@ -108,6 +112,7 @@ void OPreparedStatement::disposing() // ------------------------------------------------------------------------- void OPreparedStatement::construct(const ::rtl::OUString& sql) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::construct" ); OStatement_Base::construct(sql); m_aParameterRow = new OValueRefVector(); @@ -136,6 +141,7 @@ void OPreparedStatement::construct(const ::rtl::OUString& sql) throw(SQLExcepti Any SAL_CALL OPreparedStatement::queryInterface( const Type & rType ) throw(RuntimeException) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::queryInterface" ); Any aRet = OStatement_BASE2::queryInterface(rType); return aRet.hasValue() ? aRet : ::cppu::queryInterface( rType, static_cast< XPreparedStatement*>(this), @@ -145,6 +151,7 @@ Any SAL_CALL OPreparedStatement::queryInterface( const Type & rType ) throw(Runt // ------------------------------------------------------------------------- ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL OPreparedStatement::getTypes( ) throw(::com::sun::star::uno::RuntimeException) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::getTypes" ); ::cppu::OTypeCollection aTypes( ::getCppuType( (const ::com::sun::star::uno::Reference< XPreparedStatement > *)0 ), ::getCppuType( (const ::com::sun::star::uno::Reference< XParameters > *)0 ), ::getCppuType( (const ::com::sun::star::uno::Reference< XResultSetMetaDataSupplier > *)0 )); @@ -155,6 +162,7 @@ Any SAL_CALL OPreparedStatement::queryInterface( const Type & rType ) throw(Runt Reference< XResultSetMetaData > SAL_CALL OPreparedStatement::getMetaData( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::getMetaData" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OStatement_BASE::rBHelper.bDisposed); @@ -167,6 +175,7 @@ Reference< XResultSetMetaData > SAL_CALL OPreparedStatement::getMetaData( ) thr void SAL_CALL OPreparedStatement::close( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::close" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OStatement_BASE::rBHelper.bDisposed); @@ -177,6 +186,7 @@ void SAL_CALL OPreparedStatement::close( ) throw(SQLException, RuntimeException sal_Bool SAL_CALL OPreparedStatement::execute( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::execute" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OStatement_BASE::rBHelper.bDisposed); @@ -188,6 +198,7 @@ sal_Bool SAL_CALL OPreparedStatement::execute( ) throw(SQLException, RuntimeExc sal_Int32 SAL_CALL OPreparedStatement::executeUpdate( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::executeUpdate" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OStatement_BASE::rBHelper.bDisposed); @@ -199,12 +210,14 @@ sal_Int32 SAL_CALL OPreparedStatement::executeUpdate( ) throw(SQLException, Run void SAL_CALL OPreparedStatement::setString( sal_Int32 parameterIndex, const ::rtl::OUString& x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setString" ); setParameter(parameterIndex,x); } // ------------------------------------------------------------------------- Reference< XConnection > SAL_CALL OPreparedStatement::getConnection( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::getConnection" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OStatement_BASE::rBHelper.bDisposed); @@ -214,6 +227,7 @@ Reference< XConnection > SAL_CALL OPreparedStatement::getConnection( ) throw(SQ Reference< XResultSet > SAL_CALL OPreparedStatement::executeQuery( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::executeQuery" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OStatement_BASE::rBHelper.bDisposed); @@ -223,34 +237,40 @@ Reference< XResultSet > SAL_CALL OPreparedStatement::executeQuery( ) throw(SQLE void SAL_CALL OPreparedStatement::setBoolean( sal_Int32 parameterIndex, sal_Bool x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setBoolean" ); setParameter(parameterIndex,x); } // ------------------------------------------------------------------------- void SAL_CALL OPreparedStatement::setByte( sal_Int32 parameterIndex, sal_Int8 x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setByte" ); setParameter(parameterIndex,x); } // ------------------------------------------------------------------------- void SAL_CALL OPreparedStatement::setDate( sal_Int32 parameterIndex, const Date& aData ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setDate" ); setParameter(parameterIndex,DBTypeConversion::toDouble(aData)); } // ------------------------------------------------------------------------- void SAL_CALL OPreparedStatement::setTime( sal_Int32 parameterIndex, const Time& aVal ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setTime" ); setParameter(parameterIndex,DBTypeConversion::toDouble(aVal)); } // ------------------------------------------------------------------------- void SAL_CALL OPreparedStatement::setTimestamp( sal_Int32 parameterIndex, const DateTime& aVal ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setTimestamp" ); setParameter(parameterIndex,DBTypeConversion::toDouble(aVal)); } // ------------------------------------------------------------------------- void SAL_CALL OPreparedStatement::setDouble( sal_Int32 parameterIndex, double x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setDouble" ); setParameter(parameterIndex,x); } @@ -258,24 +278,28 @@ void SAL_CALL OPreparedStatement::setDouble( sal_Int32 parameterIndex, double x void SAL_CALL OPreparedStatement::setFloat( sal_Int32 parameterIndex, float x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setFloat" ); setParameter(parameterIndex,x); } // ------------------------------------------------------------------------- void SAL_CALL OPreparedStatement::setInt( sal_Int32 parameterIndex, sal_Int32 x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setInt" ); setParameter(parameterIndex,x); } // ------------------------------------------------------------------------- void SAL_CALL OPreparedStatement::setLong( sal_Int32 /*parameterIndex*/, sal_Int64 /*aVal*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setLong" ); throwFeatureNotImplementedException( "XParameters::setLong", *this ); } // ------------------------------------------------------------------------- void SAL_CALL OPreparedStatement::setNull( sal_Int32 parameterIndex, sal_Int32 /*sqlType*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setNull" ); ::osl::MutexGuard aGuard( m_aMutex ); checkAndResizeParameters(parameterIndex); @@ -288,30 +312,35 @@ void SAL_CALL OPreparedStatement::setNull( sal_Int32 parameterIndex, sal_Int32 / void SAL_CALL OPreparedStatement::setClob( sal_Int32 /*parameterIndex*/, const Reference< XClob >& /*x*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setClob" ); throwFeatureNotImplementedException( "XParameters::setClob", *this ); } // ------------------------------------------------------------------------- void SAL_CALL OPreparedStatement::setBlob( sal_Int32 /*parameterIndex*/, const Reference< XBlob >& /*x*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setBlob" ); throwFeatureNotImplementedException( "XParameters::setBlob", *this ); } // ------------------------------------------------------------------------- void SAL_CALL OPreparedStatement::setArray( sal_Int32 /*parameterIndex*/, const Reference< XArray >& /*x*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setArray" ); throwFeatureNotImplementedException( "XParameters::setArray", *this ); } // ------------------------------------------------------------------------- void SAL_CALL OPreparedStatement::setRef( sal_Int32 /*parameterIndex*/, const Reference< XRef >& /*x*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setRef" ); throwFeatureNotImplementedException( "XParameters::setRef", *this ); } // ------------------------------------------------------------------------- void SAL_CALL OPreparedStatement::setObjectWithInfo( sal_Int32 parameterIndex, const Any& x, sal_Int32 sqlType, sal_Int32 scale ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setObjectWithInfo" ); switch(sqlType) { case DataType::DECIMAL: @@ -327,28 +356,36 @@ void SAL_CALL OPreparedStatement::setObjectWithInfo( sal_Int32 parameterIndex, c void SAL_CALL OPreparedStatement::setObjectNull( sal_Int32 parameterIndex, sal_Int32 sqlType, const ::rtl::OUString& /*typeName*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setObjectNull" ); setNull(parameterIndex,sqlType); } // ------------------------------------------------------------------------- -void SAL_CALL OPreparedStatement::setObject( sal_Int32 /*parameterIndex*/, const Any& /*x*/ ) throw(SQLException, RuntimeException) +void SAL_CALL OPreparedStatement::setObject( sal_Int32 parameterIndex, const Any& x ) throw(SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(OStatement_BASE::rBHelper.bDisposed); - - throwFeatureNotImplementedException( "XParameters::setObject", *this ); + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setObject" ); + if(!::dbtools::implSetObject(this,parameterIndex,x)) + { + const ::rtl::OUString sError( m_pConnection->getResources().getResourceStringWithSubstitution( + STR_UNKNOWN_PARA_TYPE, + "$position$", ::rtl::OUString::valueOf(parameterIndex) + ) ); + ::dbtools::throwGenericSQLException(sError,*this); + } // setObject (parameterIndex, x, sqlType, 0); } // ------------------------------------------------------------------------- void SAL_CALL OPreparedStatement::setShort( sal_Int32 parameterIndex, sal_Int16 x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setShort" ); setParameter(parameterIndex,x); } // ------------------------------------------------------------------------- void SAL_CALL OPreparedStatement::setBytes( sal_Int32 parameterIndex, const Sequence< sal_Int8 >& x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setBytes" ); setParameter(parameterIndex,x); } // ------------------------------------------------------------------------- @@ -356,12 +393,14 @@ void SAL_CALL OPreparedStatement::setBytes( sal_Int32 parameterIndex, const Sequ void SAL_CALL OPreparedStatement::setCharacterStream( sal_Int32 parameterIndex, const Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setCharacterStream" ); setBinaryStream(parameterIndex,x,length ); } // ------------------------------------------------------------------------- void SAL_CALL OPreparedStatement::setBinaryStream( sal_Int32 parameterIndex, const Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setBinaryStream" ); if(!x.is()) ::dbtools::throwFunctionSequenceException(*this); @@ -373,6 +412,7 @@ void SAL_CALL OPreparedStatement::setBinaryStream( sal_Int32 parameterIndex, con void SAL_CALL OPreparedStatement::clearParameters( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::clearParameters" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OStatement_BASE::rBHelper.bDisposed); @@ -382,11 +422,13 @@ void SAL_CALL OPreparedStatement::clearParameters( ) throw(SQLException, Runtim // ------------------------------------------------------------------------- OResultSet* OPreparedStatement::createResultSet() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::createResultSet" ); return new OResultSet(this,m_aSQLIterator); } // ----------------------------------------------------------------------------- Reference OPreparedStatement::initResultSet() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::initResultSet" ); m_pResultSet->clear(); Reference xRs(m_pResultSet); @@ -413,6 +455,7 @@ void SAL_CALL OPreparedStatement::release() throw() // ----------------------------------------------------------------------------- void OPreparedStatement::checkAndResizeParameters(sal_Int32 parameterIndex) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::checkAndResizeParameters" ); ::connectivity::checkDisposed(OStatement_BASE::rBHelper.bDisposed); if ( m_aAssignValues.isValid() && (parameterIndex < 1 || parameterIndex >= static_cast(m_aParameterIndexes.size())) ) throwInvalidIndexException(*this); @@ -430,6 +473,7 @@ void OPreparedStatement::checkAndResizeParameters(sal_Int32 parameterIndex) // ----------------------------------------------------------------------------- void OPreparedStatement::setParameter(sal_Int32 parameterIndex, const ORowSetValue& x) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::setParameter" ); ::osl::MutexGuard aGuard( m_aMutex ); checkAndResizeParameters(parameterIndex); @@ -441,6 +485,7 @@ void OPreparedStatement::setParameter(sal_Int32 parameterIndex, const ORowSetVal // ----------------------------------------------------------------------------- UINT32 OPreparedStatement::AddParameter(OSQLParseNode * pParameter, const Reference& _xCol) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::AddParameter" ); OSL_UNUSED( pParameter ); OSL_ENSURE(SQL_ISRULE(pParameter,parameter),"OResultSet::AddParameter: Argument ist kein Parameter"); OSL_ENSURE(pParameter->count() > 0,"OResultSet: Fehler im Parse Tree"); @@ -484,6 +529,7 @@ UINT32 OPreparedStatement::AddParameter(OSQLParseNode * pParameter, const Refere // ----------------------------------------------------------------------------- void OPreparedStatement::describeColumn(OSQLParseNode* _pParameter,OSQLParseNode* _pNode,const OSQLTable& _xTable) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::describeColumn" ); Reference xProp; if(SQL_ISRULE(_pNode,column_ref)) { @@ -503,6 +549,7 @@ void OPreparedStatement::describeColumn(OSQLParseNode* _pParameter,OSQLParseNode // ------------------------------------------------------------------------- void OPreparedStatement::describeParameter() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::describeParameter" ); ::std::vector< OSQLParseNode*> aParseNodes; scanParameter(m_pParseTree,aParseNodes); if ( !aParseNodes.empty() ) @@ -523,6 +570,7 @@ void OPreparedStatement::describeParameter() // ----------------------------------------------------------------------------- void OPreparedStatement::initializeResultSet(OResultSet* _pResult) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::initializeResultSet" ); OStatement_Base::initializeResultSet(_pResult); m_pResultSet->setParameterColumns(m_xParamColumns); @@ -570,6 +618,7 @@ void OPreparedStatement::initializeResultSet(OResultSet* _pResult) // ----------------------------------------------------------------------------- void OPreparedStatement::parseParamterElem(const String& _sColumnName,OSQLParseNode* pRow_Value_Constructor_Elem) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::parseParamterElem" ); Reference xCol; m_xColNames->getByName(_sColumnName) >>= xCol; sal_Int32 nParameter = -1; diff --git a/connectivity/source/drivers/file/FResultSet.cxx b/connectivity/source/drivers/file/FResultSet.cxx index 880573431a..03f0d6f317 100644 --- a/connectivity/source/drivers/file/FResultSet.cxx +++ b/connectivity/source/drivers/file/FResultSet.cxx @@ -62,6 +62,7 @@ #include #include "resource/file_res.hrc" #include "resource/sharedresources.hxx" +#include using namespace ::comphelper; @@ -121,6 +122,7 @@ OResultSet::OResultSet(OStatement_Base* pStmt,OSQLParseTreeIterator& _aSQLIterat ,m_nLastVisitedPos(-1) ,m_nRowCountResult(-1) ,m_nCurrentPosition(0) + ,m_nColumnCount(0) ,m_bWasNull(sal_False) ,m_bEOF(sal_False) ,m_bLastRecord(sal_False) @@ -129,9 +131,18 @@ OResultSet::OResultSet(OStatement_Base* pStmt,OSQLParseTreeIterator& _aSQLIterat ,m_bRowInserted(sal_False) ,m_bRowDeleted(sal_False) ,m_bShowDeleted(pStmt->getOwnConnection()->showDeleted()) + ,m_bIsCount(sal_False) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::OResultSet" ); DBG_CTOR( file_OResultSet, NULL ); osl_incrementInterlockedCount( &m_refCount ); + m_bIsCount = (m_pParseTree && + m_pParseTree->count() > 2 && + SQL_ISRULE(m_pParseTree->getChild(2),scalar_exp_commalist) && + SQL_ISRULE(m_pParseTree->getChild(2)->getChild(0),derived_column) && + SQL_ISRULE(m_pParseTree->getChild(2)->getChild(0)->getChild(0),general_set_fct) && + m_pParseTree->getChild(2)->getChild(0)->getChild(0)->count() == 4 + ); m_nResultSetConcurrency = isCount() ? ResultSetConcurrency::READ_ONLY : ResultSetConcurrency::UPDATABLE; construct(); @@ -142,6 +153,7 @@ OResultSet::OResultSet(OStatement_Base* pStmt,OSQLParseTreeIterator& _aSQLIterat // ------------------------------------------------------------------------- OResultSet::~OResultSet() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::~OResultSet" ); osl_incrementInterlockedCount( &m_refCount ); disposing(); DBG_DTOR( file_OResultSet, NULL ); @@ -149,6 +161,7 @@ OResultSet::~OResultSet() // ------------------------------------------------------------------------- void OResultSet::construct() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::construct" ); registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_FETCHSIZE), PROPERTY_ID_FETCHSIZE, 0,&m_nFetchSize, ::getCppuType(reinterpret_cast(NULL))); registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_RESULTSETTYPE), PROPERTY_ID_RESULTSETTYPE, PropertyAttribute::READONLY,&m_nResultSetType, ::getCppuType(reinterpret_cast(NULL))); registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_FETCHDIRECTION), PROPERTY_ID_FETCHDIRECTION, 0,&m_nFetchDirection, ::getCppuType(reinterpret_cast(NULL))); @@ -157,6 +170,7 @@ void OResultSet::construct() // ------------------------------------------------------------------------- void OResultSet::disposing(void) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::disposing" ); OPropertySetHelper::disposing(); ::osl::MutexGuard aGuard(m_aMutex); @@ -181,6 +195,7 @@ void OResultSet::disposing(void) // ----------------------------------------------------------------------------- void OResultSet::clear() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::clear" ); m_pFileSet = NULL; DELETEZ(m_pSortIndex); @@ -192,12 +207,14 @@ void OResultSet::clear() // ------------------------------------------------------------------------- Any SAL_CALL OResultSet::queryInterface( const Type & rType ) throw(RuntimeException) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::queryInterface" ); Any aRet = OPropertySetHelper::queryInterface(rType); return aRet.hasValue() ? aRet : OResultSet_BASE::queryInterface(rType); } // ------------------------------------------------------------------------- Sequence< Type > SAL_CALL OResultSet::getTypes( ) throw(RuntimeException) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getTypes" ); ::osl::MutexGuard aGuard( m_aMutex ); OTypeCollection aTypes( ::getCppuType( (const Reference< ::com::sun::star::beans::XMultiPropertySet > *)0 ), @@ -210,6 +227,7 @@ Sequence< Type > SAL_CALL OResultSet::getTypes( ) throw(RuntimeException) sal_Int32 SAL_CALL OResultSet::findColumn( const ::rtl::OUString& columnName ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::findColumn" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -226,6 +244,7 @@ sal_Int32 SAL_CALL OResultSet::findColumn( const ::rtl::OUString& columnName ) t // ----------------------------------------------------------------------------- const ORowSetValue& OResultSet::getValue(sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getValue" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -239,67 +258,78 @@ const ORowSetValue& OResultSet::getValue(sal_Int32 columnIndex ) throw(::com::su // ----------------------------------------------------------------------------- void OResultSet::checkIndex(sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::checkIndex" ); if ( columnIndex <= 0 // || columnIndex > (sal_Int32)m_xColumns->size() - || columnIndex >= (sal_Int32)m_aSelectRow->get().size() ) + || columnIndex >= m_nColumnCount ) ::dbtools::throwInvalidIndexException(*this); } // ------------------------------------------------------------------------- Reference< ::com::sun::star::io::XInputStream > SAL_CALL OResultSet::getBinaryStream( sal_Int32 /*columnIndex*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getBinaryStream" ); return NULL; } // ------------------------------------------------------------------------- Reference< ::com::sun::star::io::XInputStream > SAL_CALL OResultSet::getCharacterStream( sal_Int32 /*columnIndex*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getCharacterStream" ); return NULL; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL OResultSet::getBoolean( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getBoolean" ); return getValue(columnIndex); } // ------------------------------------------------------------------------- sal_Int8 SAL_CALL OResultSet::getByte( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getByte" ); return getValue(columnIndex); } // ------------------------------------------------------------------------- Sequence< sal_Int8 > SAL_CALL OResultSet::getBytes( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getBytes" ); return getValue(columnIndex); } // ------------------------------------------------------------------------- ::com::sun::star::util::Date SAL_CALL OResultSet::getDate( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getDate" ); return getValue(columnIndex); } // ------------------------------------------------------------------------- double SAL_CALL OResultSet::getDouble( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getDouble" ); return getValue(columnIndex); } // ------------------------------------------------------------------------- float SAL_CALL OResultSet::getFloat( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getFloat" ); return getValue(columnIndex); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL OResultSet::getInt( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getInt" ); return getValue(columnIndex); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL OResultSet::getRow( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getRow" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -311,12 +341,14 @@ sal_Int32 SAL_CALL OResultSet::getRow( ) throw(SQLException, RuntimeException) sal_Int64 SAL_CALL OResultSet::getLong( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getLong" ); return getValue(columnIndex); } // ------------------------------------------------------------------------- Reference< XResultSetMetaData > SAL_CALL OResultSet::getMetaData( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getMetaData" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -328,6 +360,7 @@ Reference< XResultSetMetaData > SAL_CALL OResultSet::getMetaData( ) throw(SQLEx // ------------------------------------------------------------------------- Reference< XArray > SAL_CALL OResultSet::getArray( sal_Int32 /*columnIndex*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getArray" ); return NULL; } @@ -335,50 +368,59 @@ Reference< XArray > SAL_CALL OResultSet::getArray( sal_Int32 /*columnIndex*/ ) t Reference< XClob > SAL_CALL OResultSet::getClob( sal_Int32 /*columnIndex*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getClob" ); return NULL; } // ------------------------------------------------------------------------- Reference< XBlob > SAL_CALL OResultSet::getBlob( sal_Int32 /*columnIndex*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getBlob" ); return NULL; } // ------------------------------------------------------------------------- Reference< XRef > SAL_CALL OResultSet::getRef( sal_Int32 /*columnIndex*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getRef" ); return NULL; } // ------------------------------------------------------------------------- Any SAL_CALL OResultSet::getObject( sal_Int32 columnIndex, const Reference< ::com::sun::star::container::XNameAccess >& /*typeMap*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getObject" ); return getValue(columnIndex).makeAny(); } // ------------------------------------------------------------------------- sal_Int16 SAL_CALL OResultSet::getShort( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getShort" ); return getValue(columnIndex); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL OResultSet::getString( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getString" ); return getValue(columnIndex); } // ------------------------------------------------------------------------- ::com::sun::star::util::Time SAL_CALL OResultSet::getTime( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getTime" ); return getValue(columnIndex); } // ------------------------------------------------------------------------- ::com::sun::star::util::DateTime SAL_CALL OResultSet::getTimestamp( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getTimestamp" ); return getValue(columnIndex); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL OResultSet::isAfterLast( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::isAfterLast" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -388,6 +430,7 @@ sal_Bool SAL_CALL OResultSet::isAfterLast( ) throw(SQLException, RuntimeExcepti // ------------------------------------------------------------------------- sal_Bool SAL_CALL OResultSet::isFirst( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::isFirst" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -397,6 +440,7 @@ sal_Bool SAL_CALL OResultSet::isFirst( ) throw(SQLException, RuntimeException) // ------------------------------------------------------------------------- sal_Bool SAL_CALL OResultSet::isLast( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::isLast" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -406,6 +450,7 @@ sal_Bool SAL_CALL OResultSet::isLast( ) throw(SQLException, RuntimeException) // ------------------------------------------------------------------------- void SAL_CALL OResultSet::beforeFirst( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::beforeFirst" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -416,6 +461,7 @@ void SAL_CALL OResultSet::beforeFirst( ) throw(SQLException, RuntimeException) // ------------------------------------------------------------------------- void SAL_CALL OResultSet::afterLast( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::afterLast" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -428,12 +474,14 @@ void SAL_CALL OResultSet::afterLast( ) throw(SQLException, RuntimeException) void SAL_CALL OResultSet::close( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::close" ); dispose(); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL OResultSet::first( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::first" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); return m_pTable ? m_aSkipDeletedSet.skipDeleted(IResultSetHelper::FIRST,1,sal_True) : sal_False; @@ -442,6 +490,7 @@ sal_Bool SAL_CALL OResultSet::first( ) throw(SQLException, RuntimeException) sal_Bool SAL_CALL OResultSet::last( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::last" ); // here I know definitely that I stand on the last record ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -450,6 +499,7 @@ sal_Bool SAL_CALL OResultSet::last( ) throw(SQLException, RuntimeException) // ------------------------------------------------------------------------- sal_Bool SAL_CALL OResultSet::absolute( sal_Int32 row ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::absolute" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); return m_pTable ? m_aSkipDeletedSet.skipDeleted(IResultSetHelper::ABSOLUTE,row,sal_True) : sal_False; @@ -457,6 +507,7 @@ sal_Bool SAL_CALL OResultSet::absolute( sal_Int32 row ) throw(SQLException, Runt // ------------------------------------------------------------------------- sal_Bool SAL_CALL OResultSet::relative( sal_Int32 row ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::relative" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); return m_pTable ? m_aSkipDeletedSet.skipDeleted(IResultSetHelper::RELATIVE,row,sal_True) : sal_False; @@ -464,6 +515,7 @@ sal_Bool SAL_CALL OResultSet::relative( sal_Int32 row ) throw(SQLException, Runt // ------------------------------------------------------------------------- sal_Bool SAL_CALL OResultSet::previous( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::previous" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); return m_pTable ? m_aSkipDeletedSet.skipDeleted(IResultSetHelper::PRIOR,0,sal_True) : sal_False; @@ -471,6 +523,7 @@ sal_Bool SAL_CALL OResultSet::previous( ) throw(SQLException, RuntimeException) // ------------------------------------------------------------------------- Reference< XInterface > SAL_CALL OResultSet::getStatement( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getStatement" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -481,6 +534,7 @@ Reference< XInterface > SAL_CALL OResultSet::getStatement( ) throw(SQLException sal_Bool SAL_CALL OResultSet::rowDeleted( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::rowDeleted" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -498,6 +552,7 @@ sal_Bool SAL_CALL OResultSet::rowInserted( ) throw(SQLException, RuntimeExcepti // ------------------------------------------------------------------------- sal_Bool SAL_CALL OResultSet::rowUpdated( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::rowInserted" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -508,6 +563,7 @@ sal_Bool SAL_CALL OResultSet::rowUpdated( ) throw(SQLException, RuntimeExceptio sal_Bool SAL_CALL OResultSet::isBeforeFirst( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::isBeforeFirst" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -517,6 +573,7 @@ sal_Bool SAL_CALL OResultSet::isBeforeFirst( ) throw(SQLException, RuntimeExcep // ------------------------------------------------------------------------- sal_Bool OResultSet::evaluate() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::evaluate" ); OSL_ENSURE(m_pSQLAnalyzer,"OResultSet::evaluate: Analyzer isn't set!"); sal_Bool bRet = sal_True; while(!m_pSQLAnalyzer->evaluateRestriction()) @@ -549,6 +606,7 @@ sal_Bool OResultSet::evaluate() sal_Bool SAL_CALL OResultSet::next( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::next" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -558,6 +616,7 @@ sal_Bool SAL_CALL OResultSet::next( ) throw(SQLException, RuntimeException) sal_Bool SAL_CALL OResultSet::wasNull( ) throw(SQLException, RuntimeException) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::wasNull" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -567,19 +626,23 @@ sal_Bool SAL_CALL OResultSet::wasNull( ) throw(SQLException, RuntimeException) void SAL_CALL OResultSet::cancel( ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::cancel" ); } // ------------------------------------------------------------------------- void SAL_CALL OResultSet::clearWarnings( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::clearWarnings" ); } // ------------------------------------------------------------------------- Any SAL_CALL OResultSet::getWarnings( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getWarnings" ); return Any(); } // ------------------------------------------------------------------------- void SAL_CALL OResultSet::insertRow( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::insertRow" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -604,6 +667,7 @@ void SAL_CALL OResultSet::insertRow( ) throw(SQLException, RuntimeException) // ------------------------------------------------------------------------- void SAL_CALL OResultSet::updateRow( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateRow" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -618,6 +682,7 @@ void SAL_CALL OResultSet::updateRow( ) throw(SQLException, RuntimeException) // ------------------------------------------------------------------------- void SAL_CALL OResultSet::deleteRow() throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::deleteRow" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -641,6 +706,7 @@ void SAL_CALL OResultSet::deleteRow() throw(SQLException, RuntimeException) // ------------------------------------------------------------------------- void SAL_CALL OResultSet::cancelRowUpdates( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::cancelRowUpdates" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -664,6 +730,7 @@ void SAL_CALL OResultSet::cancelRowUpdates( ) throw(SQLException, RuntimeExcept void SAL_CALL OResultSet::moveToInsertRow( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::moveToInsertRow" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -683,10 +750,12 @@ void SAL_CALL OResultSet::moveToInsertRow( ) throw(SQLException, RuntimeExcepti void SAL_CALL OResultSet::moveToCurrentRow( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::moveToCurrentRow" ); } // ------------------------------------------------------------------------- void OResultSet::updateValue(sal_Int32 columnIndex ,const ORowSetValue& x) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateValue" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -700,6 +769,7 @@ void OResultSet::updateValue(sal_Int32 columnIndex ,const ORowSetValue& x) throw void SAL_CALL OResultSet::updateNull( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateNull" ); ORowSetValue aEmpty; updateValue(columnIndex,aEmpty); } @@ -707,71 +777,84 @@ void SAL_CALL OResultSet::updateNull( sal_Int32 columnIndex ) throw(SQLException void SAL_CALL OResultSet::updateBoolean( sal_Int32 columnIndex, sal_Bool x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateBoolean" ); updateValue(columnIndex,x); } // ------------------------------------------------------------------------- void SAL_CALL OResultSet::updateByte( sal_Int32 columnIndex, sal_Int8 x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateByte" ); updateValue(columnIndex,x); } // ------------------------------------------------------------------------- void SAL_CALL OResultSet::updateShort( sal_Int32 columnIndex, sal_Int16 x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateShort" ); updateValue(columnIndex,x); } // ------------------------------------------------------------------------- void SAL_CALL OResultSet::updateInt( sal_Int32 columnIndex, sal_Int32 x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateInt" ); updateValue(columnIndex,x); } // ------------------------------------------------------------------------- void SAL_CALL OResultSet::updateLong( sal_Int32 /*columnIndex*/, sal_Int64 /*x*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateLong" ); ::dbtools::throwFeatureNotImplementedException( "XRowUpdate::updateLong", *this ); } // ----------------------------------------------------------------------- void SAL_CALL OResultSet::updateFloat( sal_Int32 columnIndex, float x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateFloat" ); updateValue(columnIndex,x); } // ------------------------------------------------------------------------- void SAL_CALL OResultSet::updateDouble( sal_Int32 columnIndex, double x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateDouble" ); updateValue(columnIndex,x); } // ------------------------------------------------------------------------- void SAL_CALL OResultSet::updateString( sal_Int32 columnIndex, const ::rtl::OUString& x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateString" ); updateValue(columnIndex,x); } // ------------------------------------------------------------------------- void SAL_CALL OResultSet::updateBytes( sal_Int32 columnIndex, const Sequence< sal_Int8 >& x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateBytes" ); updateValue(columnIndex,x); } // ------------------------------------------------------------------------- void SAL_CALL OResultSet::updateDate( sal_Int32 columnIndex, const ::com::sun::star::util::Date& x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateDate" ); updateValue(columnIndex,x); } // ------------------------------------------------------------------------- void SAL_CALL OResultSet::updateTime( sal_Int32 columnIndex, const ::com::sun::star::util::Time& x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateTime" ); updateValue(columnIndex,x); } // ------------------------------------------------------------------------- void SAL_CALL OResultSet::updateTimestamp( sal_Int32 columnIndex, const ::com::sun::star::util::DateTime& x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateTimestamp" ); updateValue(columnIndex,x); } // ------------------------------------------------------------------------- void SAL_CALL OResultSet::updateBinaryStream( sal_Int32 columnIndex, const Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateBinaryStream" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); @@ -785,17 +868,20 @@ void SAL_CALL OResultSet::updateBinaryStream( sal_Int32 columnIndex, const Refer // ------------------------------------------------------------------------- void SAL_CALL OResultSet::updateCharacterStream( sal_Int32 columnIndex, const Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateCharacterStream" ); updateBinaryStream(columnIndex,x,length); } // ------------------------------------------------------------------------- void SAL_CALL OResultSet::refreshRow( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::refreshRow" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); } // ------------------------------------------------------------------------- void SAL_CALL OResultSet::updateObject( sal_Int32 columnIndex, const Any& x ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateObject" ); if (!::dbtools::implUpdateObject(this, columnIndex, x)) throw SQLException(); } @@ -803,12 +889,14 @@ void SAL_CALL OResultSet::updateObject( sal_Int32 columnIndex, const Any& x ) th void SAL_CALL OResultSet::updateNumericObject( sal_Int32 columnIndex, const Any& x, sal_Int32 /*scale*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::updateNumericObject" ); if (!::dbtools::implUpdateObject(this, columnIndex, x)) throw SQLException(); } // ------------------------------------------------------------------------- IPropertyArrayHelper* OResultSet::createArrayHelper( ) const { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::createArrayHelper" ); Sequence< Property > aProps; describeProperties(aProps); return new ::cppu::OPropertyArrayHelper(aProps); @@ -816,6 +904,7 @@ IPropertyArrayHelper* OResultSet::createArrayHelper( ) const // ------------------------------------------------------------------------- IPropertyArrayHelper & OResultSet::getInfoHelper() { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getInfoHelper" ); return *const_cast(this)->getArrayHelper(); } @@ -825,6 +914,7 @@ BOOL OResultSet::ExecuteRow(IResultSetHelper::Movement eFirstCursorPosition, BOOL bEvaluate, BOOL bRetrieveData) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::ExecuteRow" ); OSL_ENSURE(m_pSQLAnalyzer,"OResultSet::ExecuteRow: Analyzer isn't set!"); // Fuer weitere Fetch-Operationen werden diese Angaben ggf. veraendert ... @@ -956,6 +1046,7 @@ again: //------------------------------------------------------------------- BOOL OResultSet::Move(IResultSetHelper::Movement eCursorPosition, INT32 nOffset, BOOL bRetrieveData) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::Move" ); //IgnoreDeletedRows: // @@ -1171,6 +1262,7 @@ Error: // ------------------------------------------------------------------------- void OResultSet::sortRows() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::sortRows" ); if (!m_pSQLAnalyzer->hasRestriction() && m_aOrderbyColumnNumber.size() == 1) { // Ist nur ein Feld fuer die Sortierung angegeben @@ -1274,6 +1366,7 @@ void OResultSet::sortRows() // ------------------------------------------------------------------------- BOOL OResultSet::OpenImpl() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::OpenImpl" ); OSL_ENSURE(m_pSQLAnalyzer,"No analyzer set with setSqlAnalyzer!"); if(!m_pTable) { @@ -1402,9 +1495,9 @@ BOOL OResultSet::OpenImpl() // Aber Achtung: es wird davon ausgegangen, das die FilePositionen als Folge 1..n // abgelegt werden! { - if(m_pTable->getCurrentLastPos() > 0) - m_pFileSet->get().reserve(m_pTable->getCurrentLastPos() ); - for (sal_Int32 i = 0; i < m_pTable->getCurrentLastPos(); i++) + if ( m_nLastVisitedPos > 0) + m_pFileSet->get().reserve( m_nLastVisitedPos ); + for (sal_Int32 i = 0; i < m_nLastVisitedPos; i++) m_pFileSet->get().push_back(i + 1); } } @@ -1559,6 +1652,7 @@ BOOL OResultSet::OpenImpl() //-------------------------------------------------------------------------- Sequence< sal_Int8 > OResultSet::getUnoTunnelImplementationId() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getUnoTunnelImplementationId" ); static ::cppu::OImplementationId * pId = 0; if (! pId) { @@ -1576,6 +1670,7 @@ Sequence< sal_Int8 > OResultSet::getUnoTunnelImplementationId() //------------------------------------------------------------------ sal_Int64 OResultSet::getSomething( const Sequence< sal_Int8 > & rId ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getSomething" ); return (rId.getLength() == 16 && 0 == rtl_compareMemory(getUnoTunnelImplementationId().getConstArray(), rId.getConstArray(), 16 ) ) ? reinterpret_cast< sal_Int64 >( this ) : 0; @@ -1589,6 +1684,7 @@ void OResultSet::setBoundedColumns(const OValueRefRow& _rRow, const Reference& _xMetaData, ::std::vector& _rColMapping) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::setBoundedColumns" ); ::comphelper::UStringMixEqual aCase(_xMetaData->storesMixedCaseQuotedIdentifiers()); Reference xTableColumn; @@ -1699,7 +1795,6 @@ void OResultSet::setBoundedColumns(const OValueRefRow& _rRow, } } // ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- void SAL_CALL OResultSet::acquire() throw() { OResultSet_BASE::acquire(); @@ -1712,11 +1807,13 @@ void SAL_CALL OResultSet::release() throw() // ----------------------------------------------------------------------------- Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL OResultSet::getPropertySetInfo( ) throw(RuntimeException) { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getPropertySetInfo" ); return ::cppu::OPropertySetHelper::createPropertySetInfo(getInfoHelper()); } // ----------------------------------------------------------------------------- void OResultSet::doTableSpecials(const OSQLTable& _xTable) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::doTableSpecials" ); Reference< ::com::sun::star::lang::XUnoTunnel> xTunnel(_xTable,UNO_QUERY); if(xTunnel.is()) { @@ -1728,6 +1825,7 @@ void OResultSet::doTableSpecials(const OSQLTable& _xTable) // ----------------------------------------------------------------------------- void OResultSet::clearInsertRow() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::clearInsertRow" ); m_aRow->setDeleted(sal_False); // set to false here because this is the new row OValueRefVector::Vector::iterator aIter = m_aInsertRow->get().begin(); const OValueRefVector::Vector::iterator aEnd = m_aInsertRow->get().end(); @@ -1746,6 +1844,7 @@ void OResultSet::clearInsertRow() // ----------------------------------------------------------------------------- void OResultSet::initializeRow(OValueRefRow& _rRow,sal_Int32 _nColumnCount) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::initializeRow" ); if(!_rRow.isValid()) { _rRow = new OValueRefVector(_nColumnCount); @@ -1756,31 +1855,37 @@ void OResultSet::initializeRow(OValueRefRow& _rRow,sal_Int32 _nColumnCount) // ----------------------------------------------------------------------------- sal_Bool OResultSet::fillIndexValues(const Reference< XColumnsSupplier> &/*_xIndex*/) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::fillIndexValues" ); return sal_False; } // ----------------------------------------------------------------------------- sal_Bool OResultSet::move(IResultSetHelper::Movement _eCursorPosition, sal_Int32 _nOffset, sal_Bool _bRetrieveData) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::move" ); return Move(_eCursorPosition,_nOffset,_bRetrieveData); } // ----------------------------------------------------------------------------- sal_Int32 OResultSet::getDriverPos() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::getDriverPos" ); return (m_aRow->get())[0]->getValue(); } // ----------------------------------------------------------------------------- sal_Bool OResultSet::deletedVisible() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::deletedVisible" ); return m_bShowDeleted; } // ----------------------------------------------------------------------------- sal_Bool OResultSet::isRowDeleted() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::isRowDeleted" ); return m_aRow->isDeleted(); } // ----------------------------------------------------------------------------- void SAL_CALL OResultSet::disposing( const EventObject& Source ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::disposing" ); // Reference xInt = m_pTable; Reference xProp = m_pTable; if(m_pTable && Source.Source == xProp) diff --git a/connectivity/source/drivers/file/FResultSetMetaData.cxx b/connectivity/source/drivers/file/FResultSetMetaData.cxx index 3282682e36..6c8f899575 100644 --- a/connectivity/source/drivers/file/FResultSetMetaData.cxx +++ b/connectivity/source/drivers/file/FResultSetMetaData.cxx @@ -35,6 +35,7 @@ #include #include "connectivity/dbexception.hxx" #include +#include using namespace ::comphelper; using namespace connectivity; @@ -53,6 +54,7 @@ OResultSetMetaData::OResultSetMetaData(const ::vos::ORef (sal_Int32)(sal_Int32)m_xColumns->get().size()) throwInvalidIndexException(*this); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL OResultSetMetaData::getColumnDisplaySize( sal_Int32 column ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::getColumnDisplaySize" ); return getPrecision(column); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL OResultSetMetaData::getColumnType( sal_Int32 column ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::getColumnType" ); checkColumnIndex(column); return getINT32((m_xColumns->get())[column-1]->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE))); } @@ -82,24 +87,28 @@ sal_Int32 SAL_CALL OResultSetMetaData::getColumnType( sal_Int32 column ) throw(S sal_Int32 SAL_CALL OResultSetMetaData::getColumnCount( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::getColumnCount" ); return (m_xColumns->get()).size(); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL OResultSetMetaData::isCaseSensitive( sal_Int32 /*column*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::isCaseSensitive" ); return sal_False; } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL OResultSetMetaData::getSchemaName( sal_Int32 /*column*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::getSchemaName" ); return ::rtl::OUString(); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL OResultSetMetaData::getColumnName( sal_Int32 column ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::getColumnName" ); checkColumnIndex(column); Any aName((m_xColumns->get())[column-1]->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_NAME))); @@ -108,33 +117,39 @@ sal_Bool SAL_CALL OResultSetMetaData::isCaseSensitive( sal_Int32 /*column*/ ) th // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL OResultSetMetaData::getTableName( sal_Int32 /*column*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::getTableName" ); return m_aTableName; } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL OResultSetMetaData::getCatalogName( sal_Int32 /*column*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::getCatalogName" ); return ::rtl::OUString(); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL OResultSetMetaData::getColumnTypeName( sal_Int32 column ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::getColumnTypeName" ); checkColumnIndex(column); return getString((m_xColumns->get())[column-1]->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPENAME))); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL OResultSetMetaData::getColumnLabel( sal_Int32 column ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::getColumnLabel" ); return getColumnName(column); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL OResultSetMetaData::getColumnServiceName( sal_Int32 /*column*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::getColumnServiceName" ); return ::rtl::OUString(); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL OResultSetMetaData::isCurrency( sal_Int32 column ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::isCurrency" ); checkColumnIndex(column); return getBOOL((m_xColumns->get())[column-1]->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISCURRENCY))); } @@ -142,22 +157,26 @@ sal_Bool SAL_CALL OResultSetMetaData::isCurrency( sal_Int32 column ) throw(SQLEx sal_Bool SAL_CALL OResultSetMetaData::isAutoIncrement( sal_Int32 /*setCatalogcolumn*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::isAutoIncrement" ); return sal_False; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL OResultSetMetaData::isSigned( sal_Int32 /*column*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::isSigned" ); return sal_True; } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL OResultSetMetaData::getPrecision( sal_Int32 column ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::getPrecision" ); checkColumnIndex(column); return getINT32((m_xColumns->get())[column-1]->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_PRECISION))); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL OResultSetMetaData::getScale( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::getScale" ); checkColumnIndex(column); return getINT32((m_xColumns->get())[column-1]->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCALE))); } @@ -165,6 +184,7 @@ sal_Int32 SAL_CALL OResultSetMetaData::getScale( sal_Int32 column ) throw(::com: sal_Int32 SAL_CALL OResultSetMetaData::isNullable( sal_Int32 column ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::isNullable" ); checkColumnIndex(column); return getINT32((m_xColumns->get())[column-1]->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISNULLABLE))); } @@ -172,27 +192,30 @@ sal_Int32 SAL_CALL OResultSetMetaData::isNullable( sal_Int32 column ) throw(SQLE sal_Bool SAL_CALL OResultSetMetaData::isSearchable( sal_Int32 /*column*/ ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::isSearchable" ); return sal_True; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL OResultSetMetaData::isReadOnly( sal_Int32 column ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::isReadOnly" ); checkColumnIndex(column); - sal_Bool bReadOnly = (m_xColumns->get())[column-1]->getPropertySetInfo()->hasPropertyByName(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_FUNCTION)) && - ::cppu::any2bool((m_xColumns->get())[column-1]->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_FUNCTION))); - - return bReadOnly || m_pTable->isReadOnly(); + return m_pTable->isReadOnly() || ( + (m_xColumns->get())[column-1]->getPropertySetInfo()->hasPropertyByName(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_FUNCTION)) && + ::cppu::any2bool((m_xColumns->get())[column-1]->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_FUNCTION)))); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL OResultSetMetaData::isDefinitelyWritable( sal_Int32 column ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::isDefinitelyWritable" ); return !isReadOnly(column); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL OResultSetMetaData::isWritable( sal_Int32 column ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSetMetaData::isWritable" ); return !isReadOnly(column); } // ------------------------------------------------------------------------- diff --git a/connectivity/source/drivers/file/FStatement.cxx b/connectivity/source/drivers/file/FStatement.cxx index 3984714b31..68624bb584 100644 --- a/connectivity/source/drivers/file/FStatement.cxx +++ b/connectivity/source/drivers/file/FStatement.cxx @@ -48,6 +48,7 @@ #include "resource/file_res.hrc" #include #include +#include #define THROW_SQL(x) \ OTools::ThrowException(x,m_aStatementHandle,SQL_HANDLE_STMT,*this) @@ -89,6 +90,7 @@ OStatement_Base::OStatement_Base(OConnection* _pConnection ) ,m_bEscapeProcessing(sal_True) ,rBHelper(OStatement_BASE::rBHelper) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::OStatement_Base" ); DBG_CTOR( file_OStatement_Base, NULL ); m_pConnection->acquire(); @@ -118,6 +120,7 @@ OStatement_Base::~OStatement_Base() //------------------------------------------------------------------------------ void OStatement_Base::disposeResultSet() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::disposeResultSet" ); // free the cursor if alive Reference< XComponent > xComp(m_xResultSet.get(), UNO_QUERY); if (xComp.is()) @@ -177,15 +180,17 @@ void SAL_CALL OStatement_BASE2::release() throw() //----------------------------------------------------------------------------- Any SAL_CALL OStatement_Base::queryInterface( const Type & rType ) throw(RuntimeException) { - Any aRet = OStatement_BASE::queryInterface(rType); + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::queryInterface" ); + const Any aRet = OStatement_BASE::queryInterface(rType); return aRet.hasValue() ? aRet : OPropertySetHelper::queryInterface(rType); } // ------------------------------------------------------------------------- Sequence< Type > SAL_CALL OStatement_Base::getTypes( ) throw(RuntimeException) { - ::cppu::OTypeCollection aTypes( ::getCppuType( (const Reference< ::com::sun::star::beans::XMultiPropertySet > *)0 ), - ::getCppuType( (const Reference< ::com::sun::star::beans::XFastPropertySet > *)0 ), - ::getCppuType( (const Reference< ::com::sun::star::beans::XPropertySet > *)0 )); + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::getTypes" ); + ::cppu::OTypeCollection aTypes( ::getCppuType( (const Reference< ::com::sun::star::beans::XMultiPropertySet > *)0 ), + ::getCppuType( (const Reference< ::com::sun::star::beans::XFastPropertySet > *)0 ), + ::getCppuType( (const Reference< ::com::sun::star::beans::XPropertySet > *)0 )); return ::comphelper::concatSequences(aTypes.getTypes(),OStatement_BASE::getTypes()); } @@ -193,11 +198,13 @@ Sequence< Type > SAL_CALL OStatement_Base::getTypes( ) throw(RuntimeException) void SAL_CALL OStatement_Base::cancel( ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::cancel" ); } // ------------------------------------------------------------------------- void SAL_CALL OStatement_Base::close( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::close" ); { ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OStatement_BASE::rBHelper.bDisposed); @@ -208,6 +215,7 @@ void SAL_CALL OStatement_Base::close( ) throw(SQLException, RuntimeException) void OStatement_Base::reset() throw (SQLException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::reset" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OStatement_BASE::rBHelper.bDisposed); @@ -224,6 +232,7 @@ void OStatement_Base::reset() throw (SQLException) void OStatement_Base::clearMyResultSet () throw (SQLException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::clearMyResultSet " ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OStatement_BASE::rBHelper.bDisposed); @@ -244,6 +253,7 @@ void OStatement_Base::clearMyResultSet () throw (SQLException) void OStatement_Base::setWarning (const SQLWarning &ex) throw( SQLException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::setWarning " ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OStatement_BASE::rBHelper.bDisposed); @@ -254,6 +264,7 @@ void OStatement_Base::setWarning (const SQLWarning &ex) throw( SQLException) // ------------------------------------------------------------------------- Any SAL_CALL OStatement_Base::getWarnings( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::getWarnings" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OStatement_BASE::rBHelper.bDisposed); @@ -262,6 +273,7 @@ Any SAL_CALL OStatement_Base::getWarnings( ) throw(SQLException, RuntimeExcepti // ------------------------------------------------------------------------- void SAL_CALL OStatement_Base::clearWarnings( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::clearWarnings" ); ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OStatement_BASE::rBHelper.bDisposed); @@ -270,6 +282,7 @@ void SAL_CALL OStatement_Base::clearWarnings( ) throw(SQLException, RuntimeExce // ------------------------------------------------------------------------- ::cppu::IPropertyArrayHelper* OStatement_Base::createArrayHelper( ) const { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::createArrayHelper" ); Sequence< Property > aProps; describeProperties(aProps); return new ::cppu::OPropertyArrayHelper(aProps); @@ -278,6 +291,7 @@ void SAL_CALL OStatement_Base::clearWarnings( ) throw(SQLException, RuntimeExce // ------------------------------------------------------------------------- ::cppu::IPropertyArrayHelper & OStatement_Base::getInfoHelper() { + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::getInfoHelper" ); return *const_cast(this)->getArrayHelper(); } // ------------------------------------------------------------------------- @@ -350,6 +364,7 @@ sal_Int32 SAL_CALL OStatement::executeUpdate( const ::rtl::OUString& sql ) throw // ----------------------------------------------------------------------------- void SAL_CALL OStatement_Base::disposing(void) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::disposing" ); if(m_aEvaluateRow.isValid()) { m_aEvaluateRow->get().clear(); @@ -361,6 +376,7 @@ void SAL_CALL OStatement_Base::disposing(void) // ----------------------------------------------------------------------------- Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL OStatement_Base::getPropertySetInfo( ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::getPropertySetInfo" ); return ::cppu::OPropertySetHelper::createPropertySetInfo(getInfoHelper()); } // ----------------------------------------------------------------------------- @@ -372,11 +388,13 @@ Any SAL_CALL OStatement::queryInterface( const Type & rType ) throw(RuntimeExcep // ----------------------------------------------------------------------------- OSQLAnalyzer* OStatement_Base::createAnalyzer() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::createAnalyzer" ); return new OSQLAnalyzer(m_pConnection); } // ----------------------------------------------------------------------------- void OStatement_Base::anylizeSQL() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::anylizeSQL" ); OSL_ENSURE(m_pSQLAnalyzer,"OResultSet::anylizeSQL: Analyzer isn't set!"); // start analysing the statement m_pSQLAnalyzer->setOrigColumns(m_xColNames); @@ -408,6 +426,7 @@ void OStatement_Base::anylizeSQL() void OStatement_Base::setOrderbyColumn( OSQLParseNode* pColumnRef, OSQLParseNode* pAscendingDescending) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::setOrderbyColumn" ); ::rtl::OUString aColumnName; if (pColumnRef->count() == 1) aColumnName = pColumnRef->getChild(0)->getTokenValue(); @@ -456,6 +475,7 @@ void OStatement_Base::setOrderbyColumn( OSQLParseNode* pColumnRef, // ----------------------------------------------------------------------------- void OStatement_Base::construct(const ::rtl::OUString& sql) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::construct" ); ::rtl::OUString aErr; m_pParseTree = m_aParser.parseTree(aErr,sql); if(m_pParseTree) @@ -531,6 +551,7 @@ void OStatement_Base::construct(const ::rtl::OUString& sql) throw(SQLException, // ----------------------------------------------------------------------------- void OStatement_Base::createColumnMapping() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::createColumnMapping" ); // initialize the column index map (mapping select columns to table columns) ::vos::ORef xColumns = m_aSQLIterator.getSelectColumns(); m_aColMapping.resize(xColumns->get().size() + 1); @@ -544,6 +565,7 @@ void OStatement_Base::createColumnMapping() // ----------------------------------------------------------------------------- void OStatement_Base::initializeResultSet(OResultSet* _pResult) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::initializeResultSet" ); GetAssignValues(); _pResult->setSqlAnalyzer(m_pSQLAnalyzer); @@ -562,6 +584,7 @@ void OStatement_Base::initializeResultSet(OResultSet* _pResult) // ----------------------------------------------------------------------------- void OStatement_Base::GetAssignValues() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::GetAssignValues" ); if (m_pParseTree == NULL) { ::dbtools::throwFunctionSequenceException(*this); @@ -729,6 +752,7 @@ void OStatement_Base::GetAssignValues() // ------------------------------------------------------------------------- void OStatement_Base::ParseAssignValues(const ::std::vector< String>& aColumnNameList,OSQLParseNode* pRow_Value_Constructor_Elem,xub_StrLen nIndex) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::ParseAssignValues" ); OSL_ENSURE(nIndex <= aColumnNameList.size(),"SdbFileCursor::ParseAssignValues: nIndex > aColumnNameList.GetTokenCount()"); String aColumnName(aColumnNameList[nIndex]); OSL_ENSURE(aColumnName.Len() > 0,"OResultSet: Column-Name nicht gefunden"); @@ -760,6 +784,7 @@ void OStatement_Base::SetAssignValue(const String& aColumnName, BOOL bSetNull, UINT32 nParameter) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::SetAssignValue" ); Reference xCol; m_xColNames->getByName(aColumnName) >>= xCol; sal_Int32 nId = Reference(m_xColNames,UNO_QUERY)->findColumn(aColumnName); @@ -842,8 +867,11 @@ void OStatement_Base::SetAssignValue(const String& aColumnName, // ----------------------------------------------------------------------------- void OStatement_Base::parseParamterElem(const String& /*_sColumnName*/,OSQLParseNode* /*pRow_Value_Constructor_Elem*/) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::parseParamterElem" ); // do nothing here } - } -} +// ============================================================================= + } // namespace file +// ============================================================================= +}// namespace connectivity // ----------------------------------------------------------------------------- diff --git a/connectivity/source/drivers/file/FStringFunctions.cxx b/connectivity/source/drivers/file/FStringFunctions.cxx index 702ea7a47c..3cced25cca 100644 --- a/connectivity/source/drivers/file/FStringFunctions.cxx +++ b/connectivity/source/drivers/file/FStringFunctions.cxx @@ -32,12 +32,14 @@ #include "precompiled_connectivity.hxx" #include "file/FStringFunctions.hxx" +#include using namespace connectivity; using namespace connectivity::file; //------------------------------------------------------------------ ORowSetValue OOp_Upper::operate(const ORowSetValue& lhs) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_Upper::operate" ); if ( lhs.isNull() ) return lhs; @@ -46,6 +48,7 @@ ORowSetValue OOp_Upper::operate(const ORowSetValue& lhs) const //------------------------------------------------------------------ ORowSetValue OOp_Lower::operate(const ORowSetValue& lhs) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_Lower::operate" ); if ( lhs.isNull() ) return lhs; @@ -54,6 +57,7 @@ ORowSetValue OOp_Lower::operate(const ORowSetValue& lhs) const //------------------------------------------------------------------ ORowSetValue OOp_Ascii::operate(const ORowSetValue& lhs) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_Ascii::operate" ); if ( lhs.isNull() ) return lhs; ::rtl::OString sStr(::rtl::OUStringToOString(lhs,RTL_TEXTENCODING_ASCII_US)); @@ -63,6 +67,7 @@ ORowSetValue OOp_Ascii::operate(const ORowSetValue& lhs) const //------------------------------------------------------------------ ORowSetValue OOp_CharLength::operate(const ORowSetValue& lhs) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_CharLength::operate" ); if ( lhs.isNull() ) return lhs; @@ -71,6 +76,7 @@ ORowSetValue OOp_CharLength::operate(const ORowSetValue& lhs) const //------------------------------------------------------------------ ORowSetValue OOp_Char::operate(const ::std::vector& lhs) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_Char::operate" ); if ( lhs.empty() ) return ORowSetValue(); @@ -92,6 +98,7 @@ ORowSetValue OOp_Char::operate(const ::std::vector& lhs) const //------------------------------------------------------------------ ORowSetValue OOp_Concat::operate(const ::std::vector& lhs) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_Concat::operate" ); if ( lhs.empty() ) return ORowSetValue(); @@ -111,6 +118,7 @@ ORowSetValue OOp_Concat::operate(const ::std::vector& lhs) const //------------------------------------------------------------------ ORowSetValue OOp_Locate::operate(const ::std::vector& lhs) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_Locate::operate" ); ::std::vector::const_iterator aIter = lhs.begin(); ::std::vector::const_iterator aEnd = lhs.end(); for (; aIter != aEnd; ++aIter) @@ -129,6 +137,7 @@ ORowSetValue OOp_Locate::operate(const ::std::vector& lhs) const //------------------------------------------------------------------ ORowSetValue OOp_SubString::operate(const ::std::vector& lhs) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_SubString::operate" ); ::std::vector::const_iterator aIter = lhs.begin(); ::std::vector::const_iterator aEnd = lhs.end(); for (; aIter != aEnd; ++aIter) @@ -147,6 +156,7 @@ ORowSetValue OOp_SubString::operate(const ::std::vector& lhs) cons //------------------------------------------------------------------ ORowSetValue OOp_LTrim::operate(const ORowSetValue& lhs) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_LTrim::operate" ); if ( lhs.isNull() ) return lhs; @@ -157,6 +167,7 @@ ORowSetValue OOp_LTrim::operate(const ORowSetValue& lhs) const //------------------------------------------------------------------ ORowSetValue OOp_RTrim::operate(const ORowSetValue& lhs) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_RTrim::operate" ); if ( lhs.isNull() ) return lhs; @@ -167,6 +178,7 @@ ORowSetValue OOp_RTrim::operate(const ORowSetValue& lhs) const //------------------------------------------------------------------ ORowSetValue OOp_Space::operate(const ORowSetValue& lhs) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_Space::operate" ); if ( lhs.isNull() ) return lhs; @@ -182,6 +194,7 @@ ORowSetValue OOp_Space::operate(const ORowSetValue& lhs) const //------------------------------------------------------------------ ORowSetValue OOp_Replace::operate(const ::std::vector& lhs) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_Replace::operate" ); if ( lhs.size() != 3 ) return ORowSetValue(); @@ -200,6 +213,7 @@ ORowSetValue OOp_Replace::operate(const ::std::vector& lhs) const //------------------------------------------------------------------ ORowSetValue OOp_Repeat::operate(const ORowSetValue& lhs,const ORowSetValue& rhs) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_Repeat::operate" ); if ( lhs.isNull() || rhs.isNull() ) return lhs; @@ -214,6 +228,7 @@ ORowSetValue OOp_Repeat::operate(const ORowSetValue& lhs,const ORowSetValue& rhs //------------------------------------------------------------------ ORowSetValue OOp_Insert::operate(const ::std::vector& lhs) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_Insert::operate" ); if ( lhs.size() != 4 ) return ORowSetValue(); @@ -227,6 +242,7 @@ ORowSetValue OOp_Insert::operate(const ::std::vector& lhs) const //------------------------------------------------------------------ ORowSetValue OOp_Left::operate(const ORowSetValue& lhs,const ORowSetValue& rhs) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_Left::operate" ); if ( lhs.isNull() || rhs.isNull() ) return lhs; @@ -239,6 +255,7 @@ ORowSetValue OOp_Left::operate(const ORowSetValue& lhs,const ORowSetValue& rhs) //------------------------------------------------------------------ ORowSetValue OOp_Right::operate(const ORowSetValue& lhs,const ORowSetValue& rhs) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_Right::operate" ); if ( lhs.isNull() || rhs.isNull() ) return lhs; diff --git a/connectivity/source/drivers/file/FTable.cxx b/connectivity/source/drivers/file/FTable.cxx index d8d40808ad..5f975fd0c3 100644 --- a/connectivity/source/drivers/file/FTable.cxx +++ b/connectivity/source/drivers/file/FTable.cxx @@ -41,6 +41,7 @@ #include #include #include +#include using namespace connectivity; using namespace connectivity::file; @@ -60,6 +61,7 @@ OFileTable::OFileTable(sdbcx::OCollection* _pTables,OConnection* _pConnection) ,m_nBufferSize(0) ,m_bWriteable(sal_False) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::OFileTable" ); DBG_CTOR( file_OFileTable, NULL ); construct(); TStringVector aVector; @@ -86,6 +88,7 @@ OFileTable::OFileTable( sdbcx::OCollection* _pTables,OConnection* _pConnection, ,m_nBufferSize(0) ,m_bWriteable(sal_False) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::OFileTable" ); DBG_CTOR( file_OFileTable, NULL ); m_aColumns = new OSQLColumns(); construct(); @@ -99,6 +102,7 @@ OFileTable::~OFileTable( ) // ------------------------------------------------------------------------- void OFileTable::refreshColumns() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::refreshColumns" ); TStringVector aVector; Reference< XResultSet > xResult = m_pConnection->getMetaData()->getColumns(Any(), m_SchemaName,m_Name,::rtl::OUString::createFromAscii("%")); @@ -118,14 +122,17 @@ void OFileTable::refreshColumns() // ------------------------------------------------------------------------- void OFileTable::refreshKeys() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::refreshKeys" ); } // ------------------------------------------------------------------------- void OFileTable::refreshIndexes() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::refreshIndexes" ); } // ------------------------------------------------------------------------- Any SAL_CALL OFileTable::queryInterface( const Type & rType ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::queryInterface" ); if( rType == ::getCppuType((const Reference*)0) || rType == ::getCppuType((const Reference*)0) || rType == ::getCppuType((const Reference*)0) || @@ -138,6 +145,7 @@ Any SAL_CALL OFileTable::queryInterface( const Type & rType ) throw(RuntimeExcep // ------------------------------------------------------------------------- void SAL_CALL OFileTable::disposing(void) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::disposing" ); OTable::disposing(); ::osl::MutexGuard aGuard(m_aMutex); @@ -147,6 +155,7 @@ void SAL_CALL OFileTable::disposing(void) //-------------------------------------------------------------------------- Sequence< sal_Int8 > OFileTable::getUnoTunnelImplementationId() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::getUnoTunnelImplementationId" ); static ::cppu::OImplementationId * pId = 0; if (! pId) { @@ -164,6 +173,7 @@ Sequence< sal_Int8 > OFileTable::getUnoTunnelImplementationId() //------------------------------------------------------------------ sal_Int64 OFileTable::getSomething( const Sequence< sal_Int8 > & rId ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::getSomething" ); return (rId.getLength() == 16 && 0 == rtl_compareMemory(getUnoTunnelImplementationId().getConstArray(), rId.getConstArray(), 16 ) ) ? reinterpret_cast< sal_Int64 >( this ) : OTable_TYPEDEF::getSomething(rId); @@ -171,6 +181,7 @@ sal_Int64 OFileTable::getSomething( const Sequence< sal_Int8 > & rId ) throw (Ru // ----------------------------------------------------------------------------- void OFileTable::FileClose() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::FileClose" ); ::osl::MutexGuard aGuard(m_aMutex); if (m_pFileStream && m_pFileStream->IsWritable()) @@ -186,7 +197,6 @@ void OFileTable::FileClose() } } // ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- void SAL_CALL OFileTable::acquire() throw() { OTable_TYPEDEF::acquire(); @@ -199,32 +209,38 @@ void SAL_CALL OFileTable::release() throw() // ----------------------------------------------------------------------------- BOOL OFileTable::InsertRow(OValueRefVector& /*rRow*/, BOOL /*bFlush*/,const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& /*_xCols*/) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::InsertRow" ); return sal_False; } // ----------------------------------------------------------------------------- BOOL OFileTable::DeleteRow(const OSQLColumns& /*_rCols*/) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::DeleteRow" ); return sal_False; } // ----------------------------------------------------------------------------- BOOL OFileTable::UpdateRow(OValueRefVector& /*rRow*/, OValueRefRow& /*pOrgRow*/,const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& /*_xCols*/) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::UpdateRow" ); return sal_False; } // ----------------------------------------------------------------------------- void OFileTable::addColumn(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& /*descriptor*/) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::addColumn" ); OSL_ENSURE( false, "OFileTable::addColumn: not implemented!" ); } // ----------------------------------------------------------------------------- void OFileTable::dropColumn(sal_Int32 /*_nPos*/) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::dropColumn" ); OSL_ENSURE( false, "OFileTable::addColumn: not implemented!" ); } // ----------------------------------------------------------------------------- SvStream* OFileTable::createStream_simpleError( const String& _rFileName, StreamMode _eOpenMode) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::createStream_simpleError" ); utl::UcbLockBytesHandler* p_null_dummy=NULL; SvStream* pReturn = ::utl::UcbStreamHelper::CreateStream( _rFileName, _eOpenMode, (_eOpenMode & STREAM_NOCREATE) == STREAM_NOCREATE ,p_null_dummy); if (pReturn && (ERRCODE_NONE != pReturn->GetErrorCode())) @@ -238,6 +254,7 @@ SvStream* OFileTable::createStream_simpleError( const String& _rFileName, Stream // ----------------------------------------------------------------------------- void OFileTable::refreshHeader() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::refreshHeader" ); } // ----------------------------------------------------------------------------- diff --git a/connectivity/source/drivers/file/fcode.cxx b/connectivity/source/drivers/file/fcode.cxx index 0d3f99bc5d..9c686df607 100644 --- a/connectivity/source/drivers/file/fcode.cxx +++ b/connectivity/source/drivers/file/fcode.cxx @@ -40,6 +40,7 @@ #include #include #include +#include using namespace ::comphelper; using namespace connectivity; @@ -101,6 +102,7 @@ OOperandRow::OOperandRow(sal_uInt16 _nPos, sal_Int32 _rType) //------------------------------------------------------------------ void OOperandRow::bindValue(const OValueRefRow& _pRow) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOperandRow::OOperandRow" ); OSL_ENSURE(_pRow.isValid(),"NO EMPTY row allowed!"); m_pRow = _pRow; OSL_ENSURE(m_pRow.isValid() && m_nRowPos < m_pRow->get().size(),"Invalid RowPos is >= vector.size()"); @@ -109,12 +111,14 @@ void OOperandRow::bindValue(const OValueRefRow& _pRow) // ----------------------------------------------------------------------------- void OOperandRow::setValue(const ORowSetValue& _rVal) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOperandRow::setValue" ); OSL_ENSURE(m_pRow.isValid() && m_nRowPos < m_pRow->get().size(),"Invalid RowPos is >= vector.size()"); (*(m_pRow->get())[m_nRowPos]) = _rVal; } //------------------------------------------------------------------ const ORowSetValue& OOperandRow::getValue() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOperandRow::getValue" ); OSL_ENSURE(m_pRow.isValid() && m_nRowPos < m_pRow->get().size(),"Invalid RowPos is >= vector.size()"); return (m_pRow->get())[m_nRowPos]->getValue(); } @@ -122,6 +126,7 @@ const ORowSetValue& OOperandRow::getValue() const // ----------------------------------------------------------------------------- void OOperandValue::setValue(const ORowSetValue& _rVal) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOperandValue::setValue" ); m_aValue = _rVal; } // ------------------------------------------------------------------------- @@ -164,12 +169,14 @@ OOperandParam::OOperandParam(OSQLParseNode* pNode, sal_Int32 _nPos) //------------------------------------------------------------------ const ORowSetValue& OOperandValue::getValue() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOperandValue::getValue" ); return m_aValue; } //------------------------------------------------------------------ OOperandConst::OOperandConst(const OSQLParseNode& rColumnRef, const rtl::OUString& aStrValue) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOperandConst::OOperandConst" ); switch (rColumnRef.getNodeType()) { case SQL_NODE_STRING: @@ -215,6 +222,7 @@ sal_uInt16 OOperator::getRequestedOperands() const {return 2;} //------------------------------------------------------------------ sal_Bool OBoolOperator::operate(const OOperand*, const OOperand*) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OBoolOperator::operate" ); return sal_False; } @@ -222,6 +230,7 @@ sal_Bool OBoolOperator::operate(const OOperand*, const OOperand*) const //------------------------------------------------------------------ void OBoolOperator::Exec(OCodeStack& rCodeStack) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OBoolOperator::Exec" ); OOperand *pRight = rCodeStack.top(); rCodeStack.pop(); OOperand *pLeft = rCodeStack.top(); @@ -237,21 +246,28 @@ void OBoolOperator::Exec(OCodeStack& rCodeStack) //------------------------------------------------------------------ sal_Bool OOp_AND::operate(const OOperand* pLeft, const OOperand* pRight) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_AND::operate" ); return pLeft->isValid() && pRight->isValid(); } //------------------------------------------------------------------ sal_Bool OOp_OR::operate(const OOperand* pLeft, const OOperand* pRight) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_OR::operate" ); return pLeft->isValid() || pRight->isValid(); } //------------------------------------------------------------------ -sal_uInt16 OOp_ISNULL::getRequestedOperands() const {return 1;} +sal_uInt16 OOp_ISNULL::getRequestedOperands() const +{ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_ISNULL::getRequestedOperands" ); + return 1; +} //------------------------------------------------------------------ void OOp_ISNULL::Exec(OCodeStack& rCodeStack) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_ISNULL::Exec" ); OOperand* pOperand = rCodeStack.top(); rCodeStack.pop(); @@ -263,6 +279,7 @@ void OOp_ISNULL::Exec(OCodeStack& rCodeStack) //------------------------------------------------------------------ sal_Bool OOp_ISNULL::operate(const OOperand* pOperand, const OOperand*) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_ISNULL::operate" ); return pOperand->getValue().isNull(); } @@ -275,6 +292,7 @@ sal_Bool OOp_ISNOTNULL::operate(const OOperand* pOperand, const OOperand*) const //------------------------------------------------------------------ sal_Bool OOp_LIKE::operate(const OOperand* pLeft, const OOperand* pRight) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_ISNULL::operate" ); sal_Bool bMatch; ORowSetValue aLH(pLeft->getValue()); ORowSetValue aRH(pRight->getValue()); @@ -291,12 +309,14 @@ sal_Bool OOp_LIKE::operate(const OOperand* pLeft, const OOperand* pRight) const //------------------------------------------------------------------ sal_Bool OOp_NOTLIKE::operate(const OOperand* pLeft, const OOperand* pRight) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_NOTLIKE::operate" ); return !OOp_LIKE::operate(pLeft, pRight); } //------------------------------------------------------------------ sal_Bool OOp_COMPARE::operate(const OOperand* pLeft, const OOperand* pRight) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_COMPARE::operate" ); ORowSetValue aLH(pLeft->getValue()); ORowSetValue aRH(pRight->getValue()); @@ -366,6 +386,7 @@ sal_Bool OOp_COMPARE::operate(const OOperand* pLeft, const OOperand* pRight) con //------------------------------------------------------------------ void ONumOperator::Exec(OCodeStack& rCodeStack) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ONumOperator::Exec" ); OOperand *pRight = rCodeStack.top(); rCodeStack.pop(); @@ -381,34 +402,40 @@ void ONumOperator::Exec(OCodeStack& rCodeStack) //------------------------------------------------------------------ double OOp_ADD::operate(const double& fLeft,const double& fRight) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_ADD::operate" ); return fLeft + fRight; } //------------------------------------------------------------------ double OOp_SUB::operate(const double& fLeft,const double& fRight) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_SUB::operate" ); return fLeft - fRight; } //------------------------------------------------------------------ double OOp_MUL::operate(const double& fLeft,const double& fRight) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_MUL::operate" ); return fLeft * fRight; } //------------------------------------------------------------------ double OOp_DIV::operate(const double& fLeft,const double& fRight) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOp_DIV::operate" ); return fLeft / fRight; } // ----------------------------------------------------------------------------- OEvaluateSet* OOperandAttr::preProcess(OBoolOperator* /*pOp*/, OOperand* /*pRight*/) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OOperandAttr::preProcess" ); return NULL; } //------------------------------------------------------------------ void ONthOperator::Exec(OCodeStack& rCodeStack) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ONthOperator::Exec" ); ::std::vector aValues; ::std::vector aOperands; OOperand* pOperand; @@ -436,6 +463,7 @@ void ONthOperator::Exec(OCodeStack& rCodeStack) //------------------------------------------------------------------ void OBinaryOperator::Exec(OCodeStack& rCodeStack) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OBinaryOperator::Exec" ); OOperand *pRight = rCodeStack.top(); rCodeStack.pop(); OOperand *pLeft = rCodeStack.top(); @@ -453,6 +481,7 @@ void OBinaryOperator::Exec(OCodeStack& rCodeStack) //------------------------------------------------------------------ void OUnaryOperator::Exec(OCodeStack& rCodeStack) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OUnaryOperator::Exec" ); OSL_ENSURE(!rCodeStack.empty(),"Stack is empty!"); OOperand* pOperand = rCodeStack.top(); rCodeStack.pop(); diff --git a/connectivity/source/drivers/file/quotedstring.cxx b/connectivity/source/drivers/file/quotedstring.cxx index f212555a1e..e3474c322f 100644 --- a/connectivity/source/drivers/file/quotedstring.cxx +++ b/connectivity/source/drivers/file/quotedstring.cxx @@ -31,6 +31,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_connectivity.hxx" #include "file/quotedstring.hxx" +#include namespace connectivity { @@ -40,7 +41,9 @@ namespace connectivity //------------------------------------------------------------------ xub_StrLen QuotedTokenizedString::GetTokenCount( sal_Unicode cTok, sal_Unicode cStrDel ) const { - if ( !Len() ) + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "QuotedTokenizedString::GetTokenCount" ); + const xub_StrLen nLen = m_sString.Len(); + if ( !nLen ) return 0; xub_StrLen nTokCount = 1; @@ -48,27 +51,29 @@ namespace connectivity BOOL bInString = FALSE; // Befinden wir uns INNERHALB eines (cStrDel delimited) String? // Suche bis Stringende nach dem ersten nicht uebereinstimmenden Zeichen - for( xub_StrLen i = 0; i < Len(); i++ ) + for( xub_StrLen i = 0; i < nLen; ++i ) { + const sal_Unicode cChar = m_sString.GetChar(i); if (bStart) { bStart = FALSE; // Erstes Zeichen ein String-Delimiter? - if ((*this).GetChar(i) == cStrDel) + if ( cChar == cStrDel ) { bInString = TRUE; // dann sind wir jetzt INNERHALB des Strings! continue; // dieses Zeichen ueberlesen! } } - if (bInString) { + if (bInString) + { // Wenn jetzt das String-Delimiter-Zeichen auftritt ... - if ( (*this).GetChar(i) == cStrDel ) + if ( cChar == cStrDel ) { - if ((i+1 < Len()) && ((*this).GetChar(i+1) == cStrDel)) + if ((i+1 < nLen) && (m_sString.GetChar(i+1) == cStrDel)) { // Verdoppeltes String-Delimiter-Zeichen: - i++; // kein String-Ende, naechstes Zeichen ueberlesen. + ++i; // kein String-Ende, naechstes Zeichen ueberlesen. } else { @@ -76,11 +81,13 @@ namespace connectivity bInString = FALSE; } } - } else { + } // if (bInString) + else + { // Stimmt das Tokenzeichen ueberein, dann erhoehe TokCount - if ( (*this).GetChar(i) == cTok ) + if ( cChar == cTok ) { - nTokCount++; + ++nTokCount; bStart = TRUE; } } @@ -93,29 +100,36 @@ namespace connectivity //------------------------------------------------------------------ void QuotedTokenizedString::GetTokenSpecial( String& _rStr,xub_StrLen& nStartPos, sal_Unicode cTok, sal_Unicode cStrDel ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "QuotedTokenizedString::GetTokenCount" ); _rStr.Erase(); - xub_StrLen nLen = Len(); + const xub_StrLen nLen = m_sString.Len(); if ( nLen ) { - BOOL bInString = (nStartPos < nLen) && ((*this).GetChar(nStartPos) == cStrDel); // Befinden wir uns INNERHALB eines (cStrDel delimited) String? + BOOL bInString = (nStartPos < nLen) && (m_sString.GetChar(nStartPos) == cStrDel); // Befinden wir uns INNERHALB eines (cStrDel delimited) String? // Erstes Zeichen ein String-Delimiter? if (bInString ) ++nStartPos; // dieses Zeichen ueberlesen! + if ( nStartPos >= nLen ) + return; + + sal_Unicode* pData = _rStr.AllocBuffer(nLen - nStartPos); + const sal_Unicode* pStart = pData; // Suche bis Stringende nach dem ersten nicht uebereinstimmenden Zeichen for( xub_StrLen i = nStartPos; i < nLen; ++i ) { + const sal_Unicode cChar = m_sString.GetChar(i); if (bInString) { // Wenn jetzt das String-Delimiter-Zeichen auftritt ... - if ( (*this).GetChar(i) == cStrDel ) + if ( cChar == cStrDel ) { - if ((i+1 < nLen) && ((*this).GetChar(i+1) == cStrDel)) + if ((i+1 < nLen) && (m_sString.GetChar(i+1) == cStrDel)) { // Verdoppeltes String-Delimiter-Zeichen: - ++i; // kein String-Ende, naechstes Zeichen ueberlesen. - - _rStr += (*this).GetChar(i); // Zeichen gehoert zum Resultat-String + // kein String-Ende, naechstes Zeichen ueberlesen. + ++i; + *pData++ = m_sString.GetChar(i); // Zeichen gehoert zum Resultat-String } else { @@ -125,14 +139,14 @@ namespace connectivity } else { - _rStr += (*this).GetChar(i); // Zeichen gehoert zum Resultat-String + *pData++ = cChar; // Zeichen gehoert zum Resultat-String } } else { // Stimmt das Tokenzeichen ueberein, dann erhoehe nTok - if ( (*this).GetChar(i) == cTok ) + if ( cChar == cTok ) { // Vorzeitiger Abbruch der Schleife moeglich, denn // wir haben, was wir wollten. @@ -141,10 +155,11 @@ namespace connectivity } else { - _rStr += (*this).GetChar(i); // Zeichen gehoert zum Resultat-String + *pData++ = cChar; // Zeichen gehoert zum Resultat-String } } - } + } // for( xub_StrLen i = nStartPos; i < nLen; ++i ) + _rStr.ReleaseBufferAccess(xub_StrLen(pData - pStart)); } } } diff --git a/connectivity/source/drivers/flat/EDatabaseMetaData.cxx b/connectivity/source/drivers/flat/EDatabaseMetaData.cxx index 067fbea536..0edb3cd569 100644 --- a/connectivity/source/drivers/flat/EDatabaseMetaData.cxx +++ b/connectivity/source/drivers/flat/EDatabaseMetaData.cxx @@ -45,6 +45,7 @@ #include #include #include +#include using namespace ::comphelper; @@ -61,14 +62,17 @@ using namespace ::com::sun::star::container; OFlatDatabaseMetaData::OFlatDatabaseMetaData(::connectivity::file::OConnection* _pCon) :ODatabaseMetaData(_pCon) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "flat", "Ocke.Janssen@sun.com", "OFlatDatabaseMetaData::OFlatDatabaseMetaData" ); } // ------------------------------------------------------------------------- OFlatDatabaseMetaData::~OFlatDatabaseMetaData() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "flat", "Ocke.Janssen@sun.com", "OFlatDatabaseMetaData::~OFlatDatabaseMetaData" ); } // ------------------------------------------------------------------------- Reference< XResultSet > OFlatDatabaseMetaData::impl_getTypeInfo_throw( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "flat", "Ocke.Janssen@sun.com", "OFlatDatabaseMetaData::impl_getTypeInfo_throw" ); ::osl::MutexGuard aGuard( m_aMutex ); ::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTypeInfo); @@ -169,6 +173,7 @@ Reference< XResultSet > SAL_CALL OFlatDatabaseMetaData::getColumns( const Any& /*catalog*/, const ::rtl::OUString& /*schemaPattern*/, const ::rtl::OUString& tableNamePattern, const ::rtl::OUString& columnNamePattern ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "flat", "Ocke.Janssen@sun.com", "OFlatDatabaseMetaData::getColumns" ); ::osl::MutexGuard aGuard( m_aMutex ); Reference< XTablesSupplier > xTables = m_pConnection->createCatalog(); @@ -256,6 +261,7 @@ Reference< XResultSet > SAL_CALL OFlatDatabaseMetaData::getColumns( // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL OFlatDatabaseMetaData::getURL( ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "flat", "Ocke.Janssen@sun.com", "OFlatDatabaseMetaData::getURL" ); ::osl::MutexGuard aGuard( m_aMutex ); return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:flat:")) + m_pConnection->getURL(); } diff --git a/connectivity/source/drivers/flat/ENoException.cxx b/connectivity/source/drivers/flat/ENoException.cxx deleted file mode 100644 index d9279c7fae..0000000000 --- a/connectivity/source/drivers/flat/ENoException.cxx +++ /dev/null @@ -1,324 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: ENoException.cxx,v $ - * $Revision: 1.10 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" -#include "flat/ETable.hxx" -#include "flat/EConnection.hxx" - -using namespace connectivity; -using namespace connectivity::flat; - -//------------------------------------------------------------------ -xub_StrLen OFlatString::GetTokenCount( sal_Unicode cTok, sal_Unicode cStrDel ) const -{ - if ( !Len() ) - return 0; - - xub_StrLen nTokCount = 1; - BOOL bStart = TRUE; // Stehen wir auf dem ersten Zeichen im Token? - BOOL bInString = FALSE; // Befinden wir uns INNERHALB eines (cStrDel delimited) String? - - // Suche bis Stringende nach dem ersten nicht uebereinstimmenden Zeichen - for( xub_StrLen i = 0; i < Len(); i++ ) - { - if (bStart) - { - bStart = FALSE; - // Erstes Zeichen ein String-Delimiter? - if ((*this).GetChar(i) == cStrDel) - { - bInString = TRUE; // dann sind wir jetzt INNERHALB des Strings! - continue; // dieses Zeichen ueberlesen! - } - } - - if (bInString) { - // Wenn jetzt das String-Delimiter-Zeichen auftritt ... - if ( (*this).GetChar(i) == cStrDel ) - { - if ((i+1 < Len()) && ((*this).GetChar(i+1) == cStrDel)) - { - // Verdoppeltes String-Delimiter-Zeichen: - i++; // kein String-Ende, naechstes Zeichen ueberlesen. - } - else - { - // String-Ende - bInString = FALSE; - } - } - } else { - // Stimmt das Tokenzeichen ueberein, dann erhoehe TokCount - if ( (*this).GetChar(i) == cTok ) - { - nTokCount++; - bStart = TRUE; - } - } - } - - return nTokCount; -} - -//------------------------------------------------------------------ -void OFlatString::GetTokenSpecial( String& _rStr,xub_StrLen& nStartPos, sal_Unicode cTok, sal_Unicode cStrDel ) const -{ - _rStr.Erase(); - xub_StrLen nLen = Len(); - if ( nLen ) - { - BOOL bInString = (nStartPos < nLen) && ((*this).GetChar(nStartPos) == cStrDel); // Befinden wir uns INNERHALB eines (cStrDel delimited) String? - - // Erstes Zeichen ein String-Delimiter? - if (bInString ) - ++nStartPos; // dieses Zeichen ueberlesen! - // Suche bis Stringende nach dem ersten nicht uebereinstimmenden Zeichen - xub_StrLen i = nStartPos; - for( ; i < nLen; ++i ) - { - if (bInString) - { - // Wenn jetzt das String-Delimiter-Zeichen auftritt ... - if ( (*this).GetChar(i) == cStrDel ) - { - if ((i+1 < nLen) && ((*this).GetChar(i+1) == cStrDel)) - { - // Verdoppeltes String-Delimiter-Zeichen: - ++i; // kein String-Ende, naechstes Zeichen ueberlesen. - - _rStr += (*this).GetChar(i); // Zeichen gehoert zum Resultat-String - } - else - { - // String-Ende - bInString = FALSE; - } - } - else - { - _rStr += (*this).GetChar(i); // Zeichen gehoert zum Resultat-String - } - - } - else - { - // Stimmt das Tokenzeichen ueberein, dann erhoehe nTok - if ( (*this).GetChar(i) == cTok ) - { - // Vorzeitiger Abbruch der Schleife moeglich, denn - // wir haben, was wir wollten. - nStartPos = i+1; - break; - } - else - { - _rStr += (*this).GetChar(i); // Zeichen gehoert zum Resultat-String - } - } - } - if ( i == nLen && nStartPos < i ) - nStartPos = nLen; - } -} -// ----------------------------------------------------------------------------- -sal_Bool OFlatTable::checkHeaderLine() -{ - if (m_nFilePos == 0 && ((OFlatConnection*)m_pConnection)->isHeaderLine()) - { - BOOL bRead2; - do - { - bRead2 = m_pFileStream->ReadByteStringLine(m_aCurrentLine,m_pConnection->getTextEncoding()); - } - while(bRead2 && !m_aCurrentLine.Len()); - - m_nFilePos = m_pFileStream->Tell(); - if (m_pFileStream->IsEof()) - return sal_False; - } - return sal_True; -} -//------------------------------------------------------------------ -sal_Bool OFlatTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int32 nOffset, sal_Int32& nCurPos) -{ - if ( !m_pFileStream ) - return sal_False; - OFlatConnection* pConnection = (OFlatConnection*)m_pConnection; - // ---------------------------------------------------------- - // Positionierung vorbereiten: - - m_nFilePos = nCurPos; - - switch(eCursorPosition) - { - case IResultSetHelper::FIRST: - m_nFilePos = 0; - m_nRowPos = 1; - // run through - case IResultSetHelper::NEXT: - if(eCursorPosition != IResultSetHelper::FIRST) - ++m_nRowPos; - m_pFileStream->Seek(m_nFilePos); - if (m_pFileStream->IsEof() || !checkHeaderLine()) - { - m_nMaxRowCount = m_nRowPos; - return sal_False; - } - - m_aRowToFilePos.insert(::std::map::value_type(m_nRowPos,m_nFilePos)); - - m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding()); - if (m_pFileStream->IsEof()) - { - m_nMaxRowCount = m_nRowPos; - return sal_False; - } - nCurPos = m_pFileStream->Tell(); - break; - case IResultSetHelper::PRIOR: - --m_nRowPos; - if(m_nRowPos > 0) - { - m_nFilePos = m_aRowToFilePos.find(m_nRowPos)->second; - m_pFileStream->Seek(m_nFilePos); - if (m_pFileStream->IsEof() || !checkHeaderLine()) - return sal_False; - m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding()); - if (m_pFileStream->IsEof()) - return sal_False; - nCurPos = m_pFileStream->Tell(); - } - else - m_nRowPos = 0; - - break; - - break; - case IResultSetHelper::LAST: - if(m_nMaxRowCount) - { - m_nFilePos = m_aRowToFilePos.rbegin()->second; - m_nRowPos = m_aRowToFilePos.rbegin()->first; - m_pFileStream->Seek(m_nFilePos); - if (m_pFileStream->IsEof() || !checkHeaderLine()) - return sal_False; - m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding()); - if (m_pFileStream->IsEof()) - return sal_False; - nCurPos = m_pFileStream->Tell(); - } - else - { - while(seekRow(IResultSetHelper::NEXT,1,nCurPos)) ; // run through after last row - // now I know all - seekRow(IResultSetHelper::PRIOR,1,nCurPos); - } - break; - case IResultSetHelper::RELATIVE: - if(nOffset > 0) - { - for(sal_Int32 i = 0;i::const_iterator aIter = m_aRowToFilePos.find(nOffset); - if(aIter != m_aRowToFilePos.end()) - { - m_nFilePos = aIter->second; - m_pFileStream->Seek(m_nFilePos); - if (m_pFileStream->IsEof() || !checkHeaderLine()) - return sal_False; - m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding()); - if (m_pFileStream->IsEof()) - return sal_False; - nCurPos = m_pFileStream->Tell(); - } - else if(m_nMaxRowCount && nOffset > m_nMaxRowCount) // offset is outside the table - { - m_nRowPos = m_nMaxRowCount; - return sal_False; - } - else - { - aIter = m_aRowToFilePos.upper_bound(nOffset); - if(aIter == m_aRowToFilePos.end()) - { - m_nRowPos = m_aRowToFilePos.rbegin()->first; - nCurPos = m_nFilePos = m_aRowToFilePos.rbegin()->second; - while(m_nRowPos != nOffset) - seekRow(IResultSetHelper::NEXT,1,nCurPos); - } - else - { - --aIter; - m_nRowPos = aIter->first; - m_nFilePos = aIter->second; - m_pFileStream->Seek(m_nFilePos); - if (m_pFileStream->IsEof() || !checkHeaderLine()) - return sal_False; - m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding()); - if (m_pFileStream->IsEof()) - return sal_False; - nCurPos = m_pFileStream->Tell(); - } - } - } - - break; - case IResultSetHelper::BOOKMARK: - m_pFileStream->Seek(nOffset); - if (m_pFileStream->IsEof()) - return sal_False; - - m_nFilePos = m_pFileStream->Tell(); // Byte-Position in der Datei merken (am ZeilenANFANG) - m_pFileStream->ReadByteStringLine(m_aCurrentLine,pConnection->getTextEncoding()); - if (m_pFileStream->IsEof()) - return sal_False; - nCurPos = m_pFileStream->Tell(); - break; - } - - - return sal_True; -} -// ----------------------------------------------------------------------------- - - - diff --git a/connectivity/source/drivers/flat/EResultSet.cxx b/connectivity/source/drivers/flat/EResultSet.cxx index 339fe20196..f88467cb08 100644 --- a/connectivity/source/drivers/flat/EResultSet.cxx +++ b/connectivity/source/drivers/flat/EResultSet.cxx @@ -87,7 +87,7 @@ Any SAL_CALL OFlatResultSet::queryInterface( const Type & rType ) throw(RuntimeE || rType == ::getCppuType((const Reference*)0)) return Any(); - Any aRet = OResultSet::queryInterface(rType); + const Any aRet = OResultSet::queryInterface(rType); return aRet.hasValue() ? aRet : OFlatResultSet_BASE::queryInterface(rType); } // ------------------------------------------------------------------------- @@ -117,10 +117,9 @@ Sequence< Type > SAL_CALL OFlatResultSet::getTypes( ) throw( RuntimeException) Any SAL_CALL OFlatResultSet::getBookmark( ) throw( SQLException, RuntimeException) { ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(OResultSet_BASE::rBHelper.bDisposed); - + checkDisposed(OResultSet_BASE::rBHelper.bDisposed); - return makeAny((sal_Int32)(m_aRow->get())[0]->getValue()); + return makeAny((sal_Int32)(m_aRow->get())[0]->getValue()); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL OFlatResultSet::moveToBookmark( const Any& bookmark ) throw( SQLException, RuntimeException) diff --git a/connectivity/source/drivers/flat/ETable.cxx b/connectivity/source/drivers/flat/ETable.cxx index c4b806a8bd..4721228485 100644 --- a/connectivity/source/drivers/flat/ETable.cxx +++ b/connectivity/source/drivers/flat/ETable.cxx @@ -55,6 +55,7 @@ #include #include "file/quotedstring.hxx" #include +#include using namespace ::comphelper; using namespace connectivity; @@ -73,34 +74,37 @@ using namespace ::com::sun::star::lang; // ------------------------------------------------------------------------- void OFlatTable::fillColumns(const ::com::sun::star::lang::Locale& _aLocale) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "flat", "Ocke.Janssen@sun.com", "OFlatTable::fillColumns" ); BOOL bRead = TRUE; QuotedTokenizedString aHeaderLine; OFlatConnection* pConnection = (OFlatConnection*)m_pConnection; - if (pConnection->isHeaderLine()) + const rtl_TextEncoding nEncoding = m_pConnection->getTextEncoding(); + const sal_Bool bHasHeaderLine = pConnection->isHeaderLine(); + if ( bHasHeaderLine ) { while(bRead && !aHeaderLine.Len()) { - bRead = m_pFileStream->ReadByteStringLine(aHeaderLine,pConnection->getTextEncoding()); + bRead = m_pFileStream->ReadByteStringLine(aHeaderLine,nEncoding); } + m_nStartRowFilePos = m_pFileStream->Tell(); } // read first row QuotedTokenizedString aFirstLine; + bRead = m_pFileStream->ReadByteStringLine(aFirstLine,nEncoding); - bRead = m_pFileStream->ReadByteStringLine(aFirstLine,pConnection->getTextEncoding()); - - if (!pConnection->isHeaderLine() || !aHeaderLine.Len()) + if ( !bHasHeaderLine || !aHeaderLine.Len()) { while(bRead && !aFirstLine.Len()) { - bRead = m_pFileStream->ReadByteStringLine(aFirstLine,pConnection->getTextEncoding()); + bRead = m_pFileStream->ReadByteStringLine(aFirstLine,nEncoding); } // use first row as headerline because we need the number of columns aHeaderLine = aFirstLine; } // column count - xub_StrLen nFieldCount = aHeaderLine.GetTokenCount(pConnection->getFieldDelimiter(),pConnection->getStringDelimiter()); + const xub_StrLen nFieldCount = aHeaderLine.GetTokenCount(m_cFieldDelimiter,m_cStringDelimiter); if(!m_aColumns.isValid()) m_aColumns = new OSQLColumns(); @@ -111,16 +115,16 @@ void OFlatTable::fillColumns(const ::com::sun::star::lang::Locale& _aLocale) m_aPrecisions.clear(); m_aScales.clear(); // reserve some space - m_aColumns->get().reserve(nFieldCount); - m_aTypes.reserve(nFieldCount); - m_aPrecisions.reserve(nFieldCount); - m_aScales.reserve(nFieldCount); + m_aColumns->get().reserve(nFieldCount+1); + m_aTypes.reserve(nFieldCount+1); + m_aPrecisions.reserve(nFieldCount+1); + m_aScales.reserve(nFieldCount+1); - sal_Bool bCase = getConnection()->getMetaData()->storesMixedCaseQuotedIdentifiers(); + const sal_Bool bCase = m_pConnection->getMetaData()->storesMixedCaseQuotedIdentifiers(); CharClass aCharClass(pConnection->getDriver()->getFactory(),_aLocale); // read description - sal_Unicode cDecimalDelimiter = pConnection->getDecimalDelimiter(); - sal_Unicode cThousandDelimiter = pConnection->getThousandDelimiter(); + const sal_Unicode cDecimalDelimiter = pConnection->getDecimalDelimiter(); + const sal_Unicode cThousandDelimiter = pConnection->getThousandDelimiter(); String aColumnName; ::rtl::OUString aTypeName; ::comphelper::UStringMixEqual aCase(bCase); @@ -129,9 +133,9 @@ void OFlatTable::fillColumns(const ::com::sun::star::lang::Locale& _aLocale) xub_StrLen nStartPosFirstLine2 = 0; for (xub_StrLen i = 0; i < nFieldCount; i++) { - if (pConnection->isHeaderLine()) + if ( bHasHeaderLine ) { - aHeaderLine.GetTokenSpecial(aColumnName,nStartPosHeaderLine,pConnection->getFieldDelimiter(),pConnection->getStringDelimiter()); + aHeaderLine.GetTokenSpecial(aColumnName,nStartPosHeaderLine,m_cFieldDelimiter,m_cStringDelimiter); if ( !aColumnName.Len() ) { aColumnName = 'C'; @@ -153,9 +157,9 @@ void OFlatTable::fillColumns(const ::com::sun::star::lang::Locale& _aLocale) // first without fielddelimiter String aField; - aFirstLine.GetTokenSpecial(aField,nStartPosFirstLine,pConnection->getFieldDelimiter(),'\0'); + aFirstLine.GetTokenSpecial(aField,nStartPosFirstLine,m_cFieldDelimiter,'\0'); if (aField.Len() == 0 || - (pConnection->getStringDelimiter() && pConnection->getStringDelimiter() == aField.GetChar(0))) + (m_cStringDelimiter && m_cStringDelimiter == aField.GetChar(0))) { bNumeric = FALSE; nStartPosFirstLine2 = nStartPosFirstLine; @@ -163,8 +167,8 @@ void OFlatTable::fillColumns(const ::com::sun::star::lang::Locale& _aLocale) else { String aField2; - if ( pConnection->getStringDelimiter() != '\0' ) - aFirstLine.GetTokenSpecial(aField2,nStartPosFirstLine2,pConnection->getFieldDelimiter(),pConnection->getStringDelimiter()); + if ( m_cStringDelimiter != '\0' ) + aFirstLine.GetTokenSpecial(aField2,nStartPosFirstLine2,m_cFieldDelimiter,m_cStringDelimiter); else aField2 = aField; @@ -178,7 +182,7 @@ void OFlatTable::fillColumns(const ::com::sun::star::lang::Locale& _aLocale) xub_StrLen nDot = 0; for (xub_StrLen j = 0; j < aField2.Len(); j++) { - sal_Unicode c = aField2.GetChar(j); + const sal_Unicode c = aField2.GetChar(j); // nur Ziffern und Dezimalpunkt und Tausender-Trennzeichen? if ((!cDecimalDelimiter || c != cDecimalDelimiter) && (!cThousandDelimiter || c != cThousandDelimiter) && @@ -200,10 +204,10 @@ void OFlatTable::fillColumns(const ::com::sun::star::lang::Locale& _aLocale) if (bNumeric && cThousandDelimiter) { // Ist der Trenner richtig angegeben? - String aValue = aField2.GetToken(0,cDecimalDelimiter); + const String aValue = aField2.GetToken(0,cDecimalDelimiter); for (sal_Int32 j = aValue.Len() - 4; j >= 0; j -= 4) { - sal_Unicode c = aValue.GetChar(static_cast(j)); + const sal_Unicode c = aValue.GetChar(static_cast(j)); // nur Ziffern und Dezimalpunkt und Tausender-Trennzeichen? if (c == cThousandDelimiter && j) continue; @@ -237,12 +241,14 @@ void OFlatTable::fillColumns(const ::com::sun::star::lang::Locale& _aLocale) if(nPrecision) { eType = DataType::DECIMAL; - aTypeName = ::rtl::OUString::createFromAscii("DECIMAL"); + static const ::rtl::OUString s_sDECIMAL(RTL_CONSTASCII_USTRINGPARAM("DECIMAL")); + aTypeName = s_sDECIMAL; } else { eType = DataType::DOUBLE; - aTypeName = ::rtl::OUString::createFromAscii("DOUBLE"); + static const ::rtl::OUString s_sDOUBLE(RTL_CONSTASCII_USTRINGPARAM("DOUBLE")); + aTypeName = s_sDOUBLE; } } else @@ -256,21 +262,33 @@ void OFlatTable::fillColumns(const ::com::sun::star::lang::Locale& _aLocale) { case NUMBERFORMAT_DATE: eType = DataType::DATE; - aTypeName = ::rtl::OUString::createFromAscii("DATE"); + { + static const ::rtl::OUString s_sDATE(RTL_CONSTASCII_USTRINGPARAM("DATE")); + aTypeName = s_sDATE; + } break; case NUMBERFORMAT_DATETIME: eType = DataType::TIMESTAMP; - aTypeName = ::rtl::OUString::createFromAscii("TIMESTAMP"); + { + static const ::rtl::OUString s_sTIMESTAMP(RTL_CONSTASCII_USTRINGPARAM("TIMESTAMP")); + aTypeName = s_sTIMESTAMP; + } break; case NUMBERFORMAT_TIME: eType = DataType::TIME; - aTypeName = ::rtl::OUString::createFromAscii("TIME"); + { + static const ::rtl::OUString s_sTIME(RTL_CONSTASCII_USTRINGPARAM("TIME")); + aTypeName = s_sTIME; + } break; default: eType = DataType::VARCHAR; nPrecision = 0; // nyi: Daten koennen aber laenger sein! nScale = 0; - aTypeName = ::rtl::OUString::createFromAscii("VARCHAR"); + { + static const ::rtl::OUString s_sVARCHAR(RTL_CONSTASCII_USTRINGPARAM("VARCHAR")); + aTypeName = s_sVARCHAR; + } }; nFlags |= ColumnSearch::CHAR; } @@ -300,7 +318,7 @@ void OFlatTable::fillColumns(const ::com::sun::star::lang::Locale& _aLocale) m_aPrecisions.push_back(nPrecision); m_aScales.push_back(nScale); } - m_pFileStream->Seek(STREAM_SEEK_TO_BEGIN); + m_pFileStream->Seek(m_nStartRowFilePos); } // ------------------------------------------------------------------------- OFlatTable::OFlatTable(sdbcx::OCollection* _pTables,OFlatConnection* _pConnection, @@ -314,14 +332,20 @@ OFlatTable::OFlatTable(sdbcx::OCollection* _pTables,OFlatConnection* _pConnectio _Description, _SchemaName, _CatalogName) + ,m_nStartRowFilePos(0) ,m_nRowPos(0) ,m_nMaxRowCount(0) + ,m_cStringDelimiter(_pConnection->getStringDelimiter()) + ,m_cFieldDelimiter(_pConnection->getFieldDelimiter()) + ,m_bNeedToReadLine(false) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "flat", "Ocke.Janssen@sun.com", "OFlatTable::OFlatTable" ); } // ----------------------------------------------------------------------------- void OFlatTable::construct() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "flat", "Ocke.Janssen@sun.com", "OFlatTable::construct" ); SvtSysLocale aLocale; ::com::sun::star::lang::Locale aAppLocale(aLocale.GetLocaleDataPtr()->getLocale()); Sequence< ::com::sun::star::uno::Any > aArg(1); @@ -330,6 +354,8 @@ void OFlatTable::construct() Reference< ::com::sun::star::util::XNumberFormatsSupplier > xSupplier(m_pConnection->getDriver()->getFactory()->createInstanceWithArguments(::rtl::OUString::createFromAscii("com.sun.star.util.NumberFormatsSupplier"),aArg),UNO_QUERY); m_xNumberFormatter = Reference< ::com::sun::star::util::XNumberFormatter >(m_pConnection->getDriver()->getFactory()->createInstance(::rtl::OUString::createFromAscii("com.sun.star.util.NumberFormatter")),UNO_QUERY); m_xNumberFormatter->attachNumberFormatsSupplier(xSupplier); + Reference xProp(xSupplier->getNumberFormatSettings(),UNO_QUERY); + xProp->getPropertyValue(::rtl::OUString::createFromAscii("NullDate")) >>= m_aNullDate; INetURLObject aURL; aURL.SetURL(getEntry()); @@ -363,6 +389,7 @@ void OFlatTable::construct() // ------------------------------------------------------------------------- String OFlatTable::getEntry() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "flat", "Ocke.Janssen@sun.com", "OFlatTable::getEntry" ); ::rtl::OUString sURL; try { @@ -407,6 +434,7 @@ String OFlatTable::getEntry() // ------------------------------------------------------------------------- void OFlatTable::refreshColumns() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "flat", "Ocke.Janssen@sun.com", "OFlatTable::refreshColumns" ); ::osl::MutexGuard aGuard( m_aMutex ); TStringVector aVector; @@ -424,6 +452,7 @@ void OFlatTable::refreshColumns() // ------------------------------------------------------------------------- void SAL_CALL OFlatTable::disposing(void) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "flat", "Ocke.Janssen@sun.com", "OFlatTable::disposing" ); OFileTable::disposing(); ::osl::MutexGuard aGuard(m_aMutex); m_aColumns = NULL; @@ -485,6 +514,7 @@ Sequence< sal_Int8 > OFlatTable::getUnoTunnelImplementationId() //------------------------------------------------------------------ sal_Int64 OFlatTable::getSomething( const Sequence< sal_Int8 > & rId ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "flat", "Ocke.Janssen@sun.com", "OFlatTable::getSomething" ); return (rId.getLength() == 16 && 0 == rtl_compareMemory(getUnoTunnelImplementationId().getConstArray(), rId.getConstArray(), 16 ) ) ? reinterpret_cast< sal_Int64 >( this ) : OFlatTable_BASE::getSomething(rId); @@ -492,21 +522,32 @@ sal_Int64 OFlatTable::getSomething( const Sequence< sal_Int8 > & rId ) throw (Ru //------------------------------------------------------------------ sal_Bool OFlatTable::fetchRow(OValueRefRow& _rRow,const OSQLColumns & _rCols,sal_Bool bIsTable,sal_Bool bRetrieveData) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "flat", "Ocke.Janssen@sun.com", "OFlatTable::fetchRow" ); *(_rRow->get())[0] = m_nFilePos; if (!bRetrieveData) return TRUE; + if ( m_bNeedToReadLine ) + { + sal_Int32 nCurrentPos = 0; + m_pFileStream->Seek(m_nFilePos); + readLine(nCurrentPos); + m_bNeedToReadLine = false; + } OFlatConnection* pConnection = (OFlatConnection*)m_pConnection; + const sal_Unicode cDecimalDelimiter = pConnection->getDecimalDelimiter(); + const sal_Unicode cThousandDelimiter = pConnection->getThousandDelimiter(); // Felder: xub_StrLen nStartPos = 0; String aStr; OSQLColumns::Vector::const_iterator aIter = _rCols.get().begin(); OSQLColumns::Vector::const_iterator aEnd = _rCols.get().end(); - for (OValueRefVector::Vector::size_type i = 1; aIter != aEnd && i < _rRow->get().size(); + const OValueRefVector::Vector::size_type nCount = _rRow->get().size(); + for (OValueRefVector::Vector::size_type i = 1; aIter != aEnd && i < nCount; ++aIter, i++) { - m_aCurrentLine.GetTokenSpecial(aStr,nStartPos,pConnection->getFieldDelimiter(),pConnection->getStringDelimiter()); + m_aCurrentLine.GetTokenSpecial(aStr,nStartPos,m_cFieldDelimiter,m_cStringDelimiter); if (aStr.Len() == 0) (_rRow->get())[i]->setNull(); @@ -532,21 +573,17 @@ sal_Bool OFlatTable::fetchRow(OValueRefRow& _rRow,const OSQLColumns & _rCols,sal case DataType::DATE: case DataType::TIME: { - double nRes = 0.0; try { - nRes = m_xNumberFormatter->convertStringToNumber(::com::sun::star::util::NumberFormat::ALL,aStr); - Reference xProp(m_xNumberFormatter->getNumberFormatsSupplier()->getNumberFormatSettings(),UNO_QUERY); - com::sun::star::util::Date aDate; - xProp->getPropertyValue(::rtl::OUString::createFromAscii("NullDate")) >>= aDate; + double nRes = m_xNumberFormatter->convertStringToNumber(::com::sun::star::util::NumberFormat::ALL,aStr); switch(nType) { case DataType::DATE: - *(_rRow->get())[i] = ::dbtools::DBTypeConversion::toDouble(::dbtools::DBTypeConversion::toDate(nRes,aDate)); + *(_rRow->get())[i] = ::dbtools::DBTypeConversion::toDouble(::dbtools::DBTypeConversion::toDate(nRes,m_aNullDate)); break; case DataType::TIMESTAMP: - *(_rRow->get())[i] = ::dbtools::DBTypeConversion::toDouble(::dbtools::DBTypeConversion::toDateTime(nRes,aDate)); + *(_rRow->get())[i] = ::dbtools::DBTypeConversion::toDouble(::dbtools::DBTypeConversion::toDateTime(nRes,m_aNullDate)); break; default: *(_rRow->get())[i] = ::dbtools::DBTypeConversion::toDouble(::dbtools::DBTypeConversion::toTime(nRes)); @@ -562,33 +599,47 @@ sal_Bool OFlatTable::fetchRow(OValueRefRow& _rRow,const OSQLColumns & _rCols,sal case DataType::DECIMAL: // #99178# OJ case DataType::NUMERIC: { - sal_Unicode cDecimalDelimiter = pConnection->getDecimalDelimiter(); - sal_Unicode cThousandDelimiter = pConnection->getThousandDelimiter(); + String aStrConverted; + if ( DataType::INTEGER != nType ) + { + sal_Unicode* pData = aStrConverted.AllocBuffer(aStr.Len()); + const sal_Unicode* pStart = pData; - OSL_ENSURE(cDecimalDelimiter && nType != DataType::INTEGER || - !cDecimalDelimiter && nType == DataType::INTEGER, - "FalscherTyp"); + OSL_ENSURE(cDecimalDelimiter && nType != DataType::INTEGER || + !cDecimalDelimiter && nType == DataType::INTEGER, + "FalscherTyp"); - // In Standard-Notation (DezimalPUNKT ohne Tausender-Komma) umwandeln: - for (xub_StrLen j = 0; j < aStr.Len(); ++j) - { - if (cDecimalDelimiter && aStr.GetChar(j) == cDecimalDelimiter) - aStrConverted += '.'; - else if ( aStr.GetChar(j) == '.' ) // special case, if decimal seperator isn't '.' we have to vut the string after it - continue; // #99189# OJ - else if (cThousandDelimiter && aStr.GetChar(j) == cThousandDelimiter) + // In Standard-Notation (DezimalPUNKT ohne Tausender-Komma) umwandeln: + for (xub_StrLen j = 0; j < aStr.Len(); ++j) { - // weglassen - } - else - aStrConverted += aStr.GetChar(j) ; + const sal_Unicode cChar = aStr.GetChar(j); + if (cDecimalDelimiter && cChar == cDecimalDelimiter) + *pData++ = '.'; + //aStrConverted.Append( '.' ); + else if ( cChar == '.' ) // special case, if decimal seperator isn't '.' we have to put the string after it + continue; // #99189# OJ + else if (cThousandDelimiter && cChar == cThousandDelimiter) + { + // weglassen + } + else + *pData++ = cChar; + //aStrConverted.Append(cChar); + } // for (xub_StrLen j = 0; j < aStr.Len(); ++j) + aStrConverted.ReleaseBufferAccess(xub_StrLen(pData - pStart)); + } // if ( DataType::INTEGER != nType ) + else + { + aStrConverted = aStr; + if ( cThousandDelimiter ) + aStrConverted.EraseAllChars(cThousandDelimiter); } - double nVal = ::rtl::math::stringToDouble(aStrConverted,'.',',',NULL,NULL); + const double nVal = ::rtl::math::stringToDouble(aStrConverted,'.',',',NULL,NULL); // #99178# OJ if ( DataType::DECIMAL == nType || DataType::NUMERIC == nType ) - *(_rRow->get())[i] = ORowSetValue(String::CreateFromDouble(nVal)); + *(_rRow->get())[i] = ::rtl::OUString::valueOf(nVal); else *(_rRow->get())[i] = nVal; } break; @@ -599,63 +650,51 @@ sal_Bool OFlatTable::fetchRow(OValueRefRow& _rRow,const OSQLColumns & _rCols,sal *(_rRow->get())[i] = ORowSetValue(aStr); } break; - } + } // switch(nType) + (_rRow->get())[i]->setTypeKind(nType); } } return sal_True; } // ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -sal_Bool OFlatTable::checkHeaderLine() -{ - if (m_nFilePos == 0 && ((OFlatConnection*)m_pConnection)->isHeaderLine()) - { - BOOL bRead2; - do - { - bRead2 = m_pFileStream->ReadByteStringLine(m_aCurrentLine,m_pConnection->getTextEncoding()); - } - while(bRead2 && !m_aCurrentLine.Len()); - - m_nFilePos = m_pFileStream->Tell(); - if (m_pFileStream->IsEof()) - return sal_False; - } - return sal_True; -} -//------------------------------------------------------------------ sal_Bool OFlatTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int32 nOffset, sal_Int32& nCurPos) { - if ( !m_pFileStream ) - return sal_False; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "flat", "Ocke.Janssen@sun.com", "OFlatTable::seekRow" ); + OSL_ENSURE(m_pFileStream,"OFlatTable::seekRow: FileStream is NULL!"); // ---------------------------------------------------------- // Positionierung vorbereiten: - m_nFilePos = nCurPos; switch(eCursorPosition) { case IResultSetHelper::FIRST: - m_nFilePos = 0; - m_nRowPos = 1; + m_nRowPos = 0; // run through case IResultSetHelper::NEXT: - if(eCursorPosition != IResultSetHelper::FIRST) - ++m_nRowPos; - m_pFileStream->Seek(m_nFilePos); - if (m_pFileStream->IsEof() || !checkHeaderLine()) { - m_nMaxRowCount = m_nRowPos; - return sal_False; - } - - m_aRowToFilePos.insert(::std::map::value_type(m_nRowPos,m_nFilePos)); + ++m_nRowPos; + ::std::map::const_iterator aFind = m_aRowPosToFilePos.find(m_nRowPos); + m_bNeedToReadLine = aFind != m_aRowPosToFilePos.end(); + if ( m_bNeedToReadLine ) + { + m_nFilePos = aFind->second->first; + nCurPos = aFind->second->second; + } // if ( m_bNeedToReadLine ) + else + { + if ( m_nRowPos == 1 ) + m_nFilePos = m_nStartRowFilePos; + m_pFileStream->Seek(m_nFilePos); + if ( m_pFileStream->IsEof() || !readLine(nCurPos) /*|| !checkHeaderLine()*/) + { + m_nMaxRowCount = m_nRowPos; + return sal_False; + } // if ( m_pFileStream->IsEof() || !readLine(nCurPos) /*|| !checkHeaderLine()*/) - if ( !readLine(nCurPos)) - { - m_nMaxRowCount = m_nRowPos; - return sal_False; + TRowPositionsInFile::iterator aPos = m_aFilePosToEndLinePos.insert(TRowPositionsInFile::value_type(m_nFilePos,nCurPos)).first; + m_aRowPosToFilePos.insert(::std::map::value_type(m_nRowPos,aPos)); + } } break; @@ -663,28 +702,27 @@ sal_Bool OFlatTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int --m_nRowPos; if(m_nRowPos > 0) { - m_nFilePos = m_aRowToFilePos.find(m_nRowPos)->second; - m_pFileStream->Seek(m_nFilePos); - if (m_pFileStream->IsEof() || !checkHeaderLine()) - return sal_False; - if ( !readLine(nCurPos) ) - return sal_False; + TRowPositionsInFile::iterator aPositions = m_aRowPosToFilePos[m_nRowPos]; + m_nFilePos = aPositions->first; + nCurPos = aPositions->second; + m_bNeedToReadLine = true; } else m_nRowPos = 0; break; case IResultSetHelper::LAST: - if(m_nMaxRowCount) + if ( m_nMaxRowCount ) { - m_nFilePos = m_aRowToFilePos.rbegin()->second; - m_nRowPos = m_aRowToFilePos.rbegin()->first; - m_pFileStream->Seek(m_nFilePos); - if (m_pFileStream->IsEof() || !checkHeaderLine()) - return sal_False; + ::std::map::reverse_iterator aLastPos = m_aRowPosToFilePos.rbegin(); + m_nRowPos = aLastPos->first; + m_nFilePos = aLastPos->second->first; + nCurPos = aLastPos->second->second; - if ( !readLine(nCurPos) ) - return sal_False; + //m_pFileStream->Seek(m_nFilePos); + m_bNeedToReadLine = true; + //if ( m_pFileStream->IsEof() /*|| !checkHeaderLine()*/ || !readLine(nCurPos) ) + // return sal_False; } else { @@ -709,15 +747,15 @@ sal_Bool OFlatTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int { if(nOffset < 0) nOffset = m_nRowPos + nOffset; - ::std::map::const_iterator aIter = m_aRowToFilePos.find(nOffset); - if(aIter != m_aRowToFilePos.end()) + ::std::map::const_iterator aIter = m_aRowPosToFilePos.find(nOffset); + if(aIter != m_aRowPosToFilePos.end()) { - m_nFilePos = aIter->second; - m_pFileStream->Seek(m_nFilePos); - if (m_pFileStream->IsEof() || !checkHeaderLine()) - return sal_False; - if ( !readLine(nCurPos) ) - return sal_False; + m_nFilePos = aIter->second->first; + nCurPos = aIter->second->second; + //m_pFileStream->Seek(m_nFilePos); + m_bNeedToReadLine = true; + //if ( m_pFileStream->IsEof() /*|| !checkHeaderLine()*/ || !readLine(nCurPos) ) + // return sal_False; } else if(m_nMaxRowCount && nOffset > m_nMaxRowCount) // offset is outside the table { @@ -726,11 +764,12 @@ sal_Bool OFlatTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int } else { - aIter = m_aRowToFilePos.upper_bound(nOffset); - if(aIter == m_aRowToFilePos.end()) + aIter = m_aRowPosToFilePos.upper_bound(nOffset); + if(aIter == m_aRowPosToFilePos.end()) { - m_nRowPos = m_aRowToFilePos.rbegin()->first; - nCurPos = m_nFilePos = m_aRowToFilePos.rbegin()->second; + ::std::map::reverse_iterator aLastPos = m_aRowPosToFilePos.rbegin(); + m_nRowPos = aLastPos->first; + nCurPos = m_nFilePos = aLastPos->second->first; while(m_nRowPos != nOffset) seekRow(IResultSetHelper::NEXT,1,nCurPos); } @@ -738,48 +777,55 @@ sal_Bool OFlatTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int { --aIter; m_nRowPos = aIter->first; - m_nFilePos = aIter->second; - m_pFileStream->Seek(m_nFilePos); - if (m_pFileStream->IsEof() || !checkHeaderLine()) - return sal_False; - if ( !readLine(nCurPos) ) - return sal_False; + m_nFilePos = aIter->second->first; + nCurPos = aIter->second->second; + //m_pFileStream->Seek(m_nFilePos); + m_bNeedToReadLine = true; + //if ( m_pFileStream->IsEof() /*|| !checkHeaderLine()*/ || !readLine(nCurPos) ) + // return sal_False; } } } break; case IResultSetHelper::BOOKMARK: - m_pFileStream->Seek(nOffset); - if (m_pFileStream->IsEof()) - return sal_False; - - m_nFilePos = m_pFileStream->Tell(); // Byte-Position in der Datei merken (am ZeilenANFANG) - - if ( !readLine(nCurPos) ) - return sal_False; - break; + { + TRowPositionsInFile::const_iterator aFind = m_aFilePosToEndLinePos.find(nOffset); + m_bNeedToReadLine = aFind != m_aFilePosToEndLinePos.end(); + if ( m_bNeedToReadLine ) + nCurPos = aFind->second; + else + { + m_nFilePos = nOffset; + m_pFileStream->Seek(nOffset); + if (m_pFileStream->IsEof() || !readLine(nCurPos) ) + return sal_False; + } + break; + } } + //nCurPos = m_nFilePos; return sal_True; } // ----------------------------------------------------------------------------- sal_Bool OFlatTable::readLine(sal_Int32& _rnCurrentPos) { - m_pFileStream->ReadByteStringLine(m_aCurrentLine,m_pConnection->getTextEncoding()); + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "flat", "Ocke.Janssen@sun.com", "OFlatTable::readLine" ); + const rtl_TextEncoding nEncoding = m_pConnection->getTextEncoding(); + m_pFileStream->ReadByteStringLine(m_aCurrentLine,nEncoding); if (m_pFileStream->IsEof()) return sal_False; - OFlatConnection* pConnection = static_cast(m_pConnection); - QuotedTokenizedString sLine = m_aCurrentLine; - while( (sLine.GetTokenCount(pConnection->getStringDelimiter()) % 2) != 1 ) + QuotedTokenizedString sLine = m_aCurrentLine; // check if the string continues on next line + while( (sLine.GetString().GetTokenCount(m_cStringDelimiter) % 2) != 1 ) { - m_pFileStream->ReadByteStringLine(sLine,m_pConnection->getTextEncoding()); + m_pFileStream->ReadByteStringLine(sLine,nEncoding); if ( !m_pFileStream->IsEof() ) { - m_aCurrentLine.Append('\n'); - m_aCurrentLine += sLine; + m_aCurrentLine.GetString().Append('\n'); + m_aCurrentLine.GetString() += sLine.GetString(); sLine = m_aCurrentLine; } else diff --git a/connectivity/source/drivers/jdbc/Array.cxx b/connectivity/source/drivers/jdbc/Array.cxx index a046bdfda7..10f1ebd4f7 100644 --- a/connectivity/source/drivers/jdbc/Array.cxx +++ b/connectivity/source/drivers/jdbc/Array.cxx @@ -44,91 +44,43 @@ jclass java_sql_Array::theClass = 0; java_sql_Array::~java_sql_Array() {} -jclass java_sql_Array::getMyClass() +jclass java_sql_Array::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; - if( !t.pEnv ) return (jclass)NULL; - jclass tempClass = t.pEnv->FindClass( "java/sql/Array" ); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/sql/Array"); + return theClass; } -void java_sql_Array::saveClassRef( jclass pClass ) -{ - if( pClass==NULL ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} ::rtl::OUString SAL_CALL java_sql_Array::getBaseTypeName( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - ::rtl::OUString aStr; - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/lang/String;"; - static const char * cMethodName = "getBaseTypeName"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature ); - if( mID ){ - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID); - ThrowSQLException(t.pEnv,*this); - aStr = JavaString2String(t.pEnv,out); - // und aufraeumen - } //mID - } //t.pEnv - // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! - return aStr; + static jmethodID mID(NULL); + return callStringMethod("getBaseTypeName",mID); } sal_Int32 SAL_CALL java_sql_Array::getBaseType( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getBaseType"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature ); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID ); - ThrowSQLException(t.pEnv,*this); - // und aufraeumen - } //mID - } //t.pEnv - return (sal_Int32)out; + static jmethodID mID(NULL); + return callIntMethod("getBaseType",mID); } ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > SAL_CALL java_sql_Array::getArray( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& typeMap ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { jobjectArray out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { jobject obj = convertTypeMapToJavaMap(t.pEnv,typeMap); static const char * cSignature = "(Ljava/util/Map;)[Ljava/lang/Object;"; static const char * cMethodName = "getArray"; + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature ); - if( mID ){ - out = (jobjectArray)t.pEnv->CallObjectMethod( object, mID, obj); - ThrowSQLException(t.pEnv,*this); - // und aufraeumen - t.pEnv->DeleteLocalRef(obj); - } //mID + out = (jobjectArray)t.pEnv->CallObjectMethod( object, mID, obj); + ThrowSQLException(t.pEnv,*this); + // und aufraeumen + t.pEnv->DeleteLocalRef(obj); } //t.pEnv return ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >();//copyArrayAndDelete< ::com::sun::star::uno::Any,jobject>(t.pEnv,out); } @@ -137,21 +89,18 @@ sal_Int32 SAL_CALL java_sql_Array::getBaseType( ) throw(::com::sun::star::sdbc: { jobjectArray out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { jobject obj = convertTypeMapToJavaMap(t.pEnv,typeMap); static const char * cSignature = "(IILjava/util/Map;)[Ljava/lang/Object;"; static const char * cMethodName = "getArray"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature ); - if( mID ){ - out = (jobjectArray)t.pEnv->CallObjectMethod( object, mID, index,count,obj); - ThrowSQLException(t.pEnv,*this); - // und aufraeumen - t.pEnv->DeleteLocalRef(obj); - } //mID + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + out = (jobjectArray)t.pEnv->CallObjectMethod( object, mID, index,count,obj); + ThrowSQLException(t.pEnv,*this); + // und aufraeumen + t.pEnv->DeleteLocalRef(obj); } //t.pEnv return ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >();//copyArrayAndDelete< ::com::sun::star::uno::Any,jobject>(t.pEnv,out); } @@ -160,22 +109,19 @@ sal_Int32 SAL_CALL java_sql_Array::getBaseType( ) throw(::com::sun::star::sdbc: { jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ + { // Parameter konvertieren jobject obj = convertTypeMapToJavaMap(t.pEnv,typeMap); // temporaere Variable initialisieren static const char * cSignature = "(Ljava/util/Map;)Ljava/sql/ResultSet;"; static const char * cMethodName = "getResultSet"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature ); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, obj); - ThrowSQLException(t.pEnv,*this); - // und aufraeumen - t.pEnv->DeleteLocalRef(obj); - } //mID + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + out = t.pEnv->CallObjectMethod( object, mID, obj); + ThrowSQLException(t.pEnv,*this); + // und aufraeumen + t.pEnv->DeleteLocalRef(obj); } //t.pEnv // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! // return out==0 ? 0 : new java_sql_ResultSet( t.pEnv, out ); @@ -186,22 +132,19 @@ sal_Int32 SAL_CALL java_sql_Array::getBaseType( ) throw(::com::sun::star::sdbc: { jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ + { // Parameter konvertieren jobject obj = convertTypeMapToJavaMap(t.pEnv,typeMap); // temporaere Variable initialisieren static const char * cSignature = "(Ljava/util/Map;)Ljava/sql/ResultSet;"; static const char * cMethodName = "getResultSetAtIndex"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature ); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, index,count,obj); - ThrowSQLException(t.pEnv,*this); - // und aufraeumen - t.pEnv->DeleteLocalRef(obj); - } //mID + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + out = t.pEnv->CallObjectMethod( object, mID, index,count,obj); + ThrowSQLException(t.pEnv,*this); + // und aufraeumen + t.pEnv->DeleteLocalRef(obj); } //t.pEnv // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! // return out==0 ? 0 : new java_sql_ResultSet( t.pEnv, out ); diff --git a/connectivity/source/drivers/jdbc/Blob.cxx b/connectivity/source/drivers/jdbc/Blob.cxx index d7631c3c6c..e94e50ebf3 100644 --- a/connectivity/source/drivers/jdbc/Blob.cxx +++ b/connectivity/source/drivers/jdbc/Blob.cxx @@ -56,46 +56,28 @@ java_sql_Blob::~java_sql_Blob() SDBThreadAttach::releaseRef(); } -jclass java_sql_Blob::getMyClass() +jclass java_sql_Blob::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; - if( !t.pEnv ) return (jclass)NULL; - jclass tempClass = t.pEnv->FindClass( "java/sql/Blob" ); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/sql/Blob"); return theClass; } -void java_sql_Blob::saveClassRef( jclass pClass ) -{ - if( pClass==NULL ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} - sal_Int64 SAL_CALL java_sql_Blob::length( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { jlong out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { // temporaere Variable initialisieren static const char * cSignature = "()J"; static const char * cMethodName = "length"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallLongMethod( object, mID ); - ThrowSQLException(t.pEnv,*this); - // und aufraeumen - } //mID + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + out = t.pEnv->CallLongMethod( object, mID ); + ThrowSQLException(t.pEnv,*this); } //t.pEnv return (sal_Int64)out; } @@ -104,26 +86,22 @@ sal_Int64 SAL_CALL java_sql_Blob::length( ) throw(::com::sun::star::sdbc::SQLEx SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); ::com::sun::star::uno::Sequence< sal_Int8 > aSeq; - if( t.pEnv ){ + { // temporaere Variable initialisieren static const char * cSignature = "(JI)[B"; static const char * cMethodName = "getBytes"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jbyteArray out = (jbyteArray)t.pEnv->CallObjectMethod( object, mID,pos,count); - ThrowSQLException(t.pEnv,*this); - if(out) - { - jboolean p = sal_False; - aSeq.realloc(t.pEnv->GetArrayLength(out)); - memcpy(aSeq.getArray(),t.pEnv->GetByteArrayElements(out,&p),aSeq.getLength()); - t.pEnv->DeleteLocalRef(out); - } - // und aufraeumen - } //mID + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + jbyteArray out = (jbyteArray)t.pEnv->CallObjectMethod( object, mID,pos,count); + ThrowSQLException(t.pEnv,*this); + if(out) + { + jboolean p = sal_False; + aSeq.realloc(t.pEnv->GetArrayLength(out)); + memcpy(aSeq.getArray(),t.pEnv->GetByteArrayElements(out,&p),aSeq.getLength()); + t.pEnv->DeleteLocalRef(out); + } } //t.pEnv // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return aSeq; @@ -131,21 +109,9 @@ sal_Int64 SAL_CALL java_sql_Blob::length( ) throw(::com::sun::star::sdbc::SQLEx ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL java_sql_Blob::getBinaryStream( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/io/InputStream;"; - static const char * cMethodName = "getBinaryStream"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID); - ThrowSQLException(t.pEnv,*this); - } //mID - } //t.pEnv + static jmethodID mID(NULL); + jobject out = callObjectMethod(t.pEnv,"getBinaryStream","()Ljava/io/InputStream;", mID); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out==0 ? 0 : new java_io_InputStream( t.pEnv, out ); } @@ -154,24 +120,20 @@ sal_Int64 SAL_CALL java_sql_Blob::position( const ::com::sun::star::uno::Sequenc { jlong out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { // temporaere Variable initialisieren static const char * cSignature = "([BI)J"; static const char * cMethodName = "position"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - // Parameter konvertieren - jbyteArray pByteArray = t.pEnv->NewByteArray(pattern.getLength()); - t.pEnv->SetByteArrayRegion(pByteArray,0,pattern.getLength(),(jbyte*)pattern.getConstArray()); - out = t.pEnv->CallLongMethod( object, mID, pByteArray,start ); - t.pEnv->DeleteLocalRef(pByteArray); - ThrowSQLException(t.pEnv,*this); - // und aufraeumen - } //mID + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + // Parameter konvertieren + jbyteArray pByteArray = t.pEnv->NewByteArray(pattern.getLength()); + t.pEnv->SetByteArrayRegion(pByteArray,0,pattern.getLength(),(jbyte*)pattern.getConstArray()); + out = t.pEnv->CallLongMethod( object, mID, pByteArray,start ); + t.pEnv->DeleteLocalRef(pByteArray); + ThrowSQLException(t.pEnv,*this); } //t.pEnv return (sal_Int64)out; } diff --git a/connectivity/source/drivers/jdbc/Boolean.cxx b/connectivity/source/drivers/jdbc/Boolean.cxx index 97d6520674..4e17033cee 100644 --- a/connectivity/source/drivers/jdbc/Boolean.cxx +++ b/connectivity/source/drivers/jdbc/Boolean.cxx @@ -41,43 +41,26 @@ jclass java_lang_Boolean::theClass = 0; java_lang_Boolean::~java_lang_Boolean() {} -jclass java_lang_Boolean::getMyClass() +jclass java_lang_Boolean::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; - if( !t.pEnv ) return (jclass)NULL; - jclass tempClass = t.pEnv->FindClass("java/lang/Boolean"); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); + if( !theClass ) + { + theClass = findMyClass("java/lang/Boolean"); } return theClass; } -void java_lang_Boolean::saveClassRef( jclass pClass ) +java_lang_Boolean::java_lang_Boolean( sal_Bool _par0 ): java_lang_Object( NULL, (jobject)NULL ) { - if( pClass==NULL ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} - -java_lang_Boolean::java_lang_Boolean( sal_Bool _par0 ): java_lang_Object( NULL, (jobject)NULL ){ SDBThreadAttach t; - if( !t.pEnv ) - return; - jvalue args[1]; - // Parameter konvertieren - args[0].z = _par0; // Java-Call fuer den Konstruktor absetzen // temporaere Variable initialisieren static const char * cSignature = "(Z)V"; jobject tempObj; - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), "", cSignature );OSL_ENSURE(mID,"Unknown method id!"); - tempObj = t.pEnv->NewObjectA( getMyClass(), mID, args ); + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, "",cSignature, mID); + tempObj = t.pEnv->NewObject( getMyClass(), mID, _par0 ); saveRef( t.pEnv, tempObj ); t.pEnv->DeleteLocalRef( tempObj ); // und aufraeumen diff --git a/connectivity/source/drivers/jdbc/CallableStatement.cxx b/connectivity/source/drivers/jdbc/CallableStatement.cxx index c83c8ea687..8167c0ee8a 100644 --- a/connectivity/source/drivers/jdbc/CallableStatement.cxx +++ b/connectivity/source/drivers/jdbc/CallableStatement.cxx @@ -83,78 +83,22 @@ Any SAL_CALL java_sql_CallableStatement::queryInterface( const Type & rType ) th // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_CallableStatement::wasNull( ) throw(starsdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - - { - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "wasNull"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethod( "wasNull", mID ); } sal_Bool SAL_CALL java_sql_CallableStatement::getBoolean( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - - { - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)Z"; - static const char * cMethodName = "getBoolean"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID, columnIndex ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethodWithIntArg( "getBoolean", mID,columnIndex ); } sal_Int8 SAL_CALL java_sql_CallableStatement::getByte( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jbyte out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - - { - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)B"; - static const char * cMethodName = "getByte"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallByteMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return out; + createStatement(t.pEnv); + static jmethodID mID(NULL); + jbyte (JNIEnv::*pCallMethod)( jobject obj, jmethodID methodID, ... ) = &JNIEnv::CallByteMethod; + return callMethodWithIntArg(pCallMethod,"getByte","(I)B",mID,columnIndex); } Sequence< sal_Int8 > SAL_CALL java_sql_CallableStatement::getBytes( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException) { @@ -163,205 +107,78 @@ Sequence< sal_Int8 > SAL_CALL java_sql_CallableStatement::getBytes( sal_Int32 co Sequence< sal_Int8 > aSeq; SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + createStatement(t.pEnv); + static jmethodID mID(NULL); + jbyteArray out = (jbyteArray)callObjectMethodWithIntArg(t.pEnv,"getBytes","(I)[B", mID, columnIndex); + if (out) { - createStatement(t.pEnv); - static const char * cSignature = "(I)[B"; - static const char * cMethodName = "getBytes"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jbyteArray out(0); - out = (jbyteArray)t.pEnv->CallObjectMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - if (out) - { - jboolean p = sal_False; - aSeq.realloc(t.pEnv->GetArrayLength(out)); - memcpy(aSeq.getArray(),t.pEnv->GetByteArrayElements(out,&p),aSeq.getLength()); - t.pEnv->DeleteLocalRef(out); - } - // und aufraeumen - } //mID - } //t.pEnv + jboolean p = sal_False; + aSeq.realloc(t.pEnv->GetArrayLength(out)); + memcpy(aSeq.getArray(),t.pEnv->GetByteArrayElements(out,&p),aSeq.getLength()); + t.pEnv->DeleteLocalRef(out); + } return aSeq; } ::com::sun::star::util::Date SAL_CALL java_sql_CallableStatement::getDate( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - - { - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/sql/Date;"; - static const char * cMethodName = "getDate"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, columnIndex ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! + createStatement(t.pEnv); + static jmethodID mID(NULL); + jobject out = callObjectMethodWithIntArg(t.pEnv,"getDate","(I)Ljava/sql/Date;", mID, columnIndex); return out ? static_cast (java_sql_Date( t.pEnv, out )) : ::com::sun::star::util::Date(); } double SAL_CALL java_sql_CallableStatement::getDouble( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jdouble out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)D"; - static const char * cMethodName = "getDouble"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallDoubleMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return out; + createStatement(t.pEnv); + static jmethodID mID(NULL); + double (JNIEnv::*pCallMethod)( jobject obj, jmethodID methodID, ... ) = &JNIEnv::CallDoubleMethod; + return callMethodWithIntArg(pCallMethod,"getDouble","(I)D",mID,columnIndex); } float SAL_CALL java_sql_CallableStatement::getFloat( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jfloat out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - - { - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)F"; - static const char * cMethodName = "getFloat"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallFloatMethod( object, mID, columnIndex ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return out; + createStatement(t.pEnv); + static jmethodID mID(NULL); + jfloat (JNIEnv::*pCallMethod)( jobject obj, jmethodID methodID, ... ) = &JNIEnv::CallFloatMethod; + return callMethodWithIntArg(pCallMethod,"getFloat","(I)F",mID,columnIndex); } sal_Int32 SAL_CALL java_sql_CallableStatement::getInt( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jint out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - - { - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)I"; - static const char * cMethodName = "getInt"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID, columnIndex ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return (sal_Int32)out; + createStatement(t.pEnv); + static jmethodID mID(NULL); + return callIntMethodWithIntArg("getInt",mID,columnIndex); } sal_Int64 SAL_CALL java_sql_CallableStatement::getLong( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jlong out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)J"; - static const char * cMethodName = "getLong"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallLongMethod( object, mID, columnIndex ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return out; + createStatement(t.pEnv); + static jmethodID mID(NULL); + jlong (JNIEnv::*pCallMethod)( jobject obj, jmethodID methodID, ... ) = &JNIEnv::CallLongMethod; + return callMethodWithIntArg(pCallMethod,"getLong","(I)J",mID,columnIndex); } Any SAL_CALL java_sql_CallableStatement::getObject( sal_Int32 columnIndex, const Reference< ::com::sun::star::container::XNameAccess >& /*typeMap*/ ) throw(starsdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/lang/Object;"; - static const char * cMethodName = "getObject"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + /*jobject out = */callObjectMethodWithIntArg(t.pEnv,"getObject","(I)Ljava/lang/Object;", mID, columnIndex); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return Any(); //out==0 ? 0 : new java_lang_Object( t.pEnv, out ); } sal_Int16 SAL_CALL java_sql_CallableStatement::getShort( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jshort out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)S"; - static const char * cMethodName = "getShort"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallShortMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return (sal_Int16)out; + createStatement(t.pEnv); + static jmethodID mID(NULL); + jshort (JNIEnv::*pCallMethod)( jobject obj, jmethodID methodID, ... ) = &JNIEnv::CallShortMethod; + return callMethodWithIntArg(pCallMethod,"getShort","(I)S",mID,columnIndex); } ::rtl::OUString SAL_CALL java_sql_CallableStatement::getString( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException) @@ -369,74 +186,27 @@ sal_Int16 SAL_CALL java_sql_CallableStatement::getShort( sal_Int32 columnIndex ) ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - ::rtl::OUString aStr; - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/lang/String;"; - static const char * cMethodName = "getString"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID, columnIndex ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - aStr = JavaString2String(t.pEnv,out); - // und aufraeumen - } //mID - } //t.pEnv - // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! - return aStr; + createStatement(t.pEnv); + static jmethodID mID(NULL); + return callStringMethodWithIntArg("getString",mID,columnIndex); } ::com::sun::star::util::Time SAL_CALL java_sql_CallableStatement::getTime( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - - { - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/sql/Time;"; - static const char * cMethodName = "getTime"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + jobject out = callObjectMethodWithIntArg(t.pEnv,"getTime","(I)Ljava/sql/Time;", mID, columnIndex); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out ? static_cast (java_sql_Time( t.pEnv, out )) : ::com::sun::star::util::Time(); } ::com::sun::star::util::DateTime SAL_CALL java_sql_CallableStatement::getTimestamp( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/sql/Timestamp;"; - static const char * cMethodName = "getTimestamp"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + jobject out = callObjectMethodWithIntArg(t.pEnv,"getTimestamp","(I)Ljava/sql/Timestamp;", mID, columnIndex); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out ? static_cast (java_sql_Timestamp( t.pEnv, out )) : ::com::sun::star::util::DateTime(); } @@ -446,7 +216,7 @@ void SAL_CALL java_sql_CallableStatement::registerOutParameter( sal_Int32 parame ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { createStatement(t.pEnv); @@ -454,17 +224,13 @@ void SAL_CALL java_sql_CallableStatement::registerOutParameter( sal_Int32 parame static const char * cSignature = "(IILjava/lang/String;)V"; static const char * cMethodName = "registerOutParameter"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - // Parameter konvertieren - jstring str = convertwchar_tToJavaString(t.pEnv,typeName); - t.pEnv->CallVoidMethod( object, mID, parameterIndex,sqlType,str); - t.pEnv->DeleteLocalRef(str); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + // Parameter konvertieren + jstring str = convertwchar_tToJavaString(t.pEnv,typeName); + t.pEnv->CallVoidMethod( object, mID, parameterIndex,sqlType,str); + t.pEnv->DeleteLocalRef(str); + ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); } } void SAL_CALL java_sql_CallableStatement::registerNumericOutParameter( sal_Int32 parameterIndex, sal_Int32 sqlType, sal_Int32 scale ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) @@ -472,48 +238,30 @@ void SAL_CALL java_sql_CallableStatement::registerNumericOutParameter( sal_Int32 ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { createStatement(t.pEnv); // temporaere Variable initialisieren static const char * cSignature = "(III)V"; static const char * cMethodName = "registerOutParameter"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - t.pEnv->CallVoidMethod( object, mID, parameterIndex,sqlType,scale); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + t.pEnv->CallVoidMethod( object, mID, parameterIndex,sqlType,scale); + ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); } } jclass java_sql_CallableStatement::theClass = 0; -jclass java_sql_CallableStatement::getMyClass() +jclass java_sql_CallableStatement::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( !t.pEnv ) return (jclass)0; - jclass tempClass = t.pEnv->FindClass("java/sql/CallableStatement"); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/sql/CallableStatement"); return theClass; } -void java_sql_CallableStatement::saveClassRef( jclass pClass ) -{ - if( pClass==0 ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} - Reference< ::com::sun::star::io::XInputStream > SAL_CALL java_sql_CallableStatement::getBinaryStream( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException) { Reference< starsdbc::XBlob > xBlob = getBlob(columnIndex); @@ -527,99 +275,39 @@ Reference< ::com::sun::star::io::XInputStream > SAL_CALL java_sql_CallableStatem Reference< starsdbc::XArray > SAL_CALL java_sql_CallableStatement::getArray( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/sql/Array;"; - static const char * cMethodName = "getArray"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + jobject out = callObjectMethodWithIntArg(t.pEnv,"getArray","(I)Ljava/sql/Array;", mID, columnIndex); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out==0 ? 0 : new java_sql_Array( t.pEnv, out ); } Reference< starsdbc::XClob > SAL_CALL java_sql_CallableStatement::getClob( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/sql/Clob;"; - static const char * cMethodName = "getClob"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + jobject out = callObjectMethodWithIntArg(t.pEnv,"getClob","(I)Ljava/sql/Clob;", mID, columnIndex); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out==0 ? 0 : new java_sql_Clob( t.pEnv, out ); } Reference< starsdbc::XBlob > SAL_CALL java_sql_CallableStatement::getBlob( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/sql/Blob;"; - static const char * cMethodName = "getBlob"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + jobject out = callObjectMethodWithIntArg(t.pEnv,"getBlob","(I)Ljava/sql/Blob;", mID, columnIndex); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out==0 ? 0 : new java_sql_Blob( t.pEnv, out ); } Reference< starsdbc::XRef > SAL_CALL java_sql_CallableStatement::getRef( sal_Int32 columnIndex ) throw(starsdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/sql/Ref;"; - static const char * cMethodName = "getRef"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + jobject out = callObjectMethodWithIntArg(t.pEnv,"getRef","(I)Ljava/sql/Ref;", mID, columnIndex); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out==0 ? 0 : new java_sql_Ref( t.pEnv, out ); } @@ -650,7 +338,7 @@ void java_sql_CallableStatement::createStatement(JNIEnv* /*_pEnv*/) // Parameter konvertieren jstring str = convertwchar_tToJavaString(t.pEnv,m_sSqlStatement); - static jmethodID mID = NULL; + static jmethodID mID(NULL); if ( !mID ) mID = t.pEnv->GetMethodID( m_pConnection->getMyClass(), cMethodName, cSignature ); if( mID ){ diff --git a/connectivity/source/drivers/jdbc/Class.cxx b/connectivity/source/drivers/jdbc/Class.cxx index 881b035fdb..0349e79303 100644 --- a/connectivity/source/drivers/jdbc/Class.cxx +++ b/connectivity/source/drivers/jdbc/Class.cxx @@ -44,33 +44,19 @@ jclass java_lang_Class::theClass = 0; java_lang_Class::~java_lang_Class() {} -jclass java_lang_Class::getMyClass() +jclass java_lang_Class::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; - if( !t.pEnv ) return (jclass)NULL; - jclass tempClass = t.pEnv->FindClass("java/lang/Class"); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/lang/Class"); return theClass; } -void java_lang_Class::saveClassRef( jclass pClass ) -{ - if( pClass==NULL ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} - java_lang_Class * java_lang_Class::forName( const ::rtl::OUString& _par0 ) { jobject out(NULL); SDBThreadAttach t; - if( t.pEnv ) + { ::rtl::OString sClassName = ::rtl::OUStringToOString(_par0, RTL_TEXTENCODING_JAVA_UTF8); sClassName = sClassName.replace('.','/'); @@ -81,93 +67,10 @@ java_lang_Class * java_lang_Class::forName( const ::rtl::OUString& _par0 ) return out==0 ? NULL : new java_lang_Class( t.pEnv, out ); } -sal_Bool java_lang_Class::isAssignableFrom( java_lang_Class * _par0 ) -{ - jboolean out(0); - SDBThreadAttach t; - if( t.pEnv ){ - - // temporaere Variable initialisieren - static const char * cSignature = "(Ljava/lang/Class;)Z"; - static const char * cMethodName = "isAssignableFrom"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jvalue args[1]; - // Parameter konvertieren - args[0].l = _par0 != NULL ? ((java_lang_Object *)_par0)->getJavaObject() : NULL; - out = t.pEnv->CallBooleanMethod( object, mID, args[0].l ); - ThrowSQLException(t.pEnv,0); - // und aufraeumen - } //mID - } //t.pEnv - return out; -} - -java_lang_Object * java_lang_Class::newInstance() -{ - jobject out(NULL); - SDBThreadAttach t; - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/lang/Object;"; - static const char * cMethodName = "newInstance"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID); - ThrowSQLException(t.pEnv,0); - } //mID - } //t.pEnv - // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! - return out==0 ? NULL : new java_lang_Object( t.pEnv, out ); -} - jobject java_lang_Class::newInstanceObject() { - jobject out(NULL); SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/lang/Object;"; - static const char * cMethodName = "newInstance"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID); - ThrowSQLException(t.pEnv,0); - } //mID - } //t.pEnv - // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! - return out; -} - -::rtl::OUString java_lang_Class::getName() -{ - SDBThreadAttach t; - ::rtl::OUString aStr; - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/lang/String;"; - static const char * cMethodName = "getName"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID); - ThrowSQLException(t.pEnv,0); - aStr = JavaString2String(t.pEnv, (jstring)out ); - } //mID - } //t.pEnv - // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! - return aStr; + static jmethodID mID(NULL); + return callObjectMethod(t.pEnv,"newInstance","()Ljava/lang/Object;", mID); } diff --git a/connectivity/source/drivers/jdbc/Clob.cxx b/connectivity/source/drivers/jdbc/Clob.cxx index c602c26ffe..c3c53d5809 100644 --- a/connectivity/source/drivers/jdbc/Clob.cxx +++ b/connectivity/source/drivers/jdbc/Clob.cxx @@ -51,46 +51,28 @@ java_sql_Clob::~java_sql_Clob() SDBThreadAttach::releaseRef(); } -jclass java_sql_Clob::getMyClass() +jclass java_sql_Clob::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; - if( !t.pEnv ) return (jclass)NULL; - jclass tempClass = t.pEnv->FindClass( "java/sql/Clob" ); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/sql/Clob"); return theClass; } -void java_sql_Clob::saveClassRef( jclass pClass ) -{ - if( pClass==NULL ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} - sal_Int64 SAL_CALL java_sql_Clob::length( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { jlong out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { // temporaere Variable initialisieren static const char * cSignature = "()J"; static const char * cMethodName = "length"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallLongMethod( object, mID ); - ThrowSQLException(t.pEnv,*this); - // und aufraeumen - } //mID + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + out = t.pEnv->CallLongMethod( object, mID ); + ThrowSQLException(t.pEnv,*this); } //t.pEnv return (sal_Int64)out; } @@ -99,20 +81,16 @@ sal_Int64 SAL_CALL java_sql_Clob::length( ) throw(::com::sun::star::sdbc::SQLEx { SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); ::rtl::OUString aStr; - if( t.pEnv ){ + { // temporaere Variable initialisieren static const char * cSignature = "(JI)Ljava/lang/String;"; static const char * cMethodName = "getSubString"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID,pos,subStringLength); - ThrowSQLException(t.pEnv,*this); - aStr = JavaString2String(t.pEnv,out); - // und aufraeumen - } //mID + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID,pos,subStringLength); + ThrowSQLException(t.pEnv,*this); + aStr = JavaString2String(t.pEnv,out); } //t.pEnv // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return aStr; @@ -120,21 +98,10 @@ sal_Int64 SAL_CALL java_sql_Clob::length( ) throw(::com::sun::star::sdbc::SQLEx ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL java_sql_Clob::getCharacterStream( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { - jobject out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/io/Reader;"; - static const char * cMethodName = "getCharacterStream"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID); - ThrowSQLException(t.pEnv,*this); - } //mID - } //t.pEnv + SDBThreadAttach t; + static jmethodID mID(NULL); + jobject out = callObjectMethod(t.pEnv,"getCharacterStream","()Ljava/io/Reader;", mID); + // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out==0 ? 0 : new java_io_Reader( t.pEnv, out ); } @@ -143,7 +110,7 @@ sal_Int64 SAL_CALL java_sql_Clob::position( const ::rtl::OUString& searchstr, sa { jlong out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { jvalue args[1]; // Parameter konvertieren @@ -152,15 +119,11 @@ sal_Int64 SAL_CALL java_sql_Clob::position( const ::rtl::OUString& searchstr, sa static const char * cSignature = "(Ljava/lang/String;I)J"; static const char * cMethodName = "position"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallLongMethod( object, mID, args[0].l,start ); - ThrowSQLException(t.pEnv,*this); - t.pEnv->DeleteLocalRef((jstring)args[0].l); - // und aufraeumen - } //mID + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + out = t.pEnv->CallLongMethod( object, mID, args[0].l,start ); + ThrowSQLException(t.pEnv,*this); + t.pEnv->DeleteLocalRef((jstring)args[0].l); } //t.pEnv return (sal_Int64)out; } diff --git a/connectivity/source/drivers/jdbc/DatabaseMetaData.cxx b/connectivity/source/drivers/jdbc/DatabaseMetaData.cxx index e782693940..d04196c769 100644 --- a/connectivity/source/drivers/jdbc/DatabaseMetaData.cxx +++ b/connectivity/source/drivers/jdbc/DatabaseMetaData.cxx @@ -62,17 +62,11 @@ java_sql_DatabaseMetaData::~java_sql_DatabaseMetaData() SDBThreadAttach::releaseRef(); } -jclass java_sql_DatabaseMetaData::getMyClass() +jclass java_sql_DatabaseMetaData::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( !t.pEnv ) return (jclass)0; - jclass tempClass = t.pEnv->FindClass("java/sql/DatabaseMetaData"); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/sql/DatabaseMetaData"); return theClass; } // ----------------------------------------------------------------------------- @@ -85,50 +79,42 @@ java_sql_DatabaseMetaData::java_sql_DatabaseMetaData( JNIEnv * pEnv, jobject myO SDBThreadAttach::addRef(); } -// ------------------------------------------------------------------------- -void java_sql_DatabaseMetaData::saveClassRef( jclass pClass ) -{ - if( pClass==0 ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} // ------------------------------------------------------------------------- Reference< XResultSet > java_sql_DatabaseMetaData::impl_getTypeInfo_throw( ) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callResultSetMethod( "getTypeInfo", mID ); } // ------------------------------------------------------------------------- Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getCatalogs( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callResultSetMethod( "getCatalogs", mID ); } // ------------------------------------------------------------------------- ::rtl::OUString java_sql_DatabaseMetaData::impl_getCatalogSeparator_throw( ) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callStringMethod( "getCatalogSeparator", mID ); } // ------------------------------------------------------------------------- Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getSchemas( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callResultSetMethod( "getSchemas", mID ); } // ------------------------------------------------------------------------- Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getColumnPrivileges( const Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table, const ::rtl::OUString& columnNamePattern ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callResultSetMethodWithStrings( "getColumnPrivileges", mID, catalog, schema, table, &columnNamePattern ); } // ------------------------------------------------------------------------- Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getColumns( const Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& tableNamePattern, const ::rtl::OUString& columnNamePattern ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callResultSetMethodWithStrings( "getColumns", mID, catalog, schemaPattern, tableNamePattern, &columnNamePattern ); } @@ -143,109 +129,100 @@ Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getTables( jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + OSL_VERIFY_RES( !isExceptionOccured(t.pEnv,sal_True),"Exception occured!"); + jvalue args[4]; + + args[3].l = 0; + sal_Int32 typeFilterCount = _types.getLength(); + if ( typeFilterCount ) { - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature ); + jobjectArray pObjArray = static_cast< jobjectArray >( t.pEnv->NewObjectArray( (jsize)typeFilterCount, java_lang_String::getMyClass(), 0 ) ); OSL_VERIFY_RES( !isExceptionOccured( t.pEnv, sal_True ), "Exception occured!" ); - } - OSL_ENSURE( mID, "Unknown method id!" ); - if( mID ) - { - jvalue args[4]; - - args[3].l = 0; - sal_Int32 typeFilterCount = _types.getLength(); - if ( typeFilterCount ) + const ::rtl::OUString* typeFilter = _types.getConstArray(); + bool bIncludeAllTypes = false; + for ( sal_Int32 i=0; i( t.pEnv->NewObjectArray( (jsize)typeFilterCount, java_lang_String::getMyClass(), 0 ) ); - OSL_VERIFY_RES( !isExceptionOccured( t.pEnv, sal_True ), "Exception occured!" ); - - const ::rtl::OUString* typeFilter = _types.getConstArray(); - bool bIncludeAllTypes = false; - for ( sal_Int32 i=0; iequalsAsciiL( "%", 1 ) ) { - if ( typeFilter->equalsAsciiL( "%", 1 ) ) - { - bIncludeAllTypes = true; - break; - } - jstring aT = convertwchar_tToJavaString( t.pEnv, *typeFilter ); - t.pEnv->SetObjectArrayElement( pObjArray, (jsize)i, aT ); - OSL_VERIFY_RES( !isExceptionOccured( t.pEnv, sal_True ), "Exception occured!" ); - } - - if ( bIncludeAllTypes ) - { - // the SDBC API allows to pass "%" as table type filter, but in JDBC, "all table types" - // is represented by the table type being - t.pEnv->DeleteLocalRef( pObjArray ); - OSL_VERIFY_RES( !isExceptionOccured( t.pEnv, sal_True ), "Exception occured!" ); + bIncludeAllTypes = true; + break; } - else - { - args[3].l = pObjArray; - } - } - - // if we are to display "all catalogs", then respect m_aCatalogRestriction - Any aCatalogFilter( catalog ); - if ( !aCatalogFilter.hasValue() ) - aCatalogFilter = m_pConnection->getCatalogRestriction(); - // similar for schema - Any aSchemaFilter; - if ( schemaPattern.equalsAsciiL( "%", 1 ) ) - aSchemaFilter = m_pConnection->getSchemaRestriction(); - else - aSchemaFilter <<= schemaPattern; - - args[0].l = aCatalogFilter.hasValue() ? convertwchar_tToJavaString( t.pEnv, ::comphelper::getString( aCatalogFilter ) ) : NULL; - args[1].l = aSchemaFilter.hasValue() ? convertwchar_tToJavaString( t.pEnv, ::comphelper::getString( aSchemaFilter ) ) : NULL; - args[2].l = convertwchar_tToJavaString(t.pEnv,tableNamePattern); - out = t.pEnv->CallObjectMethod( object, mID, args[0].l, args[1].l,args[2].l,args[3].l); - jthrowable jThrow = t.pEnv->ExceptionOccurred(); - if ( jThrow ) - t.pEnv->ExceptionClear();// we have to clear the exception here because we want to handle it below - - if ( aCatalogFilter.hasValue() ) - { - t.pEnv->DeleteLocalRef((jstring)args[0].l); - OSL_VERIFY_RES( !isExceptionOccured( t.pEnv, sal_True ), "Exception occured!" ); - } - if(args[1].l) - { - t.pEnv->DeleteLocalRef((jstring)args[1].l); + jstring aT = convertwchar_tToJavaString( t.pEnv, *typeFilter ); + t.pEnv->SetObjectArrayElement( pObjArray, (jsize)i, aT ); OSL_VERIFY_RES( !isExceptionOccured( t.pEnv, sal_True ), "Exception occured!" ); } - if(tableNamePattern.getLength()) + + if ( bIncludeAllTypes ) { - t.pEnv->DeleteLocalRef((jstring)args[2].l); + // the SDBC API allows to pass "%" as table type filter, but in JDBC, "all table types" + // is represented by the table type being + t.pEnv->DeleteLocalRef( pObjArray ); OSL_VERIFY_RES( !isExceptionOccured( t.pEnv, sal_True ), "Exception occured!" ); } - //for(INT16 i=0;iDeleteLocalRef( (jobjectArray)args[3].l ); - OSL_VERIFY_RES( !isExceptionOccured( t.pEnv, sal_True ), "Exception occured!" ); + args[3].l = pObjArray; } + } + + // if we are to display "all catalogs", then respect m_aCatalogRestriction + Any aCatalogFilter( catalog ); + if ( !aCatalogFilter.hasValue() ) + aCatalogFilter = m_pConnection->getCatalogRestriction(); + // similar for schema + Any aSchemaFilter; + if ( schemaPattern.equalsAsciiL( "%", 1 ) ) + aSchemaFilter = m_pConnection->getSchemaRestriction(); + else + aSchemaFilter <<= schemaPattern; + + args[0].l = aCatalogFilter.hasValue() ? convertwchar_tToJavaString( t.pEnv, ::comphelper::getString( aCatalogFilter ) ) : NULL; + args[1].l = aSchemaFilter.hasValue() ? convertwchar_tToJavaString( t.pEnv, ::comphelper::getString( aSchemaFilter ) ) : NULL; + args[2].l = convertwchar_tToJavaString(t.pEnv,tableNamePattern); + out = t.pEnv->CallObjectMethod( object, mID, args[0].l, args[1].l,args[2].l,args[3].l); + jthrowable jThrow = t.pEnv->ExceptionOccurred(); + if ( jThrow ) + t.pEnv->ExceptionClear();// we have to clear the exception here because we want to handle it below + if ( aCatalogFilter.hasValue() ) + { + t.pEnv->DeleteLocalRef((jstring)args[0].l); + OSL_VERIFY_RES( !isExceptionOccured( t.pEnv, sal_True ), "Exception occured!" ); + } + if(args[1].l) + { + t.pEnv->DeleteLocalRef((jstring)args[1].l); + OSL_VERIFY_RES( !isExceptionOccured( t.pEnv, sal_True ), "Exception occured!" ); + } + if(tableNamePattern.getLength()) + { + t.pEnv->DeleteLocalRef((jstring)args[2].l); + OSL_VERIFY_RES( !isExceptionOccured( t.pEnv, sal_True ), "Exception occured!" ); + } + //for(INT16 i=0;iDeleteLocalRef( (jobjectArray)args[3].l ); + OSL_VERIFY_RES( !isExceptionOccured( t.pEnv, sal_True ), "Exception occured!" ); + } - if ( jThrow ) + if ( jThrow ) + { + if ( t.pEnv->IsInstanceOf( jThrow,java_sql_SQLException_BASE::getMyClass() ) ) { - if ( t.pEnv->IsInstanceOf( jThrow,java_sql_SQLException_BASE::getMyClass() ) ) - { - java_sql_SQLException_BASE* pException = new java_sql_SQLException_BASE( t.pEnv, jThrow ); - SQLException e( pException->getMessage(), - *this, - pException->getSQLState(), - pException->getErrorCode(), - Any() - ); - delete pException; - throw e; - } + java_sql_SQLException_BASE* pException = new java_sql_SQLException_BASE( t.pEnv, jThrow ); + SQLException e( pException->getMessage(), + *this, + pException->getSQLState(), + pException->getErrorCode(), + Any() + ); + delete pException; + throw e; } } } @@ -260,114 +237,114 @@ Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getTables( Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getProcedureColumns( const Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& procedureNamePattern, const ::rtl::OUString& columnNamePattern ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callResultSetMethodWithStrings( "getProcedureColumns", mID, catalog, schemaPattern, procedureNamePattern, &columnNamePattern ); } // ------------------------------------------------------------------------- Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getProcedures( const Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& procedureNamePattern ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callResultSetMethodWithStrings( "getProcedures", mID, catalog, schemaPattern, procedureNamePattern ); } // ------------------------------------------------------------------------- Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getVersionColumns( const Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callResultSetMethodWithStrings( "getVersionColumns", mID, catalog, schema, table ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxBinaryLiteralLength( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxBinaryLiteralLength", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxRowSize( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxRowSize", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxCatalogNameLength( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxCatalogNameLength", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxCharLiteralLength( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxCharLiteralLength", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxColumnNameLength( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxColumnNameLength", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxColumnsInIndex( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxColumnsInIndex", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxCursorNameLength( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxCursorNameLength", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxConnections( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxConnections", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxColumnsInTable( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxColumnsInTable", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxStatementLength( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxStatementLength", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxTableNameLength( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxTableNameLength", mID ); } // ------------------------------------------------------------------------- sal_Int32 java_sql_DatabaseMetaData::impl_getMaxTablesInSelect_throw( ) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxTablesInSelect", mID ); } // ------------------------------------------------------------------------- Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getExportedKeys( const Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callResultSetMethodWithStrings( "getExportedKeys", mID, catalog, schema, table ); } // ------------------------------------------------------------------------- Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getImportedKeys( const Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callResultSetMethodWithStrings( "getImportedKeys", mID, catalog, schema, table ); } // ------------------------------------------------------------------------- Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getPrimaryKeys( const Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callResultSetMethodWithStrings( "getPrimaryKeys", mID, catalog, schema, table ); } // ------------------------------------------------------------------------- @@ -382,31 +359,28 @@ Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getIndexInfo( jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jvalue args[5]; - // Parameter konvertieren - args[0].l = catalog.hasValue() ? convertwchar_tToJavaString(t.pEnv,comphelper::getString(catalog)) : 0; - args[1].l = schema.toChar() == '%' ? NULL : convertwchar_tToJavaString(t.pEnv,schema); - args[2].l = convertwchar_tToJavaString(t.pEnv,table); - args[3].z = unique; - args[4].z = approximate; - out = t.pEnv->CallObjectMethod( object, mID, args[0].l,args[1].l,args[2].l,args[3].z,args[4].z ); - - // und aufraeumen - if(catalog.hasValue()) - t.pEnv->DeleteLocalRef((jstring)args[0].l); - if(args[1].l) - t.pEnv->DeleteLocalRef((jstring)args[1].l); - if(table.getLength()) - t.pEnv->DeleteLocalRef((jstring)args[2].l); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + jvalue args[5]; + // Parameter konvertieren + args[0].l = catalog.hasValue() ? convertwchar_tToJavaString(t.pEnv,comphelper::getString(catalog)) : 0; + args[1].l = schema.toChar() == '%' ? NULL : convertwchar_tToJavaString(t.pEnv,schema); + args[2].l = convertwchar_tToJavaString(t.pEnv,table); + args[3].z = unique; + args[4].z = approximate; + out = t.pEnv->CallObjectMethod( object, mID, args[0].l,args[1].l,args[2].l,args[3].z,args[4].z ); + + // und aufraeumen + if(catalog.hasValue()) + t.pEnv->DeleteLocalRef((jstring)args[0].l); + if(args[1].l) + t.pEnv->DeleteLocalRef((jstring)args[1].l); + if(table.getLength()) + t.pEnv->DeleteLocalRef((jstring)args[2].l); + ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); } if ( !out ) return NULL; @@ -426,29 +400,26 @@ Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getBestRowIdentifier jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jvalue args[3]; - // Parameter konvertieren - args[0].l = catalog.hasValue() ? convertwchar_tToJavaString(t.pEnv,comphelper::getString(catalog)) : 0; - args[1].l = schema.toChar() == '%' ? NULL : convertwchar_tToJavaString(t.pEnv,schema); - args[2].l = convertwchar_tToJavaString(t.pEnv,table); - out = t.pEnv->CallObjectMethod( object, mID, args[0].l,args[1].l,args[2].l,scope,nullable); - - // und aufraeumen - if(catalog.hasValue()) - t.pEnv->DeleteLocalRef((jstring)args[0].l); - if(args[1].l) - t.pEnv->DeleteLocalRef((jstring)args[1].l); - if(table.getLength()) - t.pEnv->DeleteLocalRef((jstring)args[2].l); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + jvalue args[3]; + // Parameter konvertieren + args[0].l = catalog.hasValue() ? convertwchar_tToJavaString(t.pEnv,comphelper::getString(catalog)) : 0; + args[1].l = schema.toChar() == '%' ? NULL : convertwchar_tToJavaString(t.pEnv,schema); + args[2].l = convertwchar_tToJavaString(t.pEnv,table); + out = t.pEnv->CallObjectMethod( object, mID, args[0].l,args[1].l,args[2].l,scope,nullable); + + // und aufraeumen + if(catalog.hasValue()) + t.pEnv->DeleteLocalRef((jstring)args[0].l); + if(args[1].l) + t.pEnv->DeleteLocalRef((jstring)args[1].l); + if(table.getLength()) + t.pEnv->DeleteLocalRef((jstring)args[2].l); + ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); } if ( !out ) @@ -464,7 +435,7 @@ Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getTablePrivileges( if ( m_pConnection->isIgnoreDriverPrivilegesEnabled() ) return new OResultSetPrivileges(this,catalog,schemaPattern,tableNamePattern); - static jmethodID mID = NULL; + static jmethodID mID(NULL); Reference< XResultSet > xReturn( impl_callResultSetMethodWithStrings( "getTablePrivileges", mID, catalog, schemaPattern, tableNamePattern ) ); if ( xReturn.is() ) @@ -546,38 +517,35 @@ Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getCrossReference( jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ + { // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jvalue args[6]; - // Parameter konvertieren - args[0].l = primaryCatalog.hasValue() ? convertwchar_tToJavaString(t.pEnv,comphelper::getString(primaryCatalog)) : 0; - args[1].l = primarySchema.toChar() == '%' ? NULL : convertwchar_tToJavaString(t.pEnv,primarySchema); - args[2].l = convertwchar_tToJavaString(t.pEnv,primaryTable); - args[3].l = foreignCatalog.hasValue() ? convertwchar_tToJavaString(t.pEnv,comphelper::getString(foreignCatalog)) : 0; - args[4].l = foreignSchema.toChar() == '%' ? NULL : convertwchar_tToJavaString(t.pEnv,foreignSchema); - args[5].l = convertwchar_tToJavaString(t.pEnv,foreignTable); - out = t.pEnv->CallObjectMethod( object, mID, args[0].l,args[2].l,args[2].l,args[3].l,args[4].l,args[5].l ); - - // und aufraeumen - if(primaryCatalog.hasValue()) - t.pEnv->DeleteLocalRef((jstring)args[0].l); - if(args[1].l) - t.pEnv->DeleteLocalRef((jstring)args[1].l); - if(primaryTable.getLength()) - t.pEnv->DeleteLocalRef((jstring)args[2].l); - if(foreignCatalog.hasValue()) - t.pEnv->DeleteLocalRef((jstring)args[3].l); - if(args[4].l) - t.pEnv->DeleteLocalRef((jstring)args[4].l); - if(foreignTable.getLength()) - t.pEnv->DeleteLocalRef((jstring)args[5].l); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + jvalue args[6]; + // Parameter konvertieren + args[0].l = primaryCatalog.hasValue() ? convertwchar_tToJavaString(t.pEnv,comphelper::getString(primaryCatalog)) : 0; + args[1].l = primarySchema.toChar() == '%' ? NULL : convertwchar_tToJavaString(t.pEnv,primarySchema); + args[2].l = convertwchar_tToJavaString(t.pEnv,primaryTable); + args[3].l = foreignCatalog.hasValue() ? convertwchar_tToJavaString(t.pEnv,comphelper::getString(foreignCatalog)) : 0; + args[4].l = foreignSchema.toChar() == '%' ? NULL : convertwchar_tToJavaString(t.pEnv,foreignSchema); + args[5].l = convertwchar_tToJavaString(t.pEnv,foreignTable); + out = t.pEnv->CallObjectMethod( object, mID, args[0].l,args[2].l,args[2].l,args[3].l,args[4].l,args[5].l ); + + // und aufraeumen + if(primaryCatalog.hasValue()) + t.pEnv->DeleteLocalRef((jstring)args[0].l); + if(args[1].l) + t.pEnv->DeleteLocalRef((jstring)args[1].l); + if(primaryTable.getLength()) + t.pEnv->DeleteLocalRef((jstring)args[2].l); + if(foreignCatalog.hasValue()) + t.pEnv->DeleteLocalRef((jstring)args[3].l); + if(args[4].l) + t.pEnv->DeleteLocalRef((jstring)args[4].l); + if(foreignTable.getLength()) + t.pEnv->DeleteLocalRef((jstring)args[5].l); + ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); } if ( !out ) @@ -591,26 +559,7 @@ Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getCrossReference( sal_Bool java_sql_DatabaseMetaData::impl_callBooleanMethod( const char* _pMethodName, jmethodID& _inout_MethodID ) { m_aLogger.log( LogLevel::FINEST, STR_LOG_META_DATA_METHOD, _pMethodName ); - - jboolean out( sal_False ); - - SDBThreadAttach t; - OSL_ENSURE( t.pEnv, "java_sql_DatabaseMetaData::impl_callBooleanMethod: no Java enviroment anymore!" ); - if ( t.pEnv ) - { - // obtain method ID - if ( !_inout_MethodID ) - _inout_MethodID = t.pEnv->GetMethodID( getMyClass(), _pMethodName, "()Z" ); - OSL_ENSURE( _inout_MethodID, "java_sql_DatabaseMetaData::impl_callBooleanMethod:: unknown method id!" ); - - // call method - if ( _inout_MethodID ) - { - out = t.pEnv->CallBooleanMethod( object, _inout_MethodID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } - + jboolean out( java_lang_Object::callBooleanMethod(_pMethodName,_inout_MethodID) ); m_aLogger.log< const sal_Char*, sal_Int16>( LogLevel::FINEST, STR_LOG_META_DATA_RESULT, _pMethodName, out ); return out; } @@ -620,26 +569,7 @@ sal_Bool java_sql_DatabaseMetaData::impl_callBooleanMethod( const char* _pMethod { m_aLogger.log( LogLevel::FINEST, STR_LOG_META_DATA_METHOD, _pMethodName ); - ::rtl::OUString sReturn; - - SDBThreadAttach t; - OSL_ENSURE( t.pEnv, "java_sql_DatabaseMetaData::impl_callStringMethod: no Java enviroment anymore!" ); - if( t.pEnv ) - { - // obtain method ID - if ( !_inout_MethodID ) - _inout_MethodID = t.pEnv->GetMethodID( getMyClass(), _pMethodName, "()Ljava/lang/String;" ); - OSL_ENSURE( _inout_MethodID, "java_sql_DatabaseMetaData::impl_callStringMethod: unknown method id!" ); - - // call method - if ( _inout_MethodID ) - { - jstring out = (jstring)t.pEnv->CallObjectMethod( object, _inout_MethodID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - sReturn = JavaString2String( t.pEnv, out ); - } - } - + const ::rtl::OUString sReturn( callStringMethod(_pMethodName,_inout_MethodID) ); if ( m_aLogger.isLoggable( LogLevel::FINEST ) ) { ::rtl::OUString sLoggedResult( sReturn ); @@ -655,28 +585,9 @@ sal_Bool java_sql_DatabaseMetaData::impl_callBooleanMethod( const char* _pMethod sal_Int32 java_sql_DatabaseMetaData::impl_callIntMethod( const char* _pMethodName, jmethodID& _inout_MethodID ) { m_aLogger.log( LogLevel::FINEST, STR_LOG_META_DATA_METHOD, _pMethodName ); - - jint out( 0 ); - - SDBThreadAttach t; - OSL_ENSURE( t.pEnv, "java_sql_DatabaseMetaData::impl_callIntMethod: no Java enviroment anymore!" ); - if( t.pEnv ) - { - // obtain method ID - if ( !_inout_MethodID ) - _inout_MethodID = t.pEnv->GetMethodID( getMyClass(), _pMethodName, "()I" ); - OSL_ENSURE( _inout_MethodID, "java_sql_DatabaseMetaData::impl_callIntMethod: unknown method id!" ); - - // call method - if ( _inout_MethodID ) - { - out = t.pEnv->CallIntMethod( object, _inout_MethodID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } - + sal_Int32 out( (sal_Int32)callIntMethod(_pMethodName,_inout_MethodID) ); m_aLogger.log( LogLevel::FINEST, STR_LOG_META_DATA_RESULT, _pMethodName, (sal_Int32)out ); - return (sal_Int32)out; + return out; } // ------------------------------------------------------------------------- @@ -684,23 +595,7 @@ sal_Bool java_sql_DatabaseMetaData::impl_callBooleanMethodWithIntArg( const char { m_aLogger.log( LogLevel::FINEST, STR_LOG_META_DATA_METHOD_ARG1, _pMethodName, _nArgument ); - jboolean out( sal_False ); - SDBThreadAttach t; - OSL_ENSURE( t.pEnv, "java_sql_DatabaseMetaData::impl_callBooleanMethodWithIntArg: no Java enviroment anymore!" ); - if ( t.pEnv ) - { - // obtain method ID - if ( !_inout_MethodID ) - _inout_MethodID = t.pEnv->GetMethodID( getMyClass(), _pMethodName, "(I)Z" ); - OSL_ENSURE( _inout_MethodID, "java_sql_DatabaseMetaData::impl_callBooleanMethodWithIntArg: unknown method id!" ); - - // call method - if ( _inout_MethodID ) - { - out = t.pEnv->CallBooleanMethod( object, _inout_MethodID, _nArgument ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + jboolean out( callBooleanMethodWithIntArg(_pMethodName,_inout_MethodID,_nArgument) ); m_aLogger.log< const sal_Char*, sal_Int16 >( LogLevel::FINEST, STR_LOG_META_DATA_RESULT, _pMethodName, out ); return out; @@ -709,30 +604,9 @@ sal_Bool java_sql_DatabaseMetaData::impl_callBooleanMethodWithIntArg( const char // ------------------------------------------------------------------------- Reference< XResultSet > java_sql_DatabaseMetaData::impl_callResultSetMethod( const char* _pMethodName, jmethodID& _inout_MethodID ) { - m_aLogger.log( LogLevel::FINEST, STR_LOG_META_DATA_METHOD, _pMethodName ); - - jobject out(0); - SDBThreadAttach t; - OSL_ENSURE( t.pEnv, "java_sql_DatabaseMetaData::impl_callResultSetMethod: no Java enviroment anymore!" ); - if ( t.pEnv ) - { - // obtain method ID - if ( !_inout_MethodID ) - _inout_MethodID = t.pEnv->GetMethodID( getMyClass(), _pMethodName, "()Ljava/sql/ResultSet;" ); - OSL_ENSURE( _inout_MethodID, "java_sql_DatabaseMetaData::impl_callResultSetMethod: unknown method id!" ); - - // call method - if ( _inout_MethodID ) - { - out = t.pEnv->CallObjectMethod( object, _inout_MethodID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } - - if ( !out ) - return NULL; - + m_aLogger.log( LogLevel::FINEST, STR_LOG_META_DATA_METHOD, _pMethodName ); + jobject out(callResultSetMethod(t.env(),_pMethodName,_inout_MethodID)); m_aLogger.log( LogLevel::FINEST, STR_LOG_META_DATA_SUCCESS, _pMethodName ); return new java_sql_ResultSet( t.pEnv, out, m_aLogger,*m_pConnection); } @@ -762,18 +636,16 @@ Reference< XResultSet > java_sql_DatabaseMetaData::impl_callResultSetMethodWithS SDBThreadAttach t; OSL_ENSURE( t.pEnv, "java_sql_DatabaseMetaData::impl_callResultSetMethodWithStrings: no Java enviroment anymore!" ); - if ( t.pEnv ) + { const char* pSignature = _pOptionalAdditionalString ? "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" : "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;"; // obtain method ID - if ( !_inout_MethodID ) - _inout_MethodID = t.pEnv->GetMethodID( getMyClass(), _pMethodName, pSignature ); - OSL_ENSURE( _inout_MethodID, "java_sql_DatabaseMetaData::impl_callResultSetMethodWithStrings: unknown method id!" ); + obtainMethodId(t.pEnv, _pMethodName,pSignature, _inout_MethodID); // call method - if ( _inout_MethodID ) + { jvalue args[4]; // convert parameters @@ -812,320 +684,320 @@ Reference< XResultSet > java_sql_DatabaseMetaData::impl_callResultSetMethodWithS // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::doesMaxRowSizeIncludeBlobs( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "doesMaxRowSizeIncludeBlobs", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::storesLowerCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "storesLowerCaseQuotedIdentifiers", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::storesLowerCaseIdentifiers( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "storesLowerCaseIdentifiers", mID ); } // ------------------------------------------------------------------------- sal_Bool java_sql_DatabaseMetaData::impl_storesMixedCaseQuotedIdentifiers_throw( ) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "storesMixedCaseQuotedIdentifiers", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::storesMixedCaseIdentifiers( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "storesMixedCaseIdentifiers", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::storesUpperCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "storesUpperCaseQuotedIdentifiers", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::storesUpperCaseIdentifiers( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "storesUpperCaseIdentifiers", mID ); } // ------------------------------------------------------------------------- sal_Bool java_sql_DatabaseMetaData::impl_supportsAlterTableWithAddColumn_throw( ) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsAlterTableWithAddColumn", mID ); } // ------------------------------------------------------------------------- sal_Bool java_sql_DatabaseMetaData::impl_supportsAlterTableWithDropColumn_throw( ) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsAlterTableWithDropColumn", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxIndexLength( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxIndexLength", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsNonNullableColumns( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsNonNullableColumns", mID ); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_DatabaseMetaData::getCatalogTerm( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callStringMethod( "getCatalogTerm", mID ); } // ------------------------------------------------------------------------- ::rtl::OUString java_sql_DatabaseMetaData::impl_getIdentifierQuoteString_throw( ) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callStringMethod( "getIdentifierQuoteString", mID ); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_DatabaseMetaData::getExtraNameCharacters( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callStringMethod( "getExtraNameCharacters", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsDifferentTableCorrelationNames( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsDifferentTableCorrelationNames", mID ); } // ------------------------------------------------------------------------- sal_Bool java_sql_DatabaseMetaData::impl_isCatalogAtStart_throw( ) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "isCatalogAtStart", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::dataDefinitionIgnoredInTransactions( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "dataDefinitionIgnoredInTransactions", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::dataDefinitionCausesTransactionCommit( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "dataDefinitionCausesTransactionCommit", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsDataManipulationTransactionsOnly( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsDataManipulationTransactionsOnly", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsDataDefinitionAndDataManipulationTransactions", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsPositionedDelete( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsPositionedDelete", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsPositionedUpdate( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsPositionedUpdate", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsOpenStatementsAcrossRollback( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsOpenStatementsAcrossRollback", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsOpenStatementsAcrossCommit( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsOpenStatementsAcrossCommit", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsOpenCursorsAcrossCommit( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsOpenCursorsAcrossCommit", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsOpenCursorsAcrossRollback( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsOpenCursorsAcrossRollback", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsTransactionIsolationLevel( sal_Int32 level ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethodWithIntArg( "supportsTransactionIsolationLevel", mID, level ); } // ------------------------------------------------------------------------- sal_Bool java_sql_DatabaseMetaData::impl_supportsSchemasInDataManipulation_throw( ) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsSchemasInDataManipulation", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsANSI92FullSQL( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsANSI92FullSQL", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsANSI92EntryLevelSQL( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsANSI92EntryLevelSQL", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsIntegrityEnhancementFacility( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsIntegrityEnhancementFacility", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsSchemasInIndexDefinitions( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsSchemasInIndexDefinitions", mID ); } // ------------------------------------------------------------------------- sal_Bool java_sql_DatabaseMetaData::impl_supportsSchemasInTableDefinitions_throw( ) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsSchemasInTableDefinitions", mID ); } // ------------------------------------------------------------------------- sal_Bool java_sql_DatabaseMetaData::impl_supportsCatalogsInTableDefinitions_throw( ) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsCatalogsInTableDefinitions", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsCatalogsInIndexDefinitions( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsCatalogsInIndexDefinitions", mID ); } // ------------------------------------------------------------------------- sal_Bool java_sql_DatabaseMetaData::impl_supportsCatalogsInDataManipulation_throw( ) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsCatalogsInDataManipulation", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsOuterJoins( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsOuterJoins", mID ); } // ------------------------------------------------------------------------- Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getTableTypes( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callResultSetMethod( "getTableTypes", mID ); } // ------------------------------------------------------------------------- sal_Int32 java_sql_DatabaseMetaData::impl_getMaxStatements_throw( ) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxStatements", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxProcedureNameLength( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxProcedureNameLength", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxSchemaNameLength( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxSchemaNameLength", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsTransactions( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsTransactions", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::allProceduresAreCallable( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "allProceduresAreCallable", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsStoredProcedures( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsStoredProcedures", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsSelectForUpdate( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsSelectForUpdate", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::allTablesAreSelectable( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "allTablesAreSelectable", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::isReadOnly( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "isReadOnly", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::usesLocalFiles( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "usesLocalFiles", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::usesLocalFilePerTable( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "usesLocalFilePerTable", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsTypeConversion( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsTypeConversion", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::nullPlusNonNullIsNull( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "nullPlusNonNullIsNull", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsColumnAliasing( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsColumnAliasing", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsTableCorrelationNames( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsTableCorrelationNames", mID ); } // ------------------------------------------------------------------------- @@ -1136,18 +1008,12 @@ sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsConvert( sal_Int32 fromType jboolean out( sal_False ); SDBThreadAttach t; - if ( t.pEnv ) + { - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), pMethodName, "(II)Z" ); - OSL_ENSURE( mID, "java_sql_DatabaseMetaData::supportsConvert: unknown method id!" ); - - if ( mID ) - { - out = t.pEnv->CallBooleanMethod( object, mID, fromType, toType ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, pMethodName,"(II)Z", mID); + out = t.pEnv->CallBooleanMethod( object, mID, fromType, toType ); + ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); } m_aLogger.log< const sal_Char*, sal_Int16 >( LogLevel::FINEST, STR_LOG_META_DATA_RESULT, pMethodName, out ); @@ -1156,157 +1022,157 @@ sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsConvert( sal_Int32 fromType // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsExpressionsInOrderBy( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsExpressionsInOrderBy", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsGroupBy( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsGroupBy", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsGroupByBeyondSelect( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsGroupByBeyondSelect", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsGroupByUnrelated( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsGroupByUnrelated", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsMultipleTransactions( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsMultipleTransactions", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsMultipleResultSets( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsMultipleResultSets", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsLikeEscapeClause( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsLikeEscapeClause", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsOrderByUnrelated( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsOrderByUnrelated", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsUnion( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsUnion", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsUnionAll( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsUnionAll", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsMixedCaseIdentifiers( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsMixedCaseIdentifiers", mID ); } // ------------------------------------------------------------------------- sal_Bool java_sql_DatabaseMetaData::impl_supportsMixedCaseQuotedIdentifiers_throw( ) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsMixedCaseQuotedIdentifiers", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::nullsAreSortedAtEnd( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "nullsAreSortedAtEnd", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::nullsAreSortedAtStart( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "nullsAreSortedAtStart", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::nullsAreSortedHigh( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "nullsAreSortedHigh", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::nullsAreSortedLow( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "nullsAreSortedLow", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsSchemasInProcedureCalls( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsSchemasInProcedureCalls", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsSchemasInPrivilegeDefinitions( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsSchemasInPrivilegeDefinitions", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsCatalogsInProcedureCalls( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsCatalogsInProcedureCalls", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsCatalogsInPrivilegeDefinitions( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsCatalogsInPrivilegeDefinitions", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsCorrelatedSubqueries( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsCorrelatedSubqueries", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsSubqueriesInComparisons( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsSubqueriesInComparisons", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsSubqueriesInExists( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsSubqueriesInExists", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsSubqueriesInIns( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsSubqueriesInIns", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsSubqueriesInQuantifieds( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsSubqueriesInQuantifieds", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsANSI92IntermediateSQL( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsANSI92IntermediateSQL", mID ); } // ------------------------------------------------------------------------- @@ -1315,7 +1181,7 @@ sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsANSI92IntermediateSQL( ) t ::rtl::OUString sURL = m_pConnection->getURL(); if ( !sURL.getLength() ) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); sURL = impl_callStringMethod( "getURL", mID ); } return sURL; @@ -1323,157 +1189,157 @@ sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsANSI92IntermediateSQL( ) t // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_DatabaseMetaData::getUserName( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callStringMethod( "getUserName", mID ); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_DatabaseMetaData::getDriverName( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callStringMethod( "getDriverName", mID ); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_DatabaseMetaData::getDriverVersion( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callStringMethod( "getDriverVersion", mID ); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_DatabaseMetaData::getDatabaseProductVersion( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callStringMethod( "getDatabaseProductVersion", mID ); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_DatabaseMetaData::getDatabaseProductName( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callStringMethod( "getDatabaseProductName", mID ); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_DatabaseMetaData::getProcedureTerm( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callStringMethod( "getProcedureTerm", mID ); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_DatabaseMetaData::getSchemaTerm( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callStringMethod( "getSchemaTerm", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getDriverMajorVersion( ) throw(RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getDriverMajorVersion", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getDefaultTransactionIsolation( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getDefaultTransactionIsolation", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getDriverMinorVersion( ) throw(RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getDriverMinorVersion", mID ); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_DatabaseMetaData::getSQLKeywords( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callStringMethod( "getSQLKeywords", mID ); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_DatabaseMetaData::getSearchStringEscape( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callStringMethod( "getSearchStringEscape", mID ); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_DatabaseMetaData::getStringFunctions( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callStringMethod( "getStringFunctions", mID ); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_DatabaseMetaData::getTimeDateFunctions( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callStringMethod( "getTimeDateFunctions", mID ); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_DatabaseMetaData::getSystemFunctions( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callStringMethod( "getSystemFunctions", mID ); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_DatabaseMetaData::getNumericFunctions( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callStringMethod( "getNumericFunctions", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsExtendedSQLGrammar( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsExtendedSQLGrammar", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsCoreSQLGrammar( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsCoreSQLGrammar", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsMinimumSQLGrammar( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsMinimumSQLGrammar", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsFullOuterJoins( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsFullOuterJoins", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsLimitedOuterJoins( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsLimitedOuterJoins", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxColumnsInGroupBy( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxColumnsInGroupBy", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxColumnsInOrderBy( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxColumnsInOrderBy", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxColumnsInSelect( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxColumnsInSelect", mID ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_DatabaseMetaData::getMaxUserNameLength( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callIntMethod( "getMaxUserNameLength", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsResultSetType( sal_Int32 setType ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethodWithIntArg( "supportsResultSetType", mID, setType ); } // ------------------------------------------------------------------------- @@ -1484,18 +1350,12 @@ sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsResultSetConcurrency( sal_I jboolean out( sal_False ); SDBThreadAttach t; - if ( t.pEnv ) + { - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), pMethodName, "(II)Z" ); - OSL_ENSURE( mID, "java_sql_DatabaseMetaData::supportsResultSetConcurrency: unknown method id!" ); - - if ( mID ) - { - out = t.pEnv->CallBooleanMethod( object, mID, setType, concurrency); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, pMethodName,"(II)Z", mID); + out = t.pEnv->CallBooleanMethod( object, mID, setType, concurrency); + ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); } m_aLogger.log< const sal_Char*, sal_Int16 >( LogLevel::FINEST, STR_LOG_META_DATA_RESULT, pMethodName, out ); @@ -1504,61 +1364,61 @@ sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsResultSetConcurrency( sal_I // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::ownUpdatesAreVisible( sal_Int32 setType ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethodWithIntArg( "ownUpdatesAreVisible", mID, setType ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::ownDeletesAreVisible( sal_Int32 setType ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethodWithIntArg( "ownDeletesAreVisible", mID, setType ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::ownInsertsAreVisible( sal_Int32 setType ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethodWithIntArg( "ownInsertsAreVisible", mID, setType ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::othersUpdatesAreVisible( sal_Int32 setType ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethodWithIntArg( "othersUpdatesAreVisible", mID, setType ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::othersDeletesAreVisible( sal_Int32 setType ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethodWithIntArg( "othersDeletesAreVisible", mID, setType ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::othersInsertsAreVisible( sal_Int32 setType ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethodWithIntArg( "othersInsertsAreVisible", mID, setType ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::updatesAreDetected( sal_Int32 setType ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethodWithIntArg( "updatesAreDetected", mID, setType ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::deletesAreDetected( sal_Int32 setType ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethodWithIntArg( "deletesAreDetected", mID, setType ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::insertsAreDetected( sal_Int32 setType ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethodWithIntArg( "insertsAreDetected", mID, setType ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_DatabaseMetaData::supportsBatchUpdates( ) throw(SQLException, RuntimeException) { - static jmethodID mID = NULL; + static jmethodID mID(NULL); return impl_callBooleanMethod( "supportsBatchUpdates", mID ); } // ------------------------------------------------------------------------- @@ -1568,16 +1428,14 @@ Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getUDTs( { jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ + { static const char * cSignature = "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[I)Ljava/sql/ResultSet;"; static const char * cMethodName = "getUDTs"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); { jvalue args[4]; // temporaere Variable initialisieren diff --git a/connectivity/source/drivers/jdbc/Date.cxx b/connectivity/source/drivers/jdbc/Date.cxx index 466510f481..fa2e48d087 100644 --- a/connectivity/source/drivers/jdbc/Date.cxx +++ b/connectivity/source/drivers/jdbc/Date.cxx @@ -43,27 +43,14 @@ jclass java_util_Date::theClass = 0; java_util_Date::~java_util_Date() {} -jclass java_util_Date::getMyClass() +jclass java_util_Date::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; - if( !t.pEnv ) return (jclass)NULL; - jclass tempClass = t.pEnv->FindClass( "java/util/Date" ); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/util/Date"); return theClass; } -void java_util_Date::saveClassRef( jclass pClass ) -{ - if( pClass==NULL ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} // ----------------------------------------------------------------------------- diff --git a/connectivity/source/drivers/jdbc/DriverManager.cxx b/connectivity/source/drivers/jdbc/DriverManager.cxx deleted file mode 100644 index a0ef127799..0000000000 --- a/connectivity/source/drivers/jdbc/DriverManager.cxx +++ /dev/null @@ -1,113 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: DriverManager.cxx,v $ - * $Revision: 1.12 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" -#include "java/sql/DriverManager.hxx" -#include "java/tools.hxx" - -using namespace connectivity; -//************************************************************** -//************ Class: java.sql.DriverManager -//************************************************************** - -jclass java_sql_DriverManager::theClass = 0; - -java_sql_DriverManager::~java_sql_DriverManager() -{} - -jclass java_sql_DriverManager::getMyClass() -{ - // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( !t.pEnv ) return (jclass)0; - jclass tempClass = t.pEnv->FindClass("java/sql/DriverManager"); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } - return theClass; -} - -void java_sql_DriverManager::saveClassRef( jclass pClass ) -{ - if( pClass==0 ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} - -jobject java_sql_DriverManager::getDriver(const ::rtl::OUString &url) -{ - jobject out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - jvalue args[1]; - // Parameter konvertieren - args[0].l = convertwchar_tToJavaString(t.pEnv,url); - // temporaere Variable initialisieren - static const char * cSignature = "(Ljava/lang/String;)Ljava/sql/Driver;"; - static const char * cMethodName = "getDriver"; - // Java-Call absetzen - static jmethodID mID = t.pEnv->GetStaticMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - out = t.pEnv->CallStaticObjectMethod( getMyClass(), mID, args[0].l ); - // und aufraeumen - - } //mID - t.pEnv->DeleteLocalRef((jstring)args[0].l); - return t.pEnv->NewGlobalRef( out ); - } //t.pEnv - - return out; -} - - -void java_sql_DriverManager::setLoginTimeout(sal_Int32 _par0) -{ - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(I)V"; - static const char * cMethodName = "setLoginTimeout"; - // Java-Call absetzen - static jmethodID mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - t.pEnv->CallStaticVoidMethod(getMyClass(), mID, _par0); - ThrowSQLException(t.pEnv,0); - } //t.pEnv - // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! -} - - diff --git a/connectivity/source/drivers/jdbc/DriverPropertyInfo.cxx b/connectivity/source/drivers/jdbc/DriverPropertyInfo.cxx index db5b0920f8..5134ffd775 100644 --- a/connectivity/source/drivers/jdbc/DriverPropertyInfo.cxx +++ b/connectivity/source/drivers/jdbc/DriverPropertyInfo.cxx @@ -52,30 +52,14 @@ jclass java_sql_DriverPropertyInfo::theClass = 0; java_sql_DriverPropertyInfo::~java_sql_DriverPropertyInfo() {} // -------------------------------------------------------------------------------- -jclass java_sql_DriverPropertyInfo::getMyClass() +jclass java_sql_DriverPropertyInfo::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch if( !theClass ) - { - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( !t.pEnv ) return (jclass)0; - jclass tempClass = t.pEnv->FindClass("java/sql/DriverPropertyInfo"); - OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + theClass = findMyClass("java/sql/DriverPropertyInfo"); return theClass; } -// -------------------------------------------------------------------------------- -void java_sql_DriverPropertyInfo::saveClassRef( jclass pClass ) -{ - if( pClass==0 ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} // -------------------------------------------------------------------------------- java_sql_DriverPropertyInfo::operator starsdbc::DriverPropertyInfo() { @@ -89,64 +73,64 @@ java_sql_DriverPropertyInfo::operator starsdbc::DriverPropertyInfo() return aInfo; } // -------------------------------------------------------------------------------- -::rtl::OUString java_sql_DriverPropertyInfo::name() const +::rtl::OUString java_sql_DriverPropertyInfo::name() { ::rtl::OUString aStr; SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { - jfieldID id = t.pEnv->GetFieldID(java_sql_DriverPropertyInfo::getMyClass(),"name","Ljava/lang/String;"); + jfieldID id = t.pEnv->GetFieldID(getMyClass(),"name","Ljava/lang/String;"); if(id) aStr = JavaString2String(t.pEnv,(jstring)t.pEnv->GetObjectField( object, id)); } //t.pEnv return aStr; } // -------------------------------------------------------------------------------- -::rtl::OUString java_sql_DriverPropertyInfo::description() const +::rtl::OUString java_sql_DriverPropertyInfo::description() { ::rtl::OUString aStr; SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { - jfieldID id = t.pEnv->GetFieldID(java_sql_DriverPropertyInfo::getMyClass(),"description","Ljava/lang/String;"); + jfieldID id = t.pEnv->GetFieldID(getMyClass(),"description","Ljava/lang/String;"); if(id) aStr = JavaString2String(t.pEnv,(jstring)t.pEnv->GetObjectField( object, id)); } //t.pEnv return aStr; } // -------------------------------------------------------------------------------- -::rtl::OUString java_sql_DriverPropertyInfo::value() const +::rtl::OUString java_sql_DriverPropertyInfo::value() { ::rtl::OUString aStr; SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { - jfieldID id = t.pEnv->GetFieldID(java_sql_DriverPropertyInfo::getMyClass(),"value","Ljava/lang/String;"); + jfieldID id = t.pEnv->GetFieldID(getMyClass(),"value","Ljava/lang/String;"); if(id) aStr = JavaString2String(t.pEnv,(jstring)t.pEnv->GetObjectField( object, id)); } //t.pEnv return aStr; } // -------------------------------------------------------------------------------- -sal_Bool java_sql_DriverPropertyInfo::required() const +sal_Bool java_sql_DriverPropertyInfo::required() { jboolean out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { - jfieldID id = t.pEnv->GetFieldID(java_sql_DriverPropertyInfo::getMyClass(),"required","Z"); + jfieldID id = t.pEnv->GetFieldID(getMyClass(),"required","Z"); if(id) out = t.pEnv->GetBooleanField( object, id); } //t.pEnv return out; } // -------------------------------------------------------------------------------- -Sequence< ::rtl::OUString> java_sql_DriverPropertyInfo::choices() const +Sequence< ::rtl::OUString> java_sql_DriverPropertyInfo::choices() { SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { - jfieldID id = t.pEnv->GetFieldID(java_sql_DriverPropertyInfo::getMyClass(),"choices","[Ljava/lang/String;"); + jfieldID id = t.pEnv->GetFieldID(getMyClass(),"choices","[Ljava/lang/String;"); if(id) { const java_lang_String * pEmpty = NULL; diff --git a/connectivity/source/drivers/jdbc/Exception.cxx b/connectivity/source/drivers/jdbc/Exception.cxx index 541d1d9399..00029691ed 100644 --- a/connectivity/source/drivers/jdbc/Exception.cxx +++ b/connectivity/source/drivers/jdbc/Exception.cxx @@ -41,25 +41,11 @@ jclass java_lang_Exception::theClass = 0; java_lang_Exception::~java_lang_Exception() {} -jclass java_lang_Exception::getMyClass() +jclass java_lang_Exception::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; - if( !t.pEnv ) return (jclass)NULL; - jclass tempClass = t.pEnv->FindClass("java/lang/Exception"); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/lang/Exception"); return theClass; } -void java_lang_Exception::saveClassRef( jclass pClass ) -{ - if( pClass==NULL ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} - diff --git a/connectivity/source/drivers/jdbc/InputStream.cxx b/connectivity/source/drivers/jdbc/InputStream.cxx index 5aa2b981c1..0236c7f350 100644 --- a/connectivity/source/drivers/jdbc/InputStream.cxx +++ b/connectivity/source/drivers/jdbc/InputStream.cxx @@ -51,27 +51,14 @@ java_io_InputStream::~java_io_InputStream() SDBThreadAttach::releaseRef(); } -jclass java_io_InputStream::getMyClass() +jclass java_io_InputStream::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; - if( !t.pEnv ) return (jclass)NULL; - jclass tempClass = t.pEnv->FindClass( "java/io/InputStream" ); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/io/InputStream"); return theClass; } -void java_io_InputStream::saveClassRef( jclass pClass ) -{ - if( pClass==NULL ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} sal_Int32 SAL_CALL java_io_InputStream::readSomeBytes( ::com::sun::star::uno::Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead ) throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException) { @@ -80,61 +67,19 @@ sal_Int32 SAL_CALL java_io_InputStream::readSomeBytes( ::com::sun::star::uno::Se void SAL_CALL java_io_InputStream::skipBytes( sal_Int32 nBytesToSkip ) throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException) { - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - static const char * cSignature = "(I)I"; - static const char * cMethodName = "skip"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - out = t.pEnv->CallIntMethod( object, mID,nBytesToSkip); - ThrowSQLException(t.pEnv,*this); - } - } //t.pEnv + static jmethodID mID(NULL); + callIntMethodWithIntArg("skip",mID,nBytesToSkip); } sal_Int32 SAL_CALL java_io_InputStream::available( ) throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException) { - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - static const char * cSignature = "()Z"; - static const char * cMethodName = "available"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - out = t.pEnv->CallBooleanMethod( object, mID); - ThrowSQLException(t.pEnv,*this); - } - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callIntMethod("available",mID); } void SAL_CALL java_io_InputStream::closeInput( ) throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException) { - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - static const char * cSignature = "()V"; - static const char * cMethodName = "close"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - t.pEnv->CallVoidMethod( object, mID); - ThrowSQLException(t.pEnv,*this); - } - } //t.pEnv + static jmethodID mID(NULL); + callVoidMethod("close",mID); } // ----------------------------------------------------- sal_Int32 SAL_CALL java_io_InputStream::readBytes( ::com::sun::star::uno::Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead ) throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException) @@ -143,25 +88,21 @@ sal_Int32 SAL_CALL java_io_InputStream::readBytes( ::com::sun::star::uno::Sequen throw ::com::sun::star::io::BufferSizeExceededException(); jint out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { jbyteArray pByteArray = t.pEnv->NewByteArray(nBytesToRead); static const char * cSignature = "([BII)I"; static const char * cMethodName = "read"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + out = t.pEnv->CallIntMethod( object, mID, pByteArray, 0, nBytesToRead ); + if ( !out ) + ThrowSQLException(t.pEnv,*this); + if(out > 0) { - out = t.pEnv->CallIntMethod( object, mID, pByteArray, 0, nBytesToRead ); - if ( !out ) - ThrowSQLException(t.pEnv,*this); - if(out > 0) - { - jboolean p = sal_False; - memcpy(aData.getArray(),t.pEnv->GetByteArrayElements(pByteArray,&p),out); - } + jboolean p = sal_False; + memcpy(aData.getArray(),t.pEnv->GetByteArrayElements(pByteArray,&p),out); } t.pEnv->DeleteLocalRef((jbyteArray)pByteArray); } //t.pEnv diff --git a/connectivity/source/drivers/jdbc/JBigDecimal.cxx b/connectivity/source/drivers/jdbc/JBigDecimal.cxx index 174f5a5798..c6809eb6cf 100644 --- a/connectivity/source/drivers/jdbc/JBigDecimal.cxx +++ b/connectivity/source/drivers/jdbc/JBigDecimal.cxx @@ -43,29 +43,16 @@ jclass java_math_BigDecimal::theClass = 0; java_math_BigDecimal::~java_math_BigDecimal() {} -jclass java_math_BigDecimal::getMyClass() +jclass java_math_BigDecimal::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; - if( !t.pEnv ) return (jclass)NULL; - jclass tempClass = t.pEnv->FindClass("java/math/BigDecimal"); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/math/BigDecimal"); return theClass; } -void java_math_BigDecimal::saveClassRef( jclass pClass ) +java_math_BigDecimal::java_math_BigDecimal( const ::rtl::OUString& _par0 ): java_lang_Object( NULL, (jobject)NULL ) { - if( pClass==NULL ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} - -java_math_BigDecimal::java_math_BigDecimal( const ::rtl::OUString& _par0 ): java_lang_Object( NULL, (jobject)NULL ){ SDBThreadAttach t; if( !t.pEnv ) return; @@ -73,9 +60,8 @@ java_math_BigDecimal::java_math_BigDecimal( const ::rtl::OUString& _par0 ): java // temporaere Variable initialisieren static const char * cSignature = "(Ljava/lang/String;)V"; jobject tempObj; - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), "", cSignature );OSL_ENSURE(mID,"Unknown method id!"); + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, "",cSignature, mID); jstring str = convertwchar_tToJavaString(t.pEnv,_par0.replace(',','.')); tempObj = t.pEnv->NewObject( getMyClass(), mID, str ); @@ -86,7 +72,8 @@ java_math_BigDecimal::java_math_BigDecimal( const ::rtl::OUString& _par0 ): java // und aufraeumen } -java_math_BigDecimal::java_math_BigDecimal( const double& _par0 ): java_lang_Object( NULL, (jobject)NULL ){ +java_math_BigDecimal::java_math_BigDecimal( const double& _par0 ): java_lang_Object( NULL, (jobject)NULL ) +{ SDBThreadAttach t; if( !t.pEnv ) return; @@ -94,9 +81,8 @@ java_math_BigDecimal::java_math_BigDecimal( const double& _par0 ): java_lang_Obj // temporaere Variable initialisieren static const char * cSignature = "(D)V"; jobject tempObj; - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), "", cSignature );OSL_ENSURE(mID,"Unknown method id!"); + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, "",cSignature, mID); tempObj = t.pEnv->NewObject( getMyClass(), mID, _par0 ); saveRef( t.pEnv, tempObj ); t.pEnv->DeleteLocalRef( tempObj ); diff --git a/connectivity/source/drivers/jdbc/JConnection.cxx b/connectivity/source/drivers/jdbc/JConnection.cxx index 0f49b9e7e9..e2f1afcb77 100644 --- a/connectivity/source/drivers/jdbc/JConnection.cxx +++ b/connectivity/source/drivers/jdbc/JConnection.cxx @@ -289,11 +289,9 @@ java_sql_Connection::~java_sql_Connection() if ( xTest.is() ) { SDBThreadAttach t; - if( t.pEnv ) + clearObject(*t.pEnv); + { - if( object ) - t.pEnv->DeleteGlobalRef( object ); - object = NULL; if ( m_pDriverobject ) t.pEnv->DeleteGlobalRef( m_pDriverobject ); m_pDriverobject = NULL; @@ -321,69 +319,27 @@ void java_sql_Connection::disposing() if ( object ) { - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "close"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //t.pEnv + static jmethodID mID(NULL); + callVoidMethod("close",mID); } } // ------------------------------------------------------------------------- -jclass java_sql_Connection::getMyClass() +jclass java_sql_Connection::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( !t.pEnv ) return (jclass)0; - jclass tempClass = t.pEnv->FindClass("java/sql/Connection"); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/sql/Connection"); return theClass; } -// ------------------------------------------------------------------------- -void java_sql_Connection::saveClassRef( jclass pClass ) -{ - if( pClass==0 ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_Connection::getCatalog( ) throw(SQLException, RuntimeException) { ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Connection_BASE::rBHelper.bDisposed); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - ::rtl::OUString aStr; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/lang/String;"; - static const char * cMethodName = "getCatalog"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - aStr = JavaString2String(t.pEnv,out); - } //mID - } //t.pEnv - // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! - return aStr; + static jmethodID mID(NULL); + return callStringMethod("getCatalog",mID); } // ------------------------------------------------------------------------- Reference< XDatabaseMetaData > SAL_CALL java_sql_Connection::getMetaData( ) throw(SQLException, RuntimeException) @@ -395,24 +351,11 @@ Reference< XDatabaseMetaData > SAL_CALL java_sql_Connection::getMetaData( ) thr Reference< XDatabaseMetaData > xMetaData = m_xMetaData; if(!xMetaData.is()) { - jobject out(0);//(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/sql/DatabaseMetaData;"; - static const char * cMethodName = "getMetaData"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - out = t.pEnv->CallObjectMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //t.pEnv + static jmethodID mID(NULL); + jobject out = callObjectMethod(t.pEnv,"getMetaData","()Ljava/sql/DatabaseMetaData;", mID); if(out) { - xMetaData = new java_sql_DatabaseMetaData( t.pEnv, out, *this ); m_xMetaData = xMetaData; } @@ -428,193 +371,54 @@ void SAL_CALL java_sql_Connection::close( ) throw(SQLException, RuntimeExceptio // ------------------------------------------------------------------------- void SAL_CALL java_sql_Connection::commit( ) throw(SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Connection_BASE::rBHelper.bDisposed); - - - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "commit"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv + static jmethodID mID(NULL); + callVoidMethod("commit",mID); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_Connection::isClosed( ) throw(SQLException, RuntimeException) { ::osl::MutexGuard aGuard( m_aMutex ); - jboolean out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "isClosed"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out && java_sql_Connection_BASE::rBHelper.bDisposed; + static jmethodID mID(NULL); + return callBooleanMethod( "isClosed", mID ) && java_sql_Connection_BASE::rBHelper.bDisposed; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_Connection::isReadOnly( ) throw(SQLException, RuntimeException) { ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Connection_BASE::rBHelper.bDisposed); - - - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "isReadOnly"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethod( "isReadOnly", mID ); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_Connection::setCatalog( const ::rtl::OUString& catalog ) throw(SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Connection_BASE::rBHelper.bDisposed); - - - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(Ljava/lang/String;)V"; - static const char * cMethodName = "setCatalog"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - // Parameter konvertieren - jstring str = convertwchar_tToJavaString(t.pEnv,catalog); - t.pEnv->CallVoidMethod( object, mID, str ); - - t.pEnv->DeleteLocalRef(str); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } //t.pEnv + static jmethodID mID(NULL); + callVoidMethodWithStringArg("setCatalog",mID,catalog); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_Connection::rollback( ) throw(SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Connection_BASE::rBHelper.bDisposed); - - - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "rollback"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv + static jmethodID mID(NULL); + callVoidMethod("rollback",mID); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_Connection::getAutoCommit( ) throw(SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Connection_BASE::rBHelper.bDisposed); - - - jboolean out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "getAutoCommit"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - out = t.pEnv->CallBooleanMethod( object, mID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethod( "getAutoCommit", mID ); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_Connection::setReadOnly( sal_Bool readOnly ) throw(SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Connection_BASE::rBHelper.bDisposed); - - - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - - // temporaere Variable initialisieren - static const char * cSignature = "(Z)V"; - static const char * cMethodName = "setReadOnly"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID, (jboolean)readOnly ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + static jmethodID mID(NULL); + callVoidMethodWithBoolArg("setReadOnly",mID,readOnly); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_Connection::setAutoCommit( sal_Bool autoCommit ) throw(SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Connection_BASE::rBHelper.bDisposed); - - - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - - // temporaere Variable initialisieren - static const char * cSignature = "(Z)V"; - static const char * cMethodName = "setAutoCommit"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID, (jboolean)autoCommit ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + static jmethodID mID(NULL); + callVoidMethodWithBoolArg("setAutoCommit",mID,autoCommit); } // ------------------------------------------------------------------------- Reference< ::com::sun::star::container::XNameAccess > SAL_CALL java_sql_Connection::getTypeMap( ) throw(SQLException, RuntimeException) @@ -622,23 +426,9 @@ Reference< ::com::sun::star::container::XNameAccess > SAL_CALL java_sql_Connecti ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Connection_BASE::rBHelper.bDisposed); - - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/util/Map;"; - static const char * cMethodName = "getTypeMap"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv + static jmethodID mID(NULL); + /*jobject out = */callObjectMethod(t.pEnv,"getTypeMap","()Ljava/util/Map;", mID); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return 0;// ? 0 : Map2XNameAccess( t.pEnv, out ); } @@ -657,23 +447,8 @@ sal_Int32 SAL_CALL java_sql_Connection::getTransactionIsolation( ) throw(SQLExc ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Connection_BASE::rBHelper.bDisposed); - - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getTransactionIsolation"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - out = t.pEnv->CallIntMethod( object, mID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callIntMethod("getTransactionIsolation",mID); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_Connection::setTransactionIsolation( sal_Int32 level ) throw(SQLException, RuntimeException) @@ -681,22 +456,8 @@ void SAL_CALL java_sql_Connection::setTransactionIsolation( sal_Int32 level ) th ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Connection_BASE::rBHelper.bDisposed); - - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)V"; - static const char * cMethodName = "setTransactionIsolation"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID, level ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + static jmethodID mID(NULL); + callVoidMethodWithIntArg("setTransactionIsolation",mID,level); } // ------------------------------------------------------------------------- Reference< XStatement > SAL_CALL java_sql_Connection::createStatement( ) throw(SQLException, RuntimeException) @@ -783,26 +544,21 @@ Reference< XPreparedStatement > SAL_CALL java_sql_Connection::prepareCall( const ::rtl::OUString aStr; SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ + { // temporaere Variable initialisieren static const char * cSignature = "(Ljava/lang/String;)Ljava/lang/String;"; static const char * cMethodName = "nativeSQL"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - // Parameter konvertieren - jstring str = convertwchar_tToJavaString(t.pEnv,sql); - - jobject out = t.pEnv->CallObjectMethod( object, mID, str ); - t.pEnv->DeleteLocalRef(str); - aStr = JavaString2String(t.pEnv, (jstring)out ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + // Parameter konvertieren + jstring str = convertwchar_tToJavaString(t.pEnv,sql); + + jobject out = t.pEnv->CallObjectMethod( object, mID, str ); + t.pEnv->DeleteLocalRef(str); + aStr = JavaString2String(t.pEnv, (jstring)out ); + ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); } //t.pEnv m_aLogger.log( LogLevel::FINER, STR_LOG_NATIVE_SQL, sql, aStr ); @@ -812,24 +568,8 @@ Reference< XPreparedStatement > SAL_CALL java_sql_Connection::prepareCall( const // ------------------------------------------------------------------------- void SAL_CALL java_sql_Connection::clearWarnings( ) throw(SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Connection_BASE::rBHelper.bDisposed); - - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "clearWarnings"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + static jmethodID mID(NULL); + callVoidMethod("clearWarnings",mID); } // ------------------------------------------------------------------------- Any SAL_CALL java_sql_Connection::getWarnings( ) throw(SQLException, RuntimeException) @@ -837,22 +577,9 @@ Any SAL_CALL java_sql_Connection::getWarnings( ) throw(SQLException, RuntimeExc ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Connection_BASE::rBHelper.bDisposed); - jobject out(NULL); SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/sql/SQLWarning;"; - static const char * cMethodName = "getWarnings"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv + static jmethodID mID(NULL); + jobject out = callObjectMethod(t.pEnv,"getWarnings","()Ljava/sql/SQLWarning;", mID); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! if( out ) { @@ -961,8 +688,8 @@ void java_sql_Connection::loadDriverFromProperties( const ::rtl::OUString& _sDri m_pDriverClassLoader.reset(); // here I try to find the class for jdbc driver - java_sql_SQLException_BASE::getMyClass(); - java_lang_Throwable::getMyClass(); + java_sql_SQLException_BASE::st_getMyClass(); + java_lang_Throwable::st_getMyClass(); if ( !_sDriverClass.getLength() ) { @@ -1005,7 +732,7 @@ void java_sql_Connection::loadDriverFromProperties( const ::rtl::OUString& _sDri if( t.pEnv && m_pDriverobject ) m_pDriverobject = t.pEnv->NewGlobalRef( m_pDriverobject ); - if( t.pEnv ) + { jclass tempClass = t.pEnv->GetObjectClass(m_pDriverobject); if ( m_pDriverobject ) @@ -1084,10 +811,9 @@ sal_Bool java_sql_Connection::construct(const ::rtl::OUString& url, static const char * cMethodName = "connect"; // Java-Call absetzen jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( m_Driver_theClass, cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - if( mID ) + if ( !mID ) + mID = t.pEnv->GetMethodID( m_Driver_theClass, cMethodName, cSignature ); + if ( mID ) { jvalue args[2]; // Parameter konvertieren diff --git a/connectivity/source/drivers/jdbc/JDriver.cxx b/connectivity/source/drivers/jdbc/JDriver.cxx index 1db186bd57..aeec9ee2d1 100644 --- a/connectivity/source/drivers/jdbc/JDriver.cxx +++ b/connectivity/source/drivers/jdbc/JDriver.cxx @@ -33,7 +33,6 @@ #include "java/sql/Driver.hxx" #include "java/lang/Object.hxx" #include "java/lang/Class.hxx" -#include "java/sql/DriverManager.hxx" #include "java/sql/DriverPropertyInfo.hxx" #include "java/sql/Connection.hxx" #include "java/util/Property.hxx" diff --git a/connectivity/source/drivers/jdbc/JStatement.cxx b/connectivity/source/drivers/jdbc/JStatement.cxx index c5f172f16a..7aa1750bb6 100644 --- a/connectivity/source/drivers/jdbc/JStatement.cxx +++ b/connectivity/source/drivers/jdbc/JStatement.cxx @@ -96,20 +96,8 @@ void SAL_CALL OStatement_BASE2::disposing() if ( object ) { - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "close"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv + static jmethodID mID(NULL); + callVoidMethod("close",mID); } ::comphelper::disposeComponent(m_xGeneratedStatement); @@ -121,17 +109,11 @@ void SAL_CALL OStatement_BASE2::disposing() java_sql_Statement_Base::disposing(); } // ------------------------------------------------------------------------- -jclass java_sql_Statement_Base::getMyClass() +jclass java_sql_Statement_Base::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( !t.pEnv ) return (jclass)0; - jclass tempClass = t.pEnv->FindClass("java/sql/Statement"); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/sql/Statement"); return theClass; } // ----------------------------------------------------------------------------- @@ -143,14 +125,6 @@ void SAL_CALL java_sql_Statement_Base::disposing(void) } // ------------------------------------------------------------------------- -void java_sql_Statement_Base::saveClassRef( jclass pClass ) -{ - if( pClass==0 ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} -//----------------------------------------------------------------------------- void SAL_CALL OStatement_BASE2::release() throw() { relase_ChildImpl(); @@ -190,24 +164,18 @@ Reference< XResultSet > SAL_CALL java_sql_Statement_Base::getGeneratedValues( ) jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + createStatement(t.pEnv); + // temporaere Variable initialisieren + try { - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/sql/ResultSet;"; - static const char * cMethodName = "getGeneratedKeys"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID); - // und aufraeumen - // ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - connectivity::isExceptionOccured(t.pEnv,sal_True); - } //mID - } //t.pEnv - + static jmethodID mID(NULL); + out = callResultSetMethod(t.env(),"getGeneratedKeys",mID); + } + catch(const SQLException&) + { + // ignore + } + Reference< XResultSet > xRes; if ( !out ) { @@ -234,23 +202,9 @@ Reference< XResultSet > SAL_CALL java_sql_Statement_Base::getGeneratedValues( ) void SAL_CALL java_sql_Statement_Base::cancel( ) throw(RuntimeException) { SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - if( t.pEnv ){ - - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "cancel"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + callVoidMethod("cancel",mID); } // ------------------------------------------------------------------------- @@ -268,20 +222,11 @@ void SAL_CALL java_sql_Statement_Base::close( ) throw(::com::sun::star::sdbc::S void SAL_CALL java_sql_Statement::clearBatch( ) throw(::com::sun::star::sdbc::SQLException, RuntimeException) { SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ + { createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "clearBatch"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID + static jmethodID mID(NULL); + callVoidMethod("clearBatch",mID); } //t.pEnv } // ------------------------------------------------------------------------- @@ -294,8 +239,6 @@ sal_Bool SAL_CALL java_sql_Statement_Base::execute( const ::rtl::OUString& sql ) jboolean out(sal_False); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - - if( t.pEnv ) { createStatement(t.pEnv); m_sSqlStatement = sql; @@ -303,23 +246,20 @@ sal_Bool SAL_CALL java_sql_Statement_Base::execute( const ::rtl::OUString& sql ) static const char * cSignature = "(Ljava/lang/String;)Z"; static const char * cMethodName = "execute"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - // Parameter konvertieren - jdbc::LocalRef< jstring > str( t.env(), convertwchar_tToJavaString( t.pEnv, sql ) ); - { - jdbc::ContextClassLoaderScope ccl( t.env(), - m_pConnection ? m_pConnection->getDriverClassLoader() : jdbc::GlobalRef< jobject >(), - m_aLogger, - *this - ); + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + // Parameter konvertieren + jdbc::LocalRef< jstring > str( t.env(), convertwchar_tToJavaString( t.pEnv, sql ) ); + { + jdbc::ContextClassLoaderScope ccl( t.env(), + m_pConnection ? m_pConnection->getDriverClassLoader() : jdbc::GlobalRef< jobject >(), + m_aLogger, + *this + ); - out = t.pEnv->CallBooleanMethod( object, mID, str.get() ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } //mID + out = t.pEnv->CallBooleanMethod( object, mID, str.get() ); + ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); + } } //t.pEnv return out; } @@ -333,7 +273,7 @@ Reference< XResultSet > SAL_CALL java_sql_Statement_Base::executeQuery( const :: jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { createStatement(t.pEnv); m_sSqlStatement = sql; @@ -341,23 +281,20 @@ Reference< XResultSet > SAL_CALL java_sql_Statement_Base::executeQuery( const :: static const char * cSignature = "(Ljava/lang/String;)Ljava/sql/ResultSet;"; static const char * cMethodName = "executeQuery"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - // Parameter konvertieren - jdbc::LocalRef< jstring > str( t.env(), convertwchar_tToJavaString( t.pEnv, sql ) ); - { - jdbc::ContextClassLoaderScope ccl( t.env(), - m_pConnection ? m_pConnection->getDriverClassLoader() : jdbc::GlobalRef< jobject >(), - m_aLogger, - *this - ); + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + // Parameter konvertieren + jdbc::LocalRef< jstring > str( t.env(), convertwchar_tToJavaString( t.pEnv, sql ) ); + { + jdbc::ContextClassLoaderScope ccl( t.env(), + m_pConnection ? m_pConnection->getDriverClassLoader() : jdbc::GlobalRef< jobject >(), + m_aLogger, + *this + ); - out = t.pEnv->CallObjectMethod( object, mID, str.get() ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } //mID + out = t.pEnv->CallObjectMethod( object, mID, str.get() ); + ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); + } } //t.pEnv // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out==0 ? 0 : new java_sql_ResultSet( t.pEnv, out, m_aLogger, *m_pConnection,this ); @@ -383,24 +320,10 @@ void SAL_CALL java_sql_Statement::addBatch( const ::rtl::OUString& sql ) throw(: ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - + { createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(Ljava/lang/String;)V"; - static const char * cMethodName = "addBatch"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - // Parameter konvertieren - jstring str = convertwchar_tToJavaString(t.pEnv,sql); - t.pEnv->CallVoidMethod( object, mID, str ); - // und aufraeumen - t.pEnv->DeleteLocalRef(str); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID + static jmethodID mID(NULL); + callVoidMethodWithStringArg("addBatch",mID,sql); } //t.pEnv } // ------------------------------------------------------------------------- @@ -411,27 +334,16 @@ Sequence< sal_Int32 > SAL_CALL java_sql_Statement::executeBatch( ) throw(::com: checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); Sequence< sal_Int32 > aSeq; SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()[I"; - static const char * cMethodName = "executeBatch"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jintArray out = (jintArray)t.pEnv->CallObjectMethod( object, mID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - if (out) - { - jboolean p = sal_False; - aSeq.realloc(t.pEnv->GetArrayLength(out)); - memcpy(aSeq.getArray(),t.pEnv->GetIntArrayElements(out,&p),aSeq.getLength()); - t.pEnv->DeleteLocalRef(out); - } - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + jintArray out = (jintArray)callObjectMethod(t.pEnv,"executeBatch","()[I", mID); + if (out) + { + jboolean p = sal_False; + aSeq.realloc(t.pEnv->GetArrayLength(out)); + memcpy(aSeq.getArray(),t.pEnv->GetIntArrayElements(out,&p),aSeq.getLength()); + t.pEnv->DeleteLocalRef(out); + } return aSeq; } // ------------------------------------------------------------------------- @@ -443,58 +355,21 @@ sal_Int32 SAL_CALL java_sql_Statement_Base::executeUpdate( const ::rtl::OUString checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); m_aLogger.log( LogLevel::FINE, STR_LOG_EXECUTE_UPDATE, sql ); - jint out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - m_sSqlStatement = sql; - // temporaere Variable initialisieren - static const char * cSignature = "(Ljava/lang/String;)I"; - static const char * cMethodName = "executeUpdate"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - // Parameter konvertieren - jdbc::LocalRef< jstring > str( t.env(), convertwchar_tToJavaString( t.pEnv, sql ) ); - { - jdbc::ContextClassLoaderScope ccl( t.env(), - m_pConnection ? m_pConnection->getDriverClassLoader() : jdbc::GlobalRef< jobject >(), - m_aLogger, - *this - ); - - out = t.pEnv->CallIntMethod( object, mID, str.get() ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } //mID - } //t.pEnv - return (sal_Int32)out; + createStatement(t.pEnv); + m_sSqlStatement = sql; + static jmethodID mID(NULL); + return callIntMethodWithStringArg("executeUpdate",mID,sql); } // ------------------------------------------------------------------------- Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL java_sql_Statement_Base::getResultSet( ) throw(::com::sun::star::sdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/sql/ResultSet;"; - static const char * cMethodName = "getResultSet"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + jobject out = callResultSetMethod(t.env(),"getResultSet",mID); + // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out==0 ? 0 : new java_sql_ResultSet( t.pEnv, out, m_aLogger, *m_pConnection,this ); } @@ -502,78 +377,29 @@ Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL java_sql_Statement_Base sal_Int32 SAL_CALL java_sql_Statement_Base::getUpdateCount( ) throw(::com::sun::star::sdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jint out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getUpdateCount"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - + createStatement(t.pEnv); + static jmethodID mID(NULL); + sal_Int32 out = callIntMethod("getUpdateCount",mID); m_aLogger.log( LogLevel::FINER, STR_LOG_UPDATE_COUNT, (sal_Int32)out ); - return (sal_Int32)out; + return out; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_Statement_Base::getMoreResults( ) throw(::com::sun::star::sdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "getMoreResults"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethod( "getMoreResults", mID ); } // ------------------------------------------------------------------------- // ------------------------------------------------------------------------- Any SAL_CALL java_sql_Statement_Base::getWarnings( ) throw(::com::sun::star::sdbc::SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jobject out(NULL); SDBThreadAttach t; - if( t.pEnv ) - { - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/sql/SQLWarning;"; - static const char * cMethodName = "getWarnings"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + jobject out = callObjectMethod(t.pEnv,"getWarnings","()Ljava/sql/SQLWarning;", mID); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! if( out ) { @@ -591,192 +417,72 @@ void SAL_CALL java_sql_Statement_Base::clearWarnings( ) throw(::com::sun::star: ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; - if( t.pEnv ) + { createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "clearWarnings"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } + static jmethodID mID(NULL); + callVoidMethod("clearWarnings",mID); } } //------------------------------------------------------------------------------ sal_Int32 java_sql_Statement_Base::getQueryTimeOut() throw(SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getQueryTimeOut"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID); - isExceptionOccured(t.pEnv,sal_True); - - } //mID - } //t.pEnv - return (sal_Int32)out; + static jmethodID mID(NULL); + return impl_getProperty("getQueryTimeOut",mID); } //------------------------------------------------------------------------------ sal_Int32 java_sql_Statement_Base::getMaxRows() throw(SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getMaxRows"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID); - isExceptionOccured(t.pEnv,sal_True); - - } //mID - } //t.pEnv - return (sal_Int32)out; + static jmethodID mID(NULL); + return impl_getProperty("getMaxRows",mID); } //------------------------------------------------------------------------------ sal_Int32 java_sql_Statement_Base::getResultSetConcurrency() throw(SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv && object ){ - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getResultSetConcurrency"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID); - isExceptionOccured(t.pEnv,sal_True); - - } //mID - } //t.pEnv - else - out = m_nResultSetConcurrency; - return (sal_Int32)out; + static jmethodID mID(NULL); + return impl_getProperty("getResultSetConcurrency",mID,m_nResultSetConcurrency); } //------------------------------------------------------------------------------ sal_Int32 java_sql_Statement_Base::getResultSetType() throw(SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv && object ){ - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getResultSetType"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID); - isExceptionOccured(t.pEnv,sal_True); + static jmethodID mID(NULL); + return impl_getProperty("getResultSetType",mID,m_nResultSetType); +} +//------------------------------------------------------------------------------ +sal_Int32 java_sql_Statement_Base::impl_getProperty(const char* _pMethodName, jmethodID& _inout_MethodID,sal_Int32 _nDefault) +{ + sal_Int32 out = _nDefault; + if ( object ) + out = callIntMethod(_pMethodName,_inout_MethodID,true); - } //mID - } //t.pEnv - else - out = m_nResultSetType; - return (sal_Int32)out; + return out; } //------------------------------------------------------------------------------ -sal_Int32 java_sql_Statement_Base::getFetchDirection() throw(SQLException, RuntimeException) +sal_Int32 java_sql_Statement_Base::impl_getProperty(const char* _pMethodName, jmethodID& _inout_MethodID) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jint out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getFetchDirection"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID); - isExceptionOccured(t.pEnv,sal_True); + createStatement(t.pEnv); + return callIntMethod(_pMethodName,_inout_MethodID,true); +} - } //mID - } //t.pEnv - return (sal_Int32)out; +//------------------------------------------------------------------------------ +sal_Int32 java_sql_Statement_Base::getFetchDirection() throw(SQLException, RuntimeException) +{ + static jmethodID mID(NULL); + return impl_getProperty("getFetchDirection",mID); } //------------------------------------------------------------------------------ sal_Int32 java_sql_Statement_Base::getFetchSize() throw(SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getFetchSize"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID); - isExceptionOccured(t.pEnv,sal_True); - - } //mID - } //t.pEnv - return (sal_Int32)out; + static jmethodID mID(NULL); + return impl_getProperty("getFetchSize",mID); } //------------------------------------------------------------------------------ sal_Int32 java_sql_Statement_Base::getMaxFieldSize() throw(SQLException, RuntimeException) { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getMaxFieldSize"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID); - isExceptionOccured(t.pEnv,sal_True); - - } //mID - } //t.pEnv - return (sal_Int32)out; + static jmethodID mID(NULL); + return impl_getProperty("getMaxFieldSize",mID); } //------------------------------------------------------------------------------ ::rtl::OUString java_sql_Statement_Base::getCursorName() throw(SQLException, RuntimeException) @@ -784,26 +490,16 @@ sal_Int32 java_sql_Statement_Base::getMaxFieldSize() throw(SQLException, Runtime ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - ::rtl::OUString aStr; - if( t.pEnv ) + createStatement(t.pEnv); + static jmethodID mID(NULL); + try { - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/lang/String;"; - static const char * cMethodName = "getCursorName"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID); - isExceptionOccured(t.pEnv,sal_True); - - aStr = JavaString2String(t.pEnv,out); - } //mID - } //t.pEnv - // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! - return aStr; + return callStringMethod("getCursorName",mID); + } + catch(const SQLException&) + { + } + return ::rtl::OUString(); } //------------------------------------------------------------------------------ void java_sql_Statement_Base::setQueryTimeOut(sal_Int32 _par0) throw(SQLException, RuntimeException) @@ -811,22 +507,9 @@ void java_sql_Statement_Base::setQueryTimeOut(sal_Int32 _par0) throw(SQLExceptio ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)V"; - static const char * cMethodName = "setQueryTimeOut"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - t.pEnv->CallVoidMethod( object, mID,_par0); - isExceptionOccured(t.pEnv,sal_True); - - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + callVoidMethodWithIntArg("setQueryTimeOut",mID,_par0,true); } //------------------------------------------------------------------------------ @@ -838,20 +521,9 @@ void java_sql_Statement_Base::setEscapeProcessing(sal_Bool _par0) throw(SQLExcep SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); m_bEscapeProcessing = _par0; - if( t.pEnv ) - { - createStatement( t.pEnv ); - static const char * cSignature = "(Z)V"; - static const char * cMethodName = "setEscapeProcessing"; - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - t.pEnv->CallVoidMethod( object, mID,_par0); - isExceptionOccured(t.pEnv,sal_True); - } - } + createStatement( t.pEnv ); + static jmethodID mID(NULL); + callVoidMethodWithBoolArg("setEscapeProcessing",mID,_par0,true); } //------------------------------------------------------------------------------ @@ -860,21 +532,9 @@ void java_sql_Statement_Base::setMaxRows(sal_Int32 _par0) throw(SQLException, Ru ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)V"; - static const char * cMethodName = "setMaxRows"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID,_par0); - isExceptionOccured(t.pEnv,sal_True); - - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + callVoidMethodWithIntArg("setMaxRows",mID,_par0,true); } //------------------------------------------------------------------------------ void java_sql_Statement_Base::setResultSetConcurrency(sal_Int32 _par0) throw(SQLException, RuntimeException) @@ -884,15 +544,7 @@ void java_sql_Statement_Base::setResultSetConcurrency(sal_Int32 _par0) throw(SQL m_aLogger.log( LogLevel::FINE, STR_LOG_RESULT_SET_CONCURRENCY, (sal_Int32)_par0 ); m_nResultSetConcurrency = _par0; - if( object ) - { - SDBThreadAttach t; - if( t.pEnv ) - { - t.pEnv->DeleteGlobalRef( object ); - object = NULL; - } - } + clearObject(); } //------------------------------------------------------------------------------ void java_sql_Statement_Base::setResultSetType(sal_Int32 _par0) throw(SQLException, RuntimeException) @@ -902,15 +554,7 @@ void java_sql_Statement_Base::setResultSetType(sal_Int32 _par0) throw(SQLExcepti m_aLogger.log( LogLevel::FINE, STR_LOG_RESULT_SET_TYPE, (sal_Int32)_par0 ); m_nResultSetType = _par0; - if( object ) - { - SDBThreadAttach t; - if( t.pEnv ) - { - t.pEnv->DeleteGlobalRef( object ); - object = NULL; - } - } + clearObject(); } //------------------------------------------------------------------------------ void java_sql_Statement_Base::setFetchDirection(sal_Int32 _par0) throw(SQLException, RuntimeException) @@ -919,22 +563,9 @@ void java_sql_Statement_Base::setFetchDirection(sal_Int32 _par0) throw(SQLExcept checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); m_aLogger.log( LogLevel::FINER, STR_LOG_FETCH_DIRECTION, (sal_Int32)_par0 ); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)V"; - static const char * cMethodName = "setFetchDirection"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID,_par0); - isExceptionOccured(t.pEnv,sal_True); - - } //mID - } //t.pEnv - + createStatement(t.pEnv); + static jmethodID mID(NULL); + callVoidMethodWithIntArg("setFetchDirection",mID,_par0,true); } //------------------------------------------------------------------------------ void java_sql_Statement_Base::setFetchSize(sal_Int32 _par0) throw(SQLException, RuntimeException) @@ -944,22 +575,9 @@ void java_sql_Statement_Base::setFetchSize(sal_Int32 _par0) throw(SQLException, m_aLogger.log( LogLevel::FINER, STR_LOG_FETCH_SIZE, (sal_Int32)_par0 ); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)V"; - static const char * cMethodName = "setFetchSize"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID,_par0); - isExceptionOccured(t.pEnv,sal_True); - - } //mID - } //t.pEnv - + createStatement(t.pEnv); + static jmethodID mID(NULL); + callVoidMethodWithIntArg("setFetchSize",mID,_par0,true); } //------------------------------------------------------------------------------ void java_sql_Statement_Base::setMaxFieldSize(sal_Int32 _par0) throw(SQLException, RuntimeException) @@ -967,22 +585,9 @@ void java_sql_Statement_Base::setMaxFieldSize(sal_Int32 _par0) throw(SQLExceptio ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(I)V"; - static const char * cMethodName = "setMaxFieldSize"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID,_par0); - isExceptionOccured(t.pEnv,sal_True); - - } //mID - } //t.pEnv - + createStatement(t.pEnv); + static jmethodID mID(NULL); + callVoidMethodWithIntArg("setMaxFieldSize",mID,_par0,true); } //------------------------------------------------------------------------------ void java_sql_Statement_Base::setCursorName(const ::rtl::OUString &_par0) throw(SQLException, RuntimeException) @@ -990,24 +595,10 @@ void java_sql_Statement_Base::setCursorName(const ::rtl::OUString &_par0) throw( ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ + { createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(Ljava/lang/String;)V"; - static const char * cMethodName = "setCursorName"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - // Parameter konvertieren - jstring str = convertwchar_tToJavaString(t.pEnv,_par0); - t.pEnv->CallVoidMethod( object, mID,str); - isExceptionOccured(t.pEnv,sal_True); - - t.pEnv->DeleteLocalRef(str); - isExceptionOccured(t.pEnv,sal_True); - } //mID + static jmethodID mID(NULL); + callVoidMethodWithStringArg("setCursorName",mID,_par0); } //t.pEnv } @@ -1161,27 +752,14 @@ jclass java_sql_Statement::theClass = 0; java_sql_Statement::~java_sql_Statement() {} -jclass java_sql_Statement::getMyClass() +jclass java_sql_Statement::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( !t.pEnv ) return (jclass)0; - jclass tempClass = t.pEnv->FindClass("java/sql/Statement"); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/sql/Statement"); return theClass; } -void java_sql_Statement::saveClassRef( jclass pClass ) -{ - if( pClass==0 ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} // ----------------------------------------------------------------------------- void java_sql_Statement::createStatement(JNIEnv* _pEnv) { @@ -1194,7 +772,7 @@ void java_sql_Statement::createStatement(JNIEnv* _pEnv) static const char * cMethodName = "createStatement"; // Java-Call absetzen jobject out = NULL; - static jmethodID mID = NULL; + static jmethodID mID(NULL); if ( !mID ) mID = _pEnv->GetMethodID( m_pConnection->getMyClass(), cMethodName, cSignature ); if( mID ){ diff --git a/connectivity/source/drivers/jdbc/Object.cxx b/connectivity/source/drivers/jdbc/Object.cxx index b5251960a4..b8e8c87954 100644 --- a/connectivity/source/drivers/jdbc/Object.cxx +++ b/connectivity/source/drivers/jdbc/Object.cxx @@ -45,7 +45,7 @@ #include #include "resource/jdbc_log.hrc" - +#include #include #include @@ -112,17 +112,10 @@ void SDBThreadAttach::releaseRef() // statische Variablen der Klasse: jclass java_lang_Object::theClass = 0; -jclass java_lang_Object::getMyClass() +jclass java_lang_Object::getMyClass() const { if( !theClass ) - { - SDBThreadAttach t; - - if( !t.pEnv ) return (jclass)NULL; - jclass tempClass = t.pEnv->FindClass( "java/lang/Object" ); - theClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - } + theClass = findMyClass("java/lang/Object"); return theClass; } // der eigentliche Konstruktor @@ -146,9 +139,7 @@ java_lang_Object::~java_lang_Object() if( object ) { SDBThreadAttach t; - if( t.pEnv ) - t.pEnv->DeleteGlobalRef( object ); - object = NULL; + clearObject(*t.pEnv); } SDBThreadAttach::releaseRef(); } @@ -166,65 +157,30 @@ void java_lang_Object::clearObject() if( object ) { SDBThreadAttach t; - if( t.pEnv ) - t.pEnv->DeleteGlobalRef( object ); - object = NULL; + clearObject(*t.pEnv); } } // der protected-Konstruktor fuer abgeleitete Klassen void java_lang_Object::saveRef( JNIEnv * pXEnv, jobject myObj ) { OSL_ENSURE( myObj, "object in c++ -> Java Wrapper" ); - if( pXEnv && myObj ) + if( myObj ) object = pXEnv->NewGlobalRef( myObj ); } java_lang_Class * java_lang_Object::getClass() { - jobject out; SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/lang/Class;"; - static const char * cMethodName = "getClass"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - out = t.pEnv->CallObjectMethodA( object, mID, NULL ); - ThrowSQLException(t.pEnv,NULL); - return new java_lang_Class( t.pEnv, out ); - } //mID - } //pEnv - return NULL; + static jmethodID mID(NULL); + jobject out = callObjectMethod(t.pEnv,"getClass","()Ljava/lang/Class;", mID); + return out ? new java_lang_Class( t.pEnv, out ) : NULL; } ::rtl::OUString java_lang_Object::toString() const { - - SDBThreadAttach t; - ::rtl::OUString aStr; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/lang/String;"; - static const char * cMethodName = "toString"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID); - ThrowSQLException(t.pEnv,NULL); - aStr = JavaString2String(t.pEnv,out); - } //mID - } //pEnv - return aStr; + static jmethodID mID(NULL); + return callStringMethod("toString",mID); } // -------------------------------------------------------------------------------- @@ -240,14 +196,14 @@ namespace _pEnvironment->ExceptionClear(); // we have to clear the exception here because we want to handle it itself - if ( _pEnvironment->IsInstanceOf( jThrow, java_sql_SQLException_BASE::getMyClass() ) ) + if ( _pEnvironment->IsInstanceOf( jThrow, java_sql_SQLException_BASE::st_getMyClass() ) ) { ::std::auto_ptr< java_sql_SQLException_BASE > pException( new java_sql_SQLException_BASE( _pEnvironment, jThrow ) ); _out_rException = SQLException( pException->getMessage(), _rxContext, pException->getSQLState(), pException->getErrorCode(), Any() ); return true; } - else if ( _pEnvironment->IsInstanceOf( jThrow, java_lang_Throwable::getMyClass() ) ) + else if ( _pEnvironment->IsInstanceOf( jThrow, java_lang_Throwable::st_getMyClass() ) ) { ::std::auto_ptr< java_lang_Throwable > pThrow( new java_lang_Throwable( _pEnvironment, jThrow ) ); ::rtl::OUString sMessage = pThrow->getMessage(); @@ -283,5 +239,204 @@ void java_lang_Object::ThrowSQLException( JNIEnv* _pEnvironment, const Reference if ( lcl_translateJNIExceptionToUNOException( _pEnvironment, _rxContext, aException ) ) throw aException; } +// ----------------------------------------------------------------------------- +void java_lang_Object::obtainMethodId(JNIEnv* _pEnv,const char* _pMethodName, const char* _pSignature,jmethodID& _inout_MethodID) const +{ + if ( !_inout_MethodID ) + { + _inout_MethodID = _pEnv->GetMethodID( getMyClass(), _pMethodName, _pSignature ); + OSL_ENSURE( _inout_MethodID, _pSignature ); + if ( !_inout_MethodID ) + throw SQLException(); + } // if ( !_inout_MethodID ) +} +// ----------------------------------------------------------------------------- +sal_Bool java_lang_Object::callBooleanMethod( const char* _pMethodName, jmethodID& _inout_MethodID ) const +{ + jboolean out( sal_False ); + + SDBThreadAttach t; + OSL_ENSURE( t.pEnv, "java_lang_Object::callBooleanMethod: no Java enviroment anymore!" ); + obtainMethodId(t.pEnv, _pMethodName,"()Z", _inout_MethodID); + // call method + out = t.pEnv->CallBooleanMethod( object, _inout_MethodID ); + ThrowSQLException( t.pEnv, NULL ); + + return out; +} +// ----------------------------------------------------------------------------- +sal_Bool java_lang_Object::callBooleanMethodWithIntArg( const char* _pMethodName, jmethodID& _inout_MethodID, sal_Int32 _nArgument ) const +{ + jboolean out( sal_False ); + SDBThreadAttach t; + OSL_ENSURE( t.pEnv, "java_lang_Object::callBooleanMethodWithIntArg: no Java enviroment anymore!" ); + obtainMethodId(t.pEnv, _pMethodName,"(I)Z", _inout_MethodID); + // call method + out = t.pEnv->CallBooleanMethod( object, _inout_MethodID, _nArgument ); + ThrowSQLException( t.pEnv, NULL ); + + return out; +} +// ------------------------------------------------------------------------- +jobject java_lang_Object::callResultSetMethod( JNIEnv& _rEnv,const char* _pMethodName, jmethodID& _inout_MethodID ) const +{ + // call method + jobject out = callObjectMethod(&_rEnv,_pMethodName,"()Ljava/sql/ResultSet;", _inout_MethodID); + return out; +} +// ------------------------------------------------------------------------- +sal_Int32 java_lang_Object::callIntMethod( const char* _pMethodName, jmethodID& _inout_MethodID,bool _bIgnoreException ) const +{ + SDBThreadAttach t; + OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethod: no Java enviroment anymore!" ); + obtainMethodId(t.pEnv, _pMethodName,"()I", _inout_MethodID); + + // call method + jint out( t.pEnv->CallIntMethod( object, _inout_MethodID ) ); + if ( _bIgnoreException ) + isExceptionOccured(t.pEnv,sal_True); + else + ThrowSQLException( t.pEnv, NULL ); + + return (sal_Int32)out; +} +// ------------------------------------------------------------------------- +sal_Int32 java_lang_Object::callIntMethodWithIntArg( const char* _pMethodName, jmethodID& _inout_MethodID,sal_Int32 _nArgument ) const +{ + SDBThreadAttach t; + OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethod: no Java enviroment anymore!" ); + obtainMethodId(t.pEnv, _pMethodName,"(I)I", _inout_MethodID); + // call method + jint out( t.pEnv->CallIntMethod( object, _inout_MethodID , _nArgument) ); + ThrowSQLException( t.pEnv, NULL ); + + return (sal_Int32)out; +} +// ------------------------------------------------------------------------- +void java_lang_Object::callVoidMethod( const char* _pMethodName, jmethodID& _inout_MethodID) const +{ + SDBThreadAttach t; + OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethod: no Java enviroment anymore!" ); + obtainMethodId(t.pEnv, _pMethodName,"()V", _inout_MethodID); + + // call method + t.pEnv->CallVoidMethod( object, _inout_MethodID ); + ThrowSQLException( t.pEnv, NULL ); +} +// ------------------------------------------------------------------------- +void java_lang_Object::callVoidMethodWithIntArg( const char* _pMethodName, jmethodID& _inout_MethodID, sal_Int32 _nArgument,bool _bIgnoreException ) const +{ + SDBThreadAttach t; + OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethod: no Java enviroment anymore!" ); + obtainMethodId(t.pEnv, _pMethodName,"(I)V", _inout_MethodID); + + // call method + t.pEnv->CallVoidMethod( object, _inout_MethodID,_nArgument ); + if ( _bIgnoreException ) + isExceptionOccured(t.pEnv,sal_True); + else + ThrowSQLException( t.pEnv, NULL ); +} +// ------------------------------------------------------------------------- +void java_lang_Object::callVoidMethodWithBoolArg( const char* _pMethodName, jmethodID& _inout_MethodID, sal_Int32 _nArgument,bool _bIgnoreException ) const +{ + SDBThreadAttach t; + OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethod: no Java enviroment anymore!" ); + obtainMethodId(t.pEnv, _pMethodName,"(Z)V", _inout_MethodID); + // call method + t.pEnv->CallVoidMethod( object, _inout_MethodID,_nArgument ); + if ( _bIgnoreException ) + isExceptionOccured(t.pEnv,sal_True); + else + ThrowSQLException( t.pEnv, NULL ); +} +// ----------------------------------------------------------------------------- +::rtl::OUString java_lang_Object::callStringMethod( const char* _pMethodName, jmethodID& _inout_MethodID ) const +{ + SDBThreadAttach t; + OSL_ENSURE( t.pEnv, "java_lang_Object::callStringMethod: no Java enviroment anymore!" ); + + // call method + jstring out = (jstring)callObjectMethod(t.pEnv,_pMethodName,"()Ljava/lang/String;", _inout_MethodID); + return JavaString2String( t.pEnv, out ); +} +// ----------------------------------------------------------------------------- +jobject java_lang_Object::callObjectMethod( JNIEnv * _pEnv,const char* _pMethodName,const char* _pSignature, jmethodID& _inout_MethodID ) const +{ + // obtain method ID + obtainMethodId(_pEnv, _pMethodName,_pSignature, _inout_MethodID); + // call method + jobject out = _pEnv->CallObjectMethod( object, _inout_MethodID); + ThrowSQLException( _pEnv, NULL ); + return out; +} + +// ----------------------------------------------------------------------------- +jobject java_lang_Object::callObjectMethodWithIntArg( JNIEnv * _pEnv,const char* _pMethodName,const char* _pSignature, jmethodID& _inout_MethodID , sal_Int32 _nArgument) const +{ + obtainMethodId(_pEnv, _pMethodName,_pSignature, _inout_MethodID); + // call method + jobject out = _pEnv->CallObjectMethod( object, _inout_MethodID,_nArgument ); + ThrowSQLException( _pEnv, NULL ); + return out; +} +// ----------------------------------------------------------------------------- +::rtl::OUString java_lang_Object::callStringMethodWithIntArg( const char* _pMethodName, jmethodID& _inout_MethodID , sal_Int32 _nArgument) const +{ + SDBThreadAttach t; + OSL_ENSURE( t.pEnv, "java_lang_Object::callStringMethod: no Java enviroment anymore!" ); + jstring out = (jstring)callObjectMethodWithIntArg(t.pEnv,_pMethodName,"(I)Ljava/lang/String;",_inout_MethodID,_nArgument); + return JavaString2String( t.pEnv, out ); +} +// ------------------------------------------------------------------------- +void java_lang_Object::callVoidMethodWithStringArg( const char* _pMethodName, jmethodID& _inout_MethodID,const ::rtl::OUString& _nArgument ) const +{ + SDBThreadAttach t; + OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethod: no Java enviroment anymore!" ); + obtainMethodId(t.pEnv, _pMethodName,"(Ljava/lang/String;)V", _inout_MethodID); + + jstring str = convertwchar_tToJavaString(t.pEnv,_nArgument); + // call method + t.pEnv->CallVoidMethod( object, _inout_MethodID , str); + t.pEnv->DeleteLocalRef(str); + ThrowSQLException( t.pEnv, NULL ); +} +// ------------------------------------------------------------------------- +sal_Int32 java_lang_Object::callIntMethodWithStringArg( const char* _pMethodName, jmethodID& _inout_MethodID,const ::rtl::OUString& _nArgument ) const +{ + SDBThreadAttach t; + OSL_ENSURE( t.pEnv, "java_lang_Object::callIntMethodWithStringArg: no Java enviroment anymore!" ); + obtainMethodId(t.pEnv, _pMethodName,"(Ljava/lang/String;)I", _inout_MethodID); + + //TODO: Check if the code below is needed + //jdbc::LocalRef< jstring > str( t.env(), convertwchar_tToJavaString( t.pEnv, sql ) ); + //{ + // jdbc::ContextClassLoaderScope ccl( t.env(), + // m_pConnection ? m_pConnection->getDriverClassLoader() : jdbc::GlobalRef< jobject >(), + // m_aLogger, + // *this + // ); + jstring str = convertwchar_tToJavaString(t.pEnv,_nArgument); + // call method + jint out = t.pEnv->CallIntMethod( object, _inout_MethodID , str); + t.pEnv->DeleteLocalRef(str); + ThrowSQLException( t.pEnv, NULL ); + return (sal_Int32)out; +} +// ----------------------------------------------------------------------------- +jclass java_lang_Object::findMyClass(const char* _pClassName) +{ + // die Klasse muss nur einmal geholt werden, daher statisch + SDBThreadAttach t; + jclass tempClass = t.pEnv->FindClass(_pClassName); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); + if(!tempClass) + { + t.pEnv->ExceptionDescribe(); + t.pEnv->ExceptionClear(); + } + jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); + t.pEnv->DeleteLocalRef( tempClass ); + return globClass; +} diff --git a/connectivity/source/drivers/jdbc/PreparedStatement.cxx b/connectivity/source/drivers/jdbc/PreparedStatement.cxx index e14f26d135..918ecbf865 100644 --- a/connectivity/source/drivers/jdbc/PreparedStatement.cxx +++ b/connectivity/source/drivers/jdbc/PreparedStatement.cxx @@ -73,33 +73,15 @@ java_sql_PreparedStatement::~java_sql_PreparedStatement() } // ----------------------------------------------------------------------------- -jclass java_sql_PreparedStatement::getMyClass() +jclass java_sql_PreparedStatement::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch if( !theClass ) - { - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - jclass tempClass = t.pEnv->FindClass("java/sql/PreparedStatement"); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } - } + theClass = findMyClass("java/sql/PreparedStatement"); return theClass; } // ------------------------------------------------------------------------- -void java_sql_PreparedStatement::saveClassRef( jclass pClass ) -{ - if( pClass==0 ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} -// ------------------------------------------------------------------------- - ::com::sun::star::uno::Any SAL_CALL java_sql_PreparedStatement::queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException) { ::com::sun::star::uno::Any aRet = OStatement_BASE2::queryInterface(rType); @@ -127,24 +109,8 @@ sal_Bool SAL_CALL java_sql_PreparedStatement::execute( ) throw(::com::sun::star ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "execute"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethod( "execute", mID ); } // ------------------------------------------------------------------------- @@ -153,25 +119,8 @@ sal_Int32 SAL_CALL java_sql_PreparedStatement::executeUpdate( ) throw(::com::su ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); m_aLogger.log( LogLevel::FINE, STR_LOG_EXECUTING_PREPARED_UPDATE ); - - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "executeUpdate"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return (sal_Int32)out; + static jmethodID mID(NULL); + return impl_getProperty("executeUpdate",mID); } // ------------------------------------------------------------------------- @@ -182,21 +131,18 @@ void SAL_CALL java_sql_PreparedStatement::setString( sal_Int32 parameterIndex, c m_aLogger.log( LogLevel::FINER, STR_LOG_STRING_PARAMETER, parameterIndex, x ); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ // temporaere Variable initialisieren + { // temporaere Variable initialisieren createStatement(t.pEnv); static const char * cSignature = "(ILjava/lang/String;)V"; static const char * cMethodName = "setString"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jstring str = convertwchar_tToJavaString(t.pEnv,x); - t.pEnv->CallVoidMethod( object, mID, parameterIndex,str); - // und aufraeumen - t.pEnv->DeleteLocalRef(str); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + jstring str = convertwchar_tToJavaString(t.pEnv,x); + t.pEnv->CallVoidMethod( object, mID, parameterIndex,str); + // und aufraeumen + t.pEnv->DeleteLocalRef(str); + ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); } //t.pEnv } // ------------------------------------------------------------------------- @@ -213,23 +159,10 @@ void SAL_CALL java_sql_PreparedStatement::setString( sal_Int32 parameterIndex, c ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/sql/ResultSet;"; - static const char * cMethodName = "executeQuery"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + createStatement(t.pEnv); + static jmethodID mID(NULL); + jobject out = callResultSetMethod(t.env(),"executeQuery",mID); return out==0 ? 0 : new java_sql_ResultSet( t.pEnv, out, m_aLogger, *m_pConnection,this); } @@ -242,21 +175,9 @@ void SAL_CALL java_sql_PreparedStatement::setBoolean( sal_Int32 parameterIndex, checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(IZ)V"; - static const char * cMethodName = "setBoolean"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID, parameterIndex,x); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + callVoidMethod("setBoolean", "(IZ)V", mID, parameterIndex, x); } // ------------------------------------------------------------------------- @@ -267,21 +188,9 @@ void SAL_CALL java_sql_PreparedStatement::setByte( sal_Int32 parameterIndex, sal checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(IB)V"; - static const char * cMethodName = "setByte"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID, parameterIndex,x); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + callVoidMethod("setByte", "(IB)V", mID, parameterIndex, x); } // ------------------------------------------------------------------------- @@ -292,26 +201,10 @@ void SAL_CALL java_sql_PreparedStatement::setDate( sal_Int32 parameterIndex, con checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - - // temporaere Variable initialisieren - static const char * cSignature = "(ILjava/sql/Date;)V"; - static const char * cMethodName = "setDate"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jvalue args[1]; - // Parameter konvertieren - java_sql_Date aT(x); - args[0].l = aT.getJavaObject(); - t.pEnv->CallVoidMethod( object, mID, parameterIndex,args[0].l); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + java_sql_Date aT(x); + static jmethodID mID(NULL); + callVoidMethod("setDate", "(ILjava/sql/Date;)V", mID, parameterIndex, aT.getJavaObject()); } // ------------------------------------------------------------------------- @@ -323,27 +216,10 @@ void SAL_CALL java_sql_PreparedStatement::setTime( sal_Int32 parameterIndex, con checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - - // temporaere Variable initialisieren - static const char * cSignature = "(ILjava/sql/Time;)V"; - static const char * cMethodName = "setTime"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jvalue args[2]; - // Parameter konvertieren - args[0].i = (sal_Int32)parameterIndex; - java_sql_Time aT(x); - args[1].l = aT.getJavaObject(); - t.pEnv->CallVoidMethod( object, mID, parameterIndex,args[1].l); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + java_sql_Time aT(x); + static jmethodID mID(NULL); + callVoidMethod("setTime", "(ILjava/sql/Time;)V", mID, parameterIndex, aT.getJavaObject()); } // ------------------------------------------------------------------------- @@ -354,26 +230,10 @@ void SAL_CALL java_sql_PreparedStatement::setTimestamp( sal_Int32 parameterIndex checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - - // temporaere Variable initialisieren - static const char * cSignature = "(ILjava/sql/Timestamp;)V"; - static const char * cMethodName = "setTimestamp"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jvalue args[1]; - // Parameter konvertieren - java_sql_Timestamp aT(x); - args[0].l = aT.getJavaObject(); - t.pEnv->CallVoidMethod( object, mID, parameterIndex,args[0].l); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + java_sql_Timestamp aD(x); + callVoidMethod("setTimestamp", "(ILjava/sql/Timestamp;)V", mID, parameterIndex, aD.getJavaObject()); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_PreparedStatement::setDouble( sal_Int32 parameterIndex, double x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) @@ -383,21 +243,9 @@ void SAL_CALL java_sql_PreparedStatement::setDouble( sal_Int32 parameterIndex, d checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(ID)V"; - static const char * cMethodName = "setDouble"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID, parameterIndex,x); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + callVoidMethod("setDouble", "(ID)V", mID, parameterIndex, x); } // ------------------------------------------------------------------------- @@ -408,21 +256,9 @@ void SAL_CALL java_sql_PreparedStatement::setFloat( sal_Int32 parameterIndex, fl checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(IF)V"; - static const char * cMethodName = "setFloat"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID, parameterIndex,x); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + callVoidMethod("setFloat", "(IF)V", mID, parameterIndex, x); } // ------------------------------------------------------------------------- @@ -433,21 +269,9 @@ void SAL_CALL java_sql_PreparedStatement::setInt( sal_Int32 parameterIndex, sal_ checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(II)V"; - static const char * cMethodName = "setInt"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID, parameterIndex,x); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + callVoidMethod("setInt", "(II)V", mID, parameterIndex, x); } // ------------------------------------------------------------------------- @@ -458,21 +282,9 @@ void SAL_CALL java_sql_PreparedStatement::setLong( sal_Int32 parameterIndex, sal checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(IJ)V"; - static const char * cMethodName = "setLong"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID, parameterIndex,x); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + callVoidMethod("setLong", "(IJ)V", mID, parameterIndex, x); } // ------------------------------------------------------------------------- @@ -483,21 +295,9 @@ void SAL_CALL java_sql_PreparedStatement::setNull( sal_Int32 parameterIndex, sal checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(II)V"; - static const char * cMethodName = "setNull"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID, parameterIndex,sqlType); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + callVoidMethod("setNull", "(II)V", mID, parameterIndex, sqlType); } // ------------------------------------------------------------------------- @@ -532,17 +332,16 @@ void SAL_CALL java_sql_PreparedStatement::setObjectWithInfo( sal_Int32 parameter checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ + { createStatement(t.pEnv); // temporaere Variable initialisieren static const char * cSignature = "(ILjava/lang/Object;II)V"; static const char * cMethodName = "setObject"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + { jobject obj = NULL; double nTemp = 0.0; switch(targetSqlType) @@ -592,22 +391,9 @@ void SAL_CALL java_sql_PreparedStatement::setObjectNull( sal_Int32 parameterInde checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - - // temporaere Variable initialisieren - static const char * cSignature = "(ILjava/lang/Object;)V"; - static const char * cMethodName = "setObject"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID, parameterIndex,0); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + callVoidMethod("setObject", "(ILjava/lang/Object;)V", mID, parameterIndex, NULL); } // ------------------------------------------------------------------------- @@ -631,21 +417,9 @@ void SAL_CALL java_sql_PreparedStatement::setShort( sal_Int32 parameterIndex, sa checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "(IS)V"; - static const char * cMethodName = "setShort"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID, parameterIndex,x); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + callVoidMethod("setShort", "(IS)V", mID, parameterIndex, x); } // ------------------------------------------------------------------------- @@ -656,24 +430,20 @@ void SAL_CALL java_sql_PreparedStatement::setBytes( sal_Int32 parameterIndex, co checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ + { createStatement(t.pEnv); // temporaere Variable initialisieren static const char * cSignature = "(I[B)V"; static const char * cMethodName = "setBytes"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jbyteArray pByteArray = t.pEnv->NewByteArray(x.getLength()); - t.pEnv->SetByteArrayRegion(pByteArray,0,x.getLength(),(jbyte*)x.getConstArray()); - t.pEnv->CallVoidMethod( object, mID, parameterIndex,pByteArray); - t.pEnv->DeleteLocalRef(pByteArray); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + jbyteArray pByteArray = t.pEnv->NewByteArray(x.getLength()); + t.pEnv->SetByteArrayRegion(pByteArray,0,x.getLength(),(jbyte*)x.getConstArray()); + t.pEnv->CallVoidMethod( object, mID, parameterIndex,pByteArray); + t.pEnv->DeleteLocalRef(pByteArray); + ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); } //t.pEnv } // ------------------------------------------------------------------------- @@ -685,48 +455,43 @@ void SAL_CALL java_sql_PreparedStatement::setCharacterStream( sal_Int32 paramete checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ + { createStatement(t.pEnv); // temporaere Variable initialisieren static const char * cSignature = "(ILjava/io/InputStream;I)V"; static const char * cMethodName = "setCharacterStream"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - Sequence< sal_Int8 > aSeq; - if ( x.is() ) - x->readBytes( aSeq, length ); - sal_Int32 actualLength = aSeq.getLength(); - - jvalue args2[3]; - jbyteArray pByteArray = t.pEnv->NewByteArray( actualLength ); - t.pEnv->SetByteArrayRegion(pByteArray,0,actualLength,(jbyte*)aSeq.getConstArray()); - args2[0].l = pByteArray; - args2[1].i = 0; - args2[2].i = actualLength; - // temporaere Variable initialisieren - const char * cSignatureStream = "([BII)V"; - // Java-Call absetzen - jclass aClass = t.pEnv->FindClass("java/io/CharArrayInputStream"); - static jmethodID mID2 = NULL; - if ( !mID2 ) - mID2 = t.pEnv->GetMethodID( aClass, "", cSignatureStream ); - jobject tempObj = NULL; - if(mID2) - tempObj = t.pEnv->NewObjectA( aClass, mID2, args2 ); - - t.pEnv->CallVoidMethod( object, mID, parameterIndex,tempObj,actualLength); - // und aufraeumen - t.pEnv->DeleteLocalRef(pByteArray); - t.pEnv->DeleteLocalRef(tempObj); - t.pEnv->DeleteLocalRef(aClass); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + Sequence< sal_Int8 > aSeq; + if ( x.is() ) + x->readBytes( aSeq, length ); + sal_Int32 actualLength = aSeq.getLength(); + + jvalue args2[3]; + jbyteArray pByteArray = t.pEnv->NewByteArray( actualLength ); + t.pEnv->SetByteArrayRegion(pByteArray,0,actualLength,(jbyte*)aSeq.getConstArray()); + args2[0].l = pByteArray; + args2[1].i = 0; + args2[2].i = actualLength; + // temporaere Variable initialisieren + const char * cSignatureStream = "([BII)V"; + // Java-Call absetzen + jclass aClass = t.pEnv->FindClass("java/io/CharArrayInputStream"); + static jmethodID mID2 = NULL; + if ( !mID2 ) + mID2 = t.pEnv->GetMethodID( aClass, "", cSignatureStream ); + jobject tempObj = NULL; + if(mID2) + tempObj = t.pEnv->NewObjectA( aClass, mID2, args2 ); + + t.pEnv->CallVoidMethod( object, mID, parameterIndex,tempObj,actualLength); + // und aufraeumen + t.pEnv->DeleteLocalRef(pByteArray); + t.pEnv->DeleteLocalRef(tempObj); + t.pEnv->DeleteLocalRef(aClass); + ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); } //t.pEnv } // ------------------------------------------------------------------------- @@ -738,16 +503,14 @@ void SAL_CALL java_sql_PreparedStatement::setBinaryStream( sal_Int32 parameterIn checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ + { createStatement(t.pEnv); // temporaere Variable initialisieren static const char * cSignature = "(ILjava/io/InputStream;I)V"; static const char * cMethodName = "setBinaryStream"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); { Sequence< sal_Int8 > aSeq; if ( x.is() ) @@ -789,20 +552,11 @@ void SAL_CALL java_sql_PreparedStatement::clearParameters( ) throw(::com::sun:: checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; - if( t.pEnv ){ + { createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "clearParameters"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID + static jmethodID mID(NULL); + callVoidMethod("clearParameters",mID); } //t.pEnv } // ------------------------------------------------------------------------- @@ -811,20 +565,10 @@ void SAL_CALL java_sql_PreparedStatement::clearBatch( ) throw(::com::sun::star: ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ + { createStatement(t.pEnv); - - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "clearBatch"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID + static jmethodID mID(NULL); + callVoidMethod("clearBatch",mID); } //t.pEnv } // ------------------------------------------------------------------------- @@ -834,19 +578,10 @@ void SAL_CALL java_sql_PreparedStatement::addBatch( ) throw(::com::sun::star::sd ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ + { createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "addBatch"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID + static jmethodID mID(NULL); + callVoidMethod("addBatch",mID); } //t.pEnv } // ------------------------------------------------------------------------- @@ -857,27 +592,16 @@ void SAL_CALL java_sql_PreparedStatement::addBatch( ) throw(::com::sun::star::sd checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); ::com::sun::star::uno::Sequence< sal_Int32 > aSeq; SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()[I"; - static const char * cMethodName = "executeBatch"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jintArray out = (jintArray)t.pEnv->CallObjectMethod( object, mID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - if(out) - { - jboolean p = sal_False; - aSeq.realloc(t.pEnv->GetArrayLength(out)); - memcpy(aSeq.getArray(),t.pEnv->GetIntArrayElements(out,&p),aSeq.getLength()); - t.pEnv->DeleteLocalRef(out); - } - } //mID - } //t.pEnv + createStatement(t.pEnv); + static jmethodID mID(NULL); + jintArray out = (jintArray)callObjectMethod(t.pEnv,"executeBatch","()[I", mID); + if(out) + { + jboolean p = sal_False; + aSeq.realloc(t.pEnv->GetArrayLength(out)); + memcpy(aSeq.getArray(),t.pEnv->GetIntArrayElements(out,&p),aSeq.getLength()); + t.pEnv->DeleteLocalRef(out); + } return aSeq; } // ------------------------------------------------------------------------- @@ -885,28 +609,14 @@ void SAL_CALL java_sql_PreparedStatement::addBatch( ) throw(::com::sun::star::sd { ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(java_sql_Statement_BASE::rBHelper.bDisposed); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - createStatement(t.pEnv); - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/sql/ResultSetMetaData;"; - static const char * cMethodName = "getMetaData"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + createStatement(t.pEnv); + static jmethodID mID(NULL); + jobject out = callObjectMethod(t.pEnv,"getMetaData","()Ljava/sql/ResultSetMetaData;", mID); return out==0 ? 0 : new java_sql_ResultSetMetaData( t.pEnv, out, m_aLogger,*m_pConnection ); } // ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- void SAL_CALL java_sql_PreparedStatement::acquire() throw() { OStatement_BASE2::acquire(); @@ -932,7 +642,7 @@ void java_sql_PreparedStatement::createStatement(JNIEnv* _pEnv) args[0].l = convertwchar_tToJavaString(_pEnv,m_sSqlStatement); // Java-Call absetzen jobject out = NULL; - static jmethodID mID = NULL; + static jmethodID mID(NULL); if ( !mID ) mID = _pEnv->GetMethodID( m_pConnection->getMyClass(), cMethodName, cSignature ); if( mID ) diff --git a/connectivity/source/drivers/jdbc/Reader.cxx b/connectivity/source/drivers/jdbc/Reader.cxx index 28b578365f..73e77a658b 100644 --- a/connectivity/source/drivers/jdbc/Reader.cxx +++ b/connectivity/source/drivers/jdbc/Reader.cxx @@ -51,28 +51,14 @@ java_io_Reader::~java_io_Reader() SDBThreadAttach::releaseRef(); } -jclass java_io_Reader::getMyClass() +jclass java_io_Reader::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; - if( !t.pEnv ) return (jclass)NULL; - jclass tempClass = t.pEnv->FindClass( "java/io/Reader" ); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/io/Reader"); return theClass; } -void java_io_Reader::saveClassRef( jclass pClass ) -{ - if( pClass==NULL ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} - sal_Int32 SAL_CALL java_io_Reader::readSomeBytes( ::com::sun::star::uno::Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead ) throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException) { return readBytes(aData,nMaxBytesToRead); @@ -80,62 +66,31 @@ sal_Int32 SAL_CALL java_io_Reader::readSomeBytes( ::com::sun::star::uno::Sequenc void SAL_CALL java_io_Reader::skipBytes( sal_Int32 nBytesToSkip ) throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException) { - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - static const char * cSignature = "(I)I"; - static const char * cMethodName = "skip"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - out = t.pEnv->CallIntMethod( object, mID,nBytesToSkip); - ThrowSQLException(t.pEnv,*this); - } - } //t.pEnv + static jmethodID mID(NULL); + callIntMethodWithIntArg("skip",mID,nBytesToSkip); } sal_Int32 SAL_CALL java_io_Reader::available( ) throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException) { jboolean out(sal_False); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { static const char * cSignature = "()Z"; static const char * cMethodName = "available"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - out = t.pEnv->CallBooleanMethod( object, mID); - ThrowSQLException(t.pEnv,*this); - } + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + out = t.pEnv->CallBooleanMethod( object, mID); + ThrowSQLException(t.pEnv,*this); } //t.pEnv return out; } void SAL_CALL java_io_Reader::closeInput( ) throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException) { - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - static const char * cSignature = "()V"; - static const char * cMethodName = "close"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - t.pEnv->CallVoidMethod( object, mID); - ThrowSQLException(t.pEnv,*this); - } - } //t.pEnv + static jmethodID mID(NULL); + callVoidMethod("close",mID); } // ----------------------------------------------------- sal_Int32 SAL_CALL java_io_Reader::readBytes( ::com::sun::star::uno::Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead ) throw(::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException) @@ -143,28 +98,24 @@ sal_Int32 SAL_CALL java_io_Reader::readBytes( ::com::sun::star::uno::Sequence< s OSL_ENSURE(aData.getLength() < nBytesToRead," Sequence is smaller than BytesToRead"); jint out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + { jcharArray pCharArray = t.pEnv->NewCharArray(nBytesToRead); static const char * cSignature = "([CII)I"; static const char * cMethodName = "read"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + out = t.pEnv->CallIntMethod( object, mID, pCharArray, 0, nBytesToRead ); + if ( !out ) + ThrowSQLException(t.pEnv,*this); + if(out > 0) { - out = t.pEnv->CallIntMethod( object, mID, pCharArray, 0, nBytesToRead ); - if ( !out ) - ThrowSQLException(t.pEnv,*this); - if(out > 0) - { - jboolean p = sal_False; - if(aData.getLength() < out) - aData.realloc(out-aData.getLength()); + jboolean p = sal_False; + if(aData.getLength() < out) + aData.realloc(out-aData.getLength()); - memcpy(aData.getArray(),t.pEnv->GetCharArrayElements(pCharArray,&p),out); - } + memcpy(aData.getArray(),t.pEnv->GetCharArrayElements(pCharArray,&p),out); } t.pEnv->DeleteLocalRef((jcharArray)pCharArray); } //t.pEnv diff --git a/connectivity/source/drivers/jdbc/Ref.cxx b/connectivity/source/drivers/jdbc/Ref.cxx index b868130c46..18c8e3a434 100644 --- a/connectivity/source/drivers/jdbc/Ref.cxx +++ b/connectivity/source/drivers/jdbc/Ref.cxx @@ -48,48 +48,17 @@ java_sql_Ref::~java_sql_Ref() SDBThreadAttach::releaseRef(); } -jclass java_sql_Ref::getMyClass() +jclass java_sql_Ref::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; - if( !t.pEnv ) return (jclass)NULL; - jclass tempClass = t.pEnv->FindClass( "java/sql/Ref" ); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/sql/Ref"); return theClass; } -void java_sql_Ref::saveClassRef( jclass pClass ) -{ - if( pClass==NULL ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} - ::rtl::OUString SAL_CALL java_sql_Ref::getBaseTypeName( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - ::rtl::OUString aStr; - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/lang/String;"; - static const char * cMethodName = "getBaseTypeName"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID); - ThrowSQLException(t.pEnv,*this); - aStr = JavaString2String(t.pEnv,out); - // und aufraeumen - } //mID - } //t.pEnv - // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! - return aStr; + static jmethodID mID(NULL); + return callStringMethod("getBaseTypeName",mID); } diff --git a/connectivity/source/drivers/jdbc/ResultSet.cxx b/connectivity/source/drivers/jdbc/ResultSet.cxx index 73dcd67906..702972bd80 100644 --- a/connectivity/source/drivers/jdbc/ResultSet.cxx +++ b/connectivity/source/drivers/jdbc/ResultSet.cxx @@ -86,10 +86,10 @@ java_sql_ResultSet::java_sql_ResultSet( JNIEnv * pEnv, jobject myObj, const java osl_incrementInterlockedCount(&m_refCount); if ( pStmt ) m_xStatement = *pStmt; + osl_decrementInterlockedCount(&m_refCount); } // ----------------------------------------------------------------------------- - java_sql_ResultSet::~java_sql_ResultSet() { if ( !java_sql_ResultSet_BASE::rBHelper.bDisposed && !java_sql_ResultSet_BASE::rBHelper.bInDispose ) @@ -100,29 +100,15 @@ java_sql_ResultSet::~java_sql_ResultSet() } } -jclass java_sql_ResultSet::getMyClass() +jclass java_sql_ResultSet::getMyClass() const { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getMyClass" ); // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( !t.pEnv ) return (jclass)0; - jclass tempClass = t.pEnv->FindClass("java/sql/ResultSet"); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/sql/ResultSet"); return theClass; } -void java_sql_ResultSet::saveClassRef( jclass pClass ) -{ - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::saveClassRef" ); - if( pClass==0 ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} // ------------------------------------------------------------------------- void java_sql_ResultSet::disposing(void) { @@ -134,22 +120,10 @@ void java_sql_ResultSet::disposing(void) if( object ) { SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "close"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - clearObject(*t.pEnv); - } - } //t.pEnv + static jmethodID mID(NULL); + callVoidMethod("close",mID); + clearObject(*t.pEnv); + } SDBThreadAttach::releaseRef(); } @@ -175,52 +149,17 @@ void java_sql_ResultSet::disposing(void) sal_Int32 SAL_CALL java_sql_ResultSet::findColumn( const ::rtl::OUString& columnName ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::findColumn" ); - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - - // temporaere Variable initialisieren - static const char * cSignature = "(Ljava/lang/String;)I"; - static const char * cMethodName = "findColumn"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - // Parameter konvertieren - jstring str = convertwchar_tToJavaString(t.pEnv,columnName); - out = t.pEnv->CallIntMethod( object, mID, str ); - // und aufraeumen - t.pEnv->DeleteLocalRef(str); - - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return (sal_Int32)out; + static jmethodID mID(NULL); + return callIntMethodWithStringArg("findColumn",mID,columnName); } // ------------------------------------------------------------------------- - - Reference< ::com::sun::star::io::XInputStream > SAL_CALL java_sql_ResultSet::getBinaryStream( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getBinaryStream" ); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/io/InputStream;"; - static const char * cMethodName = "getBinaryStream"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + static jmethodID mID(NULL); + jobject out = callObjectMethodWithIntArg(t.pEnv,"getBinaryStream","(I)Ljava/io/InputStream;", mID, columnIndex); + // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out==0 ? 0 : new java_io_InputStream( t.pEnv, out ); } @@ -228,23 +167,10 @@ Reference< ::com::sun::star::io::XInputStream > SAL_CALL java_sql_ResultSet::get Reference< ::com::sun::star::io::XInputStream > SAL_CALL java_sql_ResultSet::getCharacterStream( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getCharacterStream" ); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/io/Reader;"; - static const char * cMethodName = "getCharacterStream"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + static jmethodID mID(NULL); + jobject out = callObjectMethodWithIntArg(t.pEnv,"getCharacterStream","(I)Ljava/io/Reader;", mID, columnIndex); + // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out==0 ? 0 : new java_io_Reader( t.pEnv, out ); } @@ -253,77 +179,34 @@ Reference< ::com::sun::star::io::XInputStream > SAL_CALL java_sql_ResultSet::get sal_Bool SAL_CALL java_sql_ResultSet::getBoolean( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getBoolean" ); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(I)Z"; - static const char * cMethodName = "getBoolean"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID, columnIndex ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethodWithIntArg( "getBoolean", mID,columnIndex ); } // ------------------------------------------------------------------------- sal_Int8 SAL_CALL java_sql_ResultSet::getByte( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getByte" ); - jbyte out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(I)B"; - static const char * cMethodName = "getByte"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallByteMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + jbyte (JNIEnv::*pCallMethod)( jobject obj, jmethodID methodID, ... ) = &JNIEnv::CallByteMethod; + return callMethodWithIntArg(pCallMethod,"getByte","(I)B",mID,columnIndex); } // ------------------------------------------------------------------------- Sequence< sal_Int8 > SAL_CALL java_sql_ResultSet::getBytes( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getBytes" ); - Sequence< sal_Int8 > aSeq; + Sequence< sal_Int8 > aSeq; SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) + static jmethodID mID(NULL); + jbyteArray out = (jbyteArray)callObjectMethodWithIntArg(t.pEnv,"getBytes","(I)[B", mID, columnIndex); + if (out) { - static const char * cSignature = "(I)[B"; - static const char * cMethodName = "getBytes"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jbyteArray out = (jbyteArray)t.pEnv->CallObjectMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - if (out) - { - jboolean p = sal_False; - aSeq.realloc(t.pEnv->GetArrayLength(out)); - memcpy(aSeq.getArray(),t.pEnv->GetByteArrayElements(out,&p),aSeq.getLength()); - t.pEnv->DeleteLocalRef(out); - } - // und aufraeumen - } //mID - } //t.pEnv + jboolean p = sal_False; + aSeq.realloc(t.pEnv->GetArrayLength(out)); + memcpy(aSeq.getArray(),t.pEnv->GetByteArrayElements(out,&p),aSeq.getLength()); + t.pEnv->DeleteLocalRef(out); + } return aSeq; } // ------------------------------------------------------------------------- @@ -331,23 +214,9 @@ Sequence< sal_Int8 > SAL_CALL java_sql_ResultSet::getBytes( sal_Int32 columnInde ::com::sun::star::util::Date SAL_CALL java_sql_ResultSet::getDate( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getDate" ); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/sql/Date;"; - static const char * cMethodName = "getDate"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, columnIndex ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + static jmethodID mID(NULL); + jobject out = callObjectMethodWithIntArg(t.pEnv,"getDate","(I)Ljava/sql/Date;", mID, columnIndex); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out ? static_cast (java_sql_Date( t.pEnv, out )) : ::com::sun::star::util::Date(); } @@ -356,141 +225,52 @@ Sequence< sal_Int8 > SAL_CALL java_sql_ResultSet::getBytes( sal_Int32 columnInde double SAL_CALL java_sql_ResultSet::getDouble( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getDouble" ); - jdouble out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(I)D"; - static const char * cMethodName = "getDouble"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallDoubleMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + jdouble (JNIEnv::*pCallMethod)( jobject obj, jmethodID methodID, ... ) = &JNIEnv::CallDoubleMethod; + return callMethodWithIntArg(pCallMethod,"getDouble","(I)D",mID,columnIndex); } // ------------------------------------------------------------------------- float SAL_CALL java_sql_ResultSet::getFloat( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getFloat" ); - jfloat out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(I)F"; - static const char * cMethodName = "getFloat"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallFloatMethod( object, mID, columnIndex ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + jfloat (JNIEnv::*pCallMethod)( jobject obj, jmethodID methodID, ... ) = &JNIEnv::CallFloatMethod; + return callMethodWithIntArg(pCallMethod,"getFloat","(I)F",mID,columnIndex); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_ResultSet::getInt( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getInt" ); - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(I)I"; - static const char * cMethodName = "getInt"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID, columnIndex ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return (sal_Int32)out; + static jmethodID mID(NULL); + return callIntMethodWithIntArg("getInt",mID,columnIndex); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_ResultSet::getRow( ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getRow" ); - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getRow"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return (sal_Int32)out; + static jmethodID mID(NULL); + return callIntMethod("getRow",mID); } // ------------------------------------------------------------------------- sal_Int64 SAL_CALL java_sql_ResultSet::getLong( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getLong" ); - jlong out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)J"; - static const char * cMethodName = "getLong"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallLongMethod( object, mID, columnIndex ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + jlong (JNIEnv::*pCallMethod)( jobject obj, jmethodID methodID, ... ) = &JNIEnv::CallLongMethod; + return callMethodWithIntArg(pCallMethod,"getLong","(I)L",mID,columnIndex); } // ------------------------------------------------------------------------- ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > SAL_CALL java_sql_ResultSet::getMetaData( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getMetaData" ); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - - { - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/sql/ResultSetMetaData;"; - static const char * cMethodName = "getMetaData"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + static jmethodID mID(NULL); + jobject out = callObjectMethod(t.pEnv,"getMetaData","()Ljava/sql/ResultSetMetaData;", mID); return out==0 ? 0 : new java_sql_ResultSetMetaData( t.pEnv, out, m_aLogger,*m_pConnection ); } @@ -498,22 +278,10 @@ sal_Int64 SAL_CALL java_sql_ResultSet::getLong( sal_Int32 columnIndex ) throw(SQ Reference< XArray > SAL_CALL java_sql_ResultSet::getArray( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getArray" ); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/sql/Array;"; - static const char * cMethodName = "getArray"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + static jmethodID mID(NULL); + jobject out = callObjectMethodWithIntArg(t.pEnv,"getArray","(I)Ljava/sql/Array;", mID, columnIndex); + // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out==0 ? 0 : new java_sql_Array( t.pEnv, out ); } @@ -522,22 +290,9 @@ Reference< XArray > SAL_CALL java_sql_ResultSet::getArray( sal_Int32 columnIndex Reference< XClob > SAL_CALL java_sql_ResultSet::getClob( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getClob" ); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/sql/Clob;"; - static const char * cMethodName = "getClob"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + static jmethodID mID(NULL); + jobject out = callObjectMethodWithIntArg(t.pEnv,"getClob","(I)Ljava/sql/Clob;", mID, columnIndex); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out==0 ? 0 : new java_sql_Clob( t.pEnv, out ); } @@ -545,22 +300,9 @@ Reference< XClob > SAL_CALL java_sql_ResultSet::getClob( sal_Int32 columnIndex ) Reference< XBlob > SAL_CALL java_sql_ResultSet::getBlob( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getBlob" ); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/sql/Blob;"; - static const char * cMethodName = "getBlob"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + static jmethodID mID(NULL); + jobject out = callObjectMethodWithIntArg(t.pEnv,"getBlob","(I)Ljava/sql/Blob;", mID, columnIndex); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out==0 ? 0 : new java_sql_Blob( t.pEnv, out ); } @@ -569,22 +311,10 @@ Reference< XBlob > SAL_CALL java_sql_ResultSet::getBlob( sal_Int32 columnIndex ) Reference< XRef > SAL_CALL java_sql_ResultSet::getRef( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getRef" ); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/sql/Ref;"; - static const char * cMethodName = "getRef"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + static jmethodID mID(NULL); + jobject out = callObjectMethodWithIntArg(t.pEnv,"getRef","(I)Ljava/sql/Ref;", mID, columnIndex); + // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out==0 ? 0 : new java_sql_Ref( t.pEnv, out ); } @@ -595,24 +325,27 @@ Any SAL_CALL java_sql_ResultSet::getObject( sal_Int32 columnIndex, const Referen RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getObject" ); jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ + { jvalue args[2]; // Parameter konvertieren args[0].i = (sal_Int32)columnIndex; args[1].l = convertTypeMapToJavaMap(t.pEnv,typeMap); // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/lang/Object;"; - static const char * cMethodName = "getObject"; // Java-Call absetzen - static jmethodID mID = NULL; + static jmethodID mID(NULL); if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ + { + static const char * cSignature = "(I)Ljava/lang/Object;"; + static const char * cMethodName = "getObject"; + + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + } + out = t.pEnv->CallObjectMethodA( object, mID, args); t.pEnv->DeleteLocalRef((jstring)args[1].l); ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); // und aufraeumen - } //mID + } //t.pEnv // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out==0 ? Any() : Any();//new java_lang_Object( t.pEnv, out ); @@ -622,23 +355,9 @@ Any SAL_CALL java_sql_ResultSet::getObject( sal_Int32 columnIndex, const Referen sal_Int16 SAL_CALL java_sql_ResultSet::getShort( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getShort" ); - jshort out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)S"; - static const char * cMethodName = "getShort"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallShortMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return (sal_Int16)out; + static jmethodID mID(NULL); + jshort (JNIEnv::*pCallMethod)( jobject obj, jmethodID methodID, ... ) = &JNIEnv::CallShortMethod; + return callMethodWithIntArg(pCallMethod,"getShort","(I)S",mID,columnIndex); } // ------------------------------------------------------------------------- @@ -646,25 +365,8 @@ sal_Int16 SAL_CALL java_sql_ResultSet::getShort( sal_Int32 columnIndex ) throw(S ::rtl::OUString SAL_CALL java_sql_ResultSet::getString( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getString" ); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - ::rtl::OUString aStr; - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/lang/String;"; - static const char * cMethodName = "getString"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID, columnIndex ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - aStr = JavaString2String(t.pEnv,out); - // und aufraeumen - } //mID - } //t.pEnv - // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! - return aStr; + static jmethodID mID(NULL); + return callStringMethodWithIntArg("getString",mID,columnIndex); } // ------------------------------------------------------------------------- @@ -672,23 +374,9 @@ sal_Int16 SAL_CALL java_sql_ResultSet::getShort( sal_Int32 columnIndex ) throw(S ::com::sun::star::util::Time SAL_CALL java_sql_ResultSet::getTime( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getTime" ); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/sql/Time;"; - static const char * cMethodName = "getTime"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + static jmethodID mID(NULL); + jobject out = callObjectMethodWithIntArg(t.pEnv,"getTime","(I)Ljava/sql/Time;", mID, columnIndex); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out ? static_cast (java_sql_Time( t.pEnv, out )) : ::com::sun::star::util::Time(); } @@ -698,22 +386,9 @@ sal_Int16 SAL_CALL java_sql_ResultSet::getShort( sal_Int32 columnIndex ) throw(S ::com::sun::star::util::DateTime SAL_CALL java_sql_ResultSet::getTimestamp( sal_Int32 columnIndex ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getTimestamp" ); - jobject out(0); SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/sql/Timestamp;"; - static const char * cMethodName = "getTimestamp"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID, columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv + static jmethodID mID(NULL); + jobject out = callObjectMethodWithIntArg(t.pEnv,"getTimestamp","(I)Ljava/sql/Timestamp;", mID, columnIndex); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! return out ? static_cast (java_sql_Timestamp( t.pEnv, out )) : ::com::sun::star::util::DateTime(); } @@ -722,112 +397,36 @@ sal_Int16 SAL_CALL java_sql_ResultSet::getShort( sal_Int32 columnIndex ) throw(S sal_Bool SAL_CALL java_sql_ResultSet::isAfterLast( ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::isAfterLast" ); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - - { - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "isAfterLast"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethod( "isAfterLast", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSet::isFirst( ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::isFirst" ); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - - { - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "isFirst"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethod( "isFirst", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSet::isLast( ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::isLast" ); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - - { - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "isLast"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethod( "isLast", mID ); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::beforeFirst( ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::beforeFirst" ); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - - { - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "isBeforeFirst"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv + static jmethodID mID(NULL); + callVoidMethod("beforeFirst",mID); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::afterLast( ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::afterLast" ); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - - { - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "afterLast"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv + static jmethodID mID(NULL); + callVoidMethod("afterLast",mID); } // ------------------------------------------------------------------------- @@ -841,113 +440,37 @@ void SAL_CALL java_sql_ResultSet::close( ) throw(::com::sun::star::sdbc::SQLExc sal_Bool SAL_CALL java_sql_ResultSet::first( ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::first" ); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "first"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethod( "first", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSet::last( ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::last" ); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "last"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethod( "last", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSet::absolute( sal_Int32 row ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::absolute" ); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(I)Z"; - static const char * cMethodName = "absolute"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID,row); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethodWithIntArg( "absolute", mID,row ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSet::relative( sal_Int32 row ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::relative" ); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(I)Z"; - static const char * cMethodName = "relative"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID,row); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethodWithIntArg( "relative", mID,row ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSet::previous( ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::previous" ); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - - { - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "previous"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethod( "previous", mID ); } // ------------------------------------------------------------------------- Reference< XInterface > SAL_CALL java_sql_ResultSet::getStatement( ) throw(SQLException, RuntimeException) @@ -960,200 +483,70 @@ Reference< XInterface > SAL_CALL java_sql_ResultSet::getStatement( ) throw(SQLE sal_Bool SAL_CALL java_sql_ResultSet::rowDeleted( ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::rowDeleted" ); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "rowDeleted"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethod( "rowDeleted", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSet::rowInserted( ) throw(SQLException, RuntimeException) { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::rowInserted" ); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "rowInserted"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::rowInserted" ); + static jmethodID mID(NULL); + return callBooleanMethod( "rowInserted", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSet::rowUpdated( ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::rowUpdated" ); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "rowUpdated"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethod( "rowUpdated", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSet::isBeforeFirst( ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::isBeforeFirst" ); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "isBeforeFirst"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethod( "isBeforeFirst", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSet::next( ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::next" ); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - - { - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "next"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethod( "next", mID ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSet::wasNull( ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::wasNull" ); - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()Z"; - static const char * cMethodName = "wasNull"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethod( "wasNull", mID ); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::cancel( ) throw(::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::cancel" ); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "cancel"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv + static jmethodID mID(NULL); + callVoidMethod("cancel",mID); } // ------------------------------------------------------------------------- // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::clearWarnings( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::clearWarnings" ); - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "clearWarnings"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + static jmethodID mID(NULL); + callVoidMethod("clearWarnings",mID); } // ------------------------------------------------------------------------- ::com::sun::star::uno::Any SAL_CALL java_sql_ResultSet::getWarnings( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getWarnings" ); - jobject out(NULL); SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/sql/SQLWarning;"; - static const char * cMethodName = "getWarnings"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv + static jmethodID mID(NULL); + jobject out = callObjectMethod(t.pEnv,"getWarnings","()Ljava/sql/SQLWarning;", mID); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! if( out ) { @@ -1170,247 +563,91 @@ void SAL_CALL java_sql_ResultSet::clearWarnings( ) throw(::com::sun::star::sdbc void SAL_CALL java_sql_ResultSet::insertRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::insertRow" ); - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "insertRow"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + static jmethodID mID(NULL); + callVoidMethod("insertRow",mID); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::updateRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::updateRow" ); - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "updateRow"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + static jmethodID mID(NULL); + callVoidMethod("updateRow",mID); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::deleteRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::deleteRow" ); - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "deleteRow"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + static jmethodID mID(NULL); + callVoidMethod("deleteRow",mID); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::cancelRowUpdates( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::cancelRowUpdates" ); - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "cancelRowUpdates"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + static jmethodID mID(NULL); + callVoidMethod("cancelRowUpdates",mID); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::moveToInsertRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::moveToInsertRow" ); - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "moveToInsertRow"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + static jmethodID mID(NULL); + callVoidMethod("moveToInsertRow",mID); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::moveToCurrentRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::moveToCurrentRow" ); - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "moveToCurrentRow"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + static jmethodID mID(NULL); + callVoidMethod("moveToCurrentRow",mID); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::updateNull( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::updateNull" ); - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(I)V"; - static const char * cMethodName = "updateNull"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID,columnIndex); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + static jmethodID mID(NULL); + callVoidMethodWithIntArg("updateNull",mID,columnIndex); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::updateBoolean( sal_Int32 columnIndex, sal_Bool x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::updateBoolean" ); - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(IZ)V"; - static const char * cMethodName = "updateBoolean"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID,columnIndex,x); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + static jmethodID mID(NULL); + callVoidMethod("updateBoolean", "(IZ)V", mID, columnIndex, x); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::updateByte( sal_Int32 columnIndex, sal_Int8 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::updateByte" ); - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(IB)V"; - static const char * cMethodName = "updateByte"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID,columnIndex,x); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + static jmethodID mID(NULL); + callVoidMethod("updateByte", "(IB)V", mID, columnIndex, x); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::updateShort( sal_Int32 columnIndex, sal_Int16 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::updateShort" ); - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(IS)V"; - static const char * cMethodName = "updateShort"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID,columnIndex,x); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + static jmethodID mID(NULL); + callVoidMethod("updateShort", "(IS)V", mID, columnIndex, x); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::updateInt( sal_Int32 columnIndex, sal_Int32 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::updateInt" ); - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(II)V"; - static const char * cMethodName = "updateInt"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID,columnIndex,x); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + static jmethodID mID(NULL); + callVoidMethod("updateInt", "(II)V", mID, columnIndex, x); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::updateLong( sal_Int32 columnIndex, sal_Int64 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::updateLong" ); - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(IJ)V"; - static const char * cMethodName = "updateLong"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID,columnIndex,x); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + static jmethodID mID(NULL); + callVoidMethod("updateLong", "(IJ)V", mID, columnIndex, x); } // ------------------------------------------------------------------------- @@ -1418,42 +655,16 @@ void SAL_CALL java_sql_ResultSet::updateLong( sal_Int32 columnIndex, sal_Int64 x void SAL_CALL java_sql_ResultSet::updateFloat( sal_Int32 columnIndex, float x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::updateFloat" ); - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(IF)V"; - static const char * cMethodName = "updateFloat"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID,columnIndex,x); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + static jmethodID mID(NULL); + callVoidMethod("updateFloat", "(IF)V", mID, columnIndex, x); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::updateDouble( sal_Int32 columnIndex, double x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::updateDouble" ); - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(ID)V"; - static const char * cMethodName = "updateDouble"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID,columnIndex,x); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + static jmethodID mID(NULL); + callVoidMethod("updateDouble", "(ID)V", mID, columnIndex, x); } // ------------------------------------------------------------------------- @@ -1461,17 +672,20 @@ void SAL_CALL java_sql_ResultSet::updateString( sal_Int32 columnIndex, const ::r { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::updateString" ); SDBThreadAttach t; - if( t.pEnv ) + { // temporaere Variable initialisieren - static const char * cSignature = "(ILjava/lang/String;)V"; - static const char * cMethodName = "updateString"; // Java-Call absetzen - static jmethodID mID = NULL; + static jmethodID mID(NULL); if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) + { + static const char * cSignature = "(ILjava/lang/String;)V"; + static const char * cMethodName = "updateString"; + + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + } + { // Parameter konvertieren jstring str = convertwchar_tToJavaString(t.pEnv,x); @@ -1487,16 +701,19 @@ void SAL_CALL java_sql_ResultSet::updateBytes( sal_Int32 columnIndex, const ::co { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::updateBytes" ); SDBThreadAttach t; - if( t.pEnv ) + { // temporaere Variable initialisieren - static const char * cSignature = "(I[B)V"; - static const char * cMethodName = "updateBytes"; // Java-Call absetzen - static jmethodID mID = NULL; + static jmethodID mID(NULL); if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) + { + static const char * cSignature = "(I[B)V"; + static const char * cMethodName = "updateBytes"; + + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + } + { jbyteArray aArray = t.pEnv->NewByteArray(x.getLength()); t.pEnv->SetByteArrayRegion(aArray,0,x.getLength(),(jbyte*)x.getConstArray()); @@ -1512,79 +729,27 @@ void SAL_CALL java_sql_ResultSet::updateBytes( sal_Int32 columnIndex, const ::co void SAL_CALL java_sql_ResultSet::updateDate( sal_Int32 columnIndex, const ::com::sun::star::util::Date& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::updateDate" ); - SDBThreadAttach t; - if( t.pEnv ) - { - - // temporaere Variable initialisieren - static const char * cSignature = "(ILjava/sql/Date;)V"; - static const char * cMethodName = "updateDate"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - jvalue args[1]; - // Parameter konvertieren - java_sql_Date aD(x); - args[0].l = aD.getJavaObject(); - t.pEnv->CallVoidMethod( object, mID,columnIndex,args[0].l); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + java_sql_Date aD(x); + static jmethodID mID(NULL); + callVoidMethod("updateDate", "(ILjava/sql/Date;)V", mID, columnIndex, aD.getJavaObject()); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::updateTime( sal_Int32 columnIndex, const ::com::sun::star::util::Time& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::updateTime" ); - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(ILjava/sql/Time;)V"; - static const char * cMethodName = "updateTime"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - jvalue args[1]; - // Parameter konvertieren - java_sql_Time aD(x); - args[0].l = aD.getJavaObject(); - t.pEnv->CallVoidMethod( object, mID,columnIndex,args[0].l); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + java_sql_Time aD(x); + static jmethodID mID(NULL); + callVoidMethod("updateTime", "(ILjava/sql/Time;)V", mID, columnIndex, aD.getJavaObject()); } // ------------------------------------------------------------------------- void SAL_CALL java_sql_ResultSet::updateTimestamp( sal_Int32 columnIndex, const ::com::sun::star::util::DateTime& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::updateTimestamp" ); - SDBThreadAttach t; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "(I;Ljava/sql/Timestamp;)V"; - static const char * cMethodName = "updateTimestamp"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - jvalue args[1]; - java_sql_Timestamp aD(x); - // Parameter konvertieren - args[0].l = aD.getJavaObject(); - t.pEnv->CallVoidMethod( object, mID,columnIndex,args[0].l); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } - } + java_sql_Timestamp aD(x); + static jmethodID mID(NULL); + callVoidMethod("updateTimestamp", "(ILjava/sql/Timestamp;)V", mID, columnIndex, aD.getJavaObject()); } // ------------------------------------------------------------------------- @@ -1622,17 +787,20 @@ void SAL_CALL java_sql_ResultSet::updateNumericObject( sal_Int32 columnIndex, co try { SDBThreadAttach t; - if( t.pEnv ) + { // temporaere Variable initialisieren - static const char * cSignature = "(ILjava/lang/Object;I)V"; - static const char * cMethodName = "updateObject"; // Java-Call absetzen - static jmethodID mID = NULL; + static jmethodID mID(NULL); if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) + { + static const char * cSignature = "(ILjava/lang/Object;I)V"; + static const char * cMethodName = "updateObject"; + + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + } + { // Parameter konvertieren double nTemp = 0.0; @@ -1658,182 +826,58 @@ void SAL_CALL java_sql_ResultSet::updateNumericObject( sal_Int32 columnIndex, co sal_Int32 java_sql_ResultSet::getResultSetConcurrency() const throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getResultSetConcurrency" ); - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getConcurrency"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID); - // special case here most JDBC 1.x doesn't support this feature so we just clear the exception when they occured - isExceptionOccured(t.pEnv,sal_True); - - } //mID - } //t.pEnv - return (sal_Int32)out; + static jmethodID mID(NULL); + return callIntMethod("getConcurrency",mID,true); } -// ------------------------------------------------------------------------- //------------------------------------------------------------------------------ sal_Int32 java_sql_ResultSet::getResultSetType() const throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getResultSetType" ); - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getType"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID); - // special case here most JDBC 1.x doesn't support this feature so we just clear the exception when they occured - isExceptionOccured(t.pEnv,sal_True); - - } //mID - } //t.pEnv - return (sal_Int32)out; + static jmethodID mID(NULL); + return callIntMethod("getType",mID,true); } //------------------------------------------------------------------------------ sal_Int32 java_sql_ResultSet::getFetchDirection() const throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getFetchDirection" ); - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getFetchDirection"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID); - // special case here most JDBC 1.x doesn't support this feature so we just clear the exception when they occured - isExceptionOccured(t.pEnv,sal_True); - - } //mID - } //t.pEnv - return (sal_Int32)out; + static jmethodID mID(NULL); + return callIntMethod("getFetchDirection",mID,true); } //------------------------------------------------------------------------------ sal_Int32 java_sql_ResultSet::getFetchSize() const throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getFetchSize" ); - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getFetchSize"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID); - // special case here most JDBC 1.x doesn't support this feature so we just clear the exception when they occured - isExceptionOccured(t.pEnv,sal_True); - - } //mID - } //t.pEnv - return (sal_Int32)out; + static jmethodID mID(NULL); + return callIntMethod("getFetchSize",mID,true); } //------------------------------------------------------------------------------ ::rtl::OUString java_sql_ResultSet::getCursorName() const throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getCursorName" ); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - ::rtl::OUString aStr; - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/lang/String;"; - static const char * cMethodName = "getCursorName"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *const_cast< java_sql_ResultSet* >( this ) ); - aStr = JavaString2String(t.pEnv,out); - } - } - - return aStr; + static jmethodID mID(NULL); + return callStringMethod("getCursorName",mID); } //------------------------------------------------------------------------------ void java_sql_ResultSet::setFetchDirection(sal_Int32 _par0) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::setFetchDirection" ); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)V"; - static const char * cMethodName = "setFetchDirection"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID,_par0); - // special case here most JDBC 1.x doesn't support this feature so we just clear the exception when they occured - isExceptionOccured(t.pEnv,sal_True); - - } //mID - } //t.pEnv - + static jmethodID mID(NULL); + callVoidMethodWithIntArg("setFetchDirection",mID,_par0,true); } //------------------------------------------------------------------------------ void SAL_CALL java_sql_ResultSet::refreshRow( ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::refreshRow" ); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ) - { - // temporaere Variable initialisieren - static const char * cSignature = "()V"; - static const char * cMethodName = "refreshRow"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv + static jmethodID mID(NULL); + callVoidMethod("refreshRow",mID); } //------------------------------------------------------------------------------ void java_sql_ResultSet::setFetchSize(sal_Int32 _par0) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::setFetchSize" ); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)V"; - static const char * cMethodName = "setFetchSize"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID,_par0); - // special case here most JDBC 1.x doesn't support this feature so we just clear the exception when they occured - isExceptionOccured(t.pEnv,sal_True); - } //mID - } //t.pEnv - + static jmethodID mID(NULL); + callVoidMethodWithIntArg("setFetchSize",mID,_par0,true); } // ------------------------------------------------------------------------- ::cppu::IPropertyArrayHelper* java_sql_ResultSet::createArrayHelper( ) const @@ -1853,7 +897,7 @@ void java_sql_ResultSet::setFetchSize(sal_Int32 _par0) throw(::com::sun::star::s // ------------------------------------------------------------------------- ::cppu::IPropertyArrayHelper & java_sql_ResultSet::getInfoHelper() { - RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getInfoHelper" ); + //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSet::getInfoHelper" ); return *const_cast(this)->getArrayHelper(); } // ------------------------------------------------------------------------- diff --git a/connectivity/source/drivers/jdbc/ResultSetMetaData.cxx b/connectivity/source/drivers/jdbc/ResultSetMetaData.cxx index b5b307660c..6db88459b0 100644 --- a/connectivity/source/drivers/jdbc/ResultSetMetaData.cxx +++ b/connectivity/source/drivers/jdbc/ResultSetMetaData.cxx @@ -33,6 +33,8 @@ #include "java/sql/ResultSetMetaData.hxx" #include "java/sql/Connection.hxx" #include "java/tools.hxx" +#include + using namespace connectivity; using namespace ::com::sun::star::uno; using namespace ::com::sun::star::beans; @@ -40,6 +42,8 @@ using namespace ::com::sun::star::beans; using namespace ::com::sun::star::sdbc; using namespace ::com::sun::star::container; using namespace ::com::sun::star::lang; + +#define NULLABLE_UNDEFINED 99 //************************************************************** //************ Class: java.sql.ResultSetMetaData //************************************************************** @@ -49,7 +53,9 @@ java_sql_ResultSetMetaData::java_sql_ResultSetMetaData( JNIEnv * pEnv, jobject m :java_lang_Object( pEnv, myObj ) ,m_aLogger( _rResultSetLogger ) ,m_pConnection( &_rCon ) + ,m_nColumnCount(-1) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::java_sql_ResultSetMetaData" ); SDBThreadAttach::addRef(); } java_sql_ResultSetMetaData::~java_sql_ResultSetMetaData() @@ -57,499 +63,179 @@ java_sql_ResultSetMetaData::~java_sql_ResultSetMetaData() SDBThreadAttach::releaseRef(); } -jclass java_sql_ResultSetMetaData::getMyClass() +jclass java_sql_ResultSetMetaData::getMyClass() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::getMyClass" ); // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( !t.pEnv ) return (jclass)0; - jclass tempClass = t.pEnv->FindClass("java/sql/ResultSetMetaData"); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/sql/ResultSetMetaData"); return theClass; } // ------------------------------------------------------------------------- -void java_sql_ResultSetMetaData::saveClassRef( jclass pClass ) -{ - if( pClass==0 ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} -// ------------------------------------------------------------------------- - sal_Int32 SAL_CALL java_sql_ResultSetMetaData::getColumnDisplaySize( sal_Int32 column ) throw(SQLException, RuntimeException) { - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - - // temporaere Variable initialisieren - static const char * cSignature = "(I)I"; - static const char * cMethodName = "getColumnDisplaySize"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID,column); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return (sal_Int32)out; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::getColumnDisplaySize" ); + static jmethodID mID(NULL); + return callIntMethodWithIntArg("getColumnDisplaySize",mID,column); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_ResultSetMetaData::getColumnType( sal_Int32 column ) throw(SQLException, RuntimeException) { - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - - // temporaere Variable initialisieren - static const char * cSignature = "(I)I"; - static const char * cMethodName = "getColumnType"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID,column); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return (sal_Int32)out; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::getColumnType" ); + static jmethodID mID(NULL); + return callIntMethodWithIntArg("getColumnType",mID,column); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_ResultSetMetaData::getColumnCount( ) throw(SQLException, RuntimeException) { - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::getColumnCount" ); + if ( m_nColumnCount == -1 ) + { + static jmethodID mID(NULL); + m_nColumnCount = callIntMethod("getColumnCount",mID); + } // if ( m_nColumnCount == -1 ) + return m_nColumnCount; - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getColumnCount"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - } //mID - } //t.pEnv - return (sal_Int32)out; } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSetMetaData::isCaseSensitive( sal_Int32 column ) throw(SQLException, RuntimeException) { - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Z"; - static const char * cMethodName = "isCaseSensitive"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - out = t.pEnv->CallBooleanMethod( object, mID, column ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //t.pEnv - return out; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::isCaseSensitive" ); + static jmethodID mID(NULL); + return callBooleanMethodWithIntArg( "isCaseSensitive", mID,column ); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_ResultSetMetaData::getSchemaName( sal_Int32 column ) throw(SQLException, RuntimeException) { - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - ::rtl::OUString aStr; - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/lang/String;"; - static const char * cMethodName = "getSchemaName"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID, column ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - aStr = JavaString2String(t.pEnv,out); - } - - // und aufraeumen - } //t.pEnv - return aStr; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::getSchemaName" ); + static jmethodID mID(NULL); + return callStringMethodWithIntArg("getSchemaName",mID,column); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_ResultSetMetaData::getColumnName( sal_Int32 column ) throw(SQLException, RuntimeException) { - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - ::rtl::OUString aStr; - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/lang/String;"; - static const char * cMethodName = "getColumnName"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID, column ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - aStr = JavaString2String(t.pEnv,out); - } - - // und aufraeumen - } //t.pEnv - return aStr; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::getColumnName" ); + static jmethodID mID(NULL); + return callStringMethodWithIntArg("getColumnName",mID,column); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_ResultSetMetaData::getTableName( sal_Int32 column ) throw(SQLException, RuntimeException) { - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - ::rtl::OUString aStr; - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/lang/String;"; - static const char * cMethodName = "getTableName"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID, column ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - aStr = JavaString2String(t.pEnv,out); - } - - // und aufraeumen - } //t.pEnv - return aStr; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::getTableName" ); + static jmethodID mID(NULL); + return callStringMethodWithIntArg("getTableName",mID,column); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_ResultSetMetaData::getCatalogName( sal_Int32 column ) throw(SQLException, RuntimeException) { - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - ::rtl::OUString aStr; - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/lang/String;"; - static const char * cMethodName = "getCatalogName"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID, column ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - aStr = JavaString2String(t.pEnv,out); - } - - // und aufraeumen - } //t.pEnv - return aStr; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::getCatalogName" ); + static jmethodID mID(NULL); + return callStringMethodWithIntArg("getCatalogName",mID,column); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_ResultSetMetaData::getColumnTypeName( sal_Int32 column ) throw(SQLException, RuntimeException) { - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - ::rtl::OUString aStr; - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/lang/String;"; - static const char * cMethodName = "getColumnTypeName"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID, column ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - aStr = JavaString2String(t.pEnv,out); - } - - // und aufraeumen - } //t.pEnv - return aStr; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::getColumnTypeName" ); + static jmethodID mID(NULL); + return callStringMethodWithIntArg("getColumnTypeName",mID,column); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_ResultSetMetaData::getColumnLabel( sal_Int32 column ) throw(SQLException, RuntimeException) { - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - ::rtl::OUString aStr; - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/lang/String;"; - static const char * cMethodName = "getColumnLabel"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID, column ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - aStr = JavaString2String(t.pEnv,out); - } - - // und aufraeumen - } //t.pEnv - return aStr; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::getColumnLabel" ); + static jmethodID mID(NULL); + return callStringMethodWithIntArg("getColumnLabel",mID,column); } // ------------------------------------------------------------------------- ::rtl::OUString SAL_CALL java_sql_ResultSetMetaData::getColumnServiceName( sal_Int32 column ) throw(SQLException, RuntimeException) { - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - ::rtl::OUString aStr; - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Ljava/lang/String;"; - static const char * cMethodName = "getColumnClassName"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID, column ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - aStr = JavaString2String(t.pEnv,out); - } - - // und aufraeumen - } //t.pEnv - return aStr; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::getColumnServiceName" ); + static jmethodID mID(NULL); + return callStringMethodWithIntArg("getColumnClassName",mID,column); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSetMetaData::isCurrency( sal_Int32 column ) throw(SQLException, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::isCurrency" ); if ( m_pConnection->isIgnoreCurrencyEnabled() ) return sal_False; - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Z"; - static const char * cMethodName = "isCurrency"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - out = t.pEnv->CallBooleanMethod( object, mID, column ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //t.pEnv - return out; + static jmethodID mID(NULL); + return callBooleanMethodWithIntArg( "isCurrency", mID,column ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSetMetaData::isAutoIncrement( sal_Int32 column ) throw(SQLException, RuntimeException) { - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Z"; - static const char * cMethodName = "isAutoIncrement"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - out = t.pEnv->CallBooleanMethod( object, mID, column); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //t.pEnv - return out; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::isAutoIncrement" ); + static jmethodID mID(NULL); + return callBooleanMethodWithIntArg( "isAutoIncrement", mID,column ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSetMetaData::isSigned( sal_Int32 column ) throw(SQLException, RuntimeException) { - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Z"; - static const char * cMethodName = "isSigned"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - out = t.pEnv->CallBooleanMethod( object, mID, column); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //t.pEnv - return out; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::isSigned" ); + static jmethodID mID(NULL); + return callBooleanMethodWithIntArg( "isSigned", mID,column ); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_ResultSetMetaData::getPrecision( sal_Int32 column ) throw(SQLException, RuntimeException) { - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)I"; - static const char * cMethodName = "getPrecision"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID, column ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return (sal_Int32)out; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::getPrecision" ); + static jmethodID mID(NULL); + return callIntMethodWithIntArg("getPrecision",mID,column); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_ResultSetMetaData::getScale( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) { - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)I"; - static const char * cMethodName = "getScale"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID, column ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return (sal_Int32)out; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::getScale" ); + static jmethodID mID(NULL); + return callIntMethodWithIntArg("getScale",mID,column); } // ------------------------------------------------------------------------- sal_Int32 SAL_CALL java_sql_ResultSetMetaData::isNullable( sal_Int32 column ) throw(SQLException, RuntimeException) { - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)I"; - static const char * cMethodName = "isNullable"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID, column ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return (sal_Int32)out; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::isNullable" ); + static jmethodID mID(NULL); + return callIntMethodWithIntArg("isNullable",mID,column); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSetMetaData::isSearchable( sal_Int32 column ) throw(SQLException, RuntimeException) { - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Z"; - static const char * cMethodName = "isSearchable"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID, column ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return out; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::isSearchable" ); + static jmethodID mID(NULL); + return callBooleanMethodWithIntArg( "isSearchable", mID,column ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSetMetaData::isReadOnly( sal_Int32 column ) throw(SQLException, RuntimeException) { - jboolean out(sal_False); - SDBThreadAttach t; - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Z"; - static const char * cMethodName = "isReadOnly"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID, column ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return out; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::isReadOnly" ); + static jmethodID mID(NULL); + return callBooleanMethodWithIntArg( "isReadOnly", mID,column ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSetMetaData::isDefinitelyWritable( sal_Int32 column ) throw(SQLException, RuntimeException) { - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Z"; - static const char * cMethodName = "isDefinitelyWritable"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID, column ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return out; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::isDefinitelyWritable" ); + static jmethodID mID(NULL); + return callBooleanMethodWithIntArg( "isDefinitelyWritable", mID,column ); } // ------------------------------------------------------------------------- sal_Bool SAL_CALL java_sql_ResultSetMetaData::isWritable( sal_Int32 column ) throw(SQLException, RuntimeException) { - jboolean out(sal_False); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)Z"; - static const char * cMethodName = "isWritable"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallBooleanMethod( object, mID, column ); - ThrowLoggedSQLException( m_aLogger, t.pEnv, *this ); - // und aufraeumen - } //mID - } //t.pEnv - return out; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "jdbc", "Ocke.Janssen@sun.com", "java_sql_ResultSetMetaData::isWritable" ); + static jmethodID mID(NULL); + return callBooleanMethodWithIntArg( "isWritable", mID,column ); } // ------------------------------------------------------------------------- diff --git a/connectivity/source/drivers/jdbc/SQLException.cxx b/connectivity/source/drivers/jdbc/SQLException.cxx index ba02aefc9b..09b477b060 100644 --- a/connectivity/source/drivers/jdbc/SQLException.cxx +++ b/connectivity/source/drivers/jdbc/SQLException.cxx @@ -63,52 +63,23 @@ java_sql_SQLException_BASE::~java_sql_SQLException_BASE() {} -jclass java_sql_SQLException_BASE::getMyClass() +jclass java_sql_SQLException_BASE::getMyClass() const { - // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; - if( !t.pEnv ) return (jclass)NULL; - jclass tempClass = t.pEnv->FindClass("java/sql/SQLException"); - OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - if(!tempClass) - { - t.pEnv->ExceptionDescribe(); - t.pEnv->ExceptionClear(); - } - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } - return theClass; + return st_getMyClass(); } - -void java_sql_SQLException_BASE::saveClassRef( jclass pClass ) +jclass java_sql_SQLException_BASE::st_getMyClass() { - if( pClass==NULL ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; + // die Klasse muss nur einmal geholt werden, daher statisch + if( !theClass ) + theClass = findMyClass("java/sql/SQLException"); + return theClass; } starsdbc::SQLException java_sql_SQLException_BASE::getNextException() const { - jobject out = NULL; SDBThreadAttach t; - if( t.pEnv ){ - - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/sql/SQLException;"; - static const char * cMethodName = "getNextException"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallObjectMethod( object, mID); - ThrowSQLException(t.pEnv,0); - } //mID - } //t.pEnv + static jmethodID mID(NULL); + jobject out = callObjectMethod(t.pEnv,"getNextException","()Ljava/sql/SQLException;", mID); // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! if( out ) { @@ -121,44 +92,12 @@ starsdbc::SQLException java_sql_SQLException_BASE::getNextException() const ::rtl::OUString java_sql_SQLException_BASE::getSQLState() const { - SDBThreadAttach t; - ::rtl::OUString aStr; - if( t.pEnv ){ - - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/lang/String;"; - static const char * cMethodName = "getSQLState"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jstring out = (jstring) t.pEnv->CallObjectMethod( object, mID); - ThrowSQLException(t.pEnv,0); - aStr = JavaString2String(t.pEnv,out); - } //mID - } //t.pEnv - // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! - return aStr; + static jmethodID mID(NULL); + return callStringMethod("getSQLState",mID); } sal_Int32 java_sql_SQLException_BASE::getErrorCode() const { - jint out(0); - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( t.pEnv ){ - - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getErrorCode"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID); - ThrowSQLException(t.pEnv,0); - } //mID - } //t.pEnv - return (sal_Int32)out; + static jmethodID mID(NULL); + return callIntMethod("getErrorCode",mID); } diff --git a/connectivity/source/drivers/jdbc/SQLWarning.cxx b/connectivity/source/drivers/jdbc/SQLWarning.cxx index 3c2df3f6d5..516d743a4e 100644 --- a/connectivity/source/drivers/jdbc/SQLWarning.cxx +++ b/connectivity/source/drivers/jdbc/SQLWarning.cxx @@ -41,25 +41,11 @@ jclass java_sql_SQLWarning_BASE::theClass = 0; java_sql_SQLWarning_BASE::~java_sql_SQLWarning_BASE() {} -jclass java_sql_SQLWarning_BASE::getMyClass() +jclass java_sql_SQLWarning_BASE::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; - if( !t.pEnv ) return (jclass)NULL; - jclass tempClass = t.pEnv->FindClass( "java/sql/SQLWarning" ); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/sql/SQLWarning"); return theClass; } -void java_sql_SQLWarning_BASE::saveClassRef( jclass pClass ) -{ - if( pClass==NULL ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} - diff --git a/connectivity/source/drivers/jdbc/String.cxx b/connectivity/source/drivers/jdbc/String.cxx index c41e51f16b..f11e6684a6 100644 --- a/connectivity/source/drivers/jdbc/String.cxx +++ b/connectivity/source/drivers/jdbc/String.cxx @@ -42,29 +42,18 @@ jclass java_lang_String::theClass = 0; java_lang_String::~java_lang_String() {} -jclass java_lang_String::getMyClass() +jclass java_lang_String::getMyClass() const +{ + return st_getMyClass(); +} +jclass java_lang_String::st_getMyClass() { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; - if( !t.pEnv ) return (jclass)NULL; - jclass tempClass = t.pEnv->FindClass("java/lang/String"); - OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/lang/String"); return theClass; } -//-------------------------------------------------------------------------- -void java_lang_String::saveClassRef( jclass pClass ) -{ - if( pClass==NULL ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} //-------------------------------------------------------------------------- java_lang_String::java_lang_String( const ::rtl::OUString& _par0 ): java_lang_Object( NULL, (jobject)NULL ) { @@ -78,9 +67,8 @@ java_lang_String::java_lang_String( const ::rtl::OUString& _par0 ): java_lang_Ob // temporaere Variable initialisieren static const char * cSignature = "(Ljava/lang/String;)V"; jobject tempObj; - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), "", cSignature );OSL_ENSURE(mID,"Unknown method id!"); + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, "",cSignature, mID); tempObj = t.pEnv->NewObjectA( getMyClass(), mID, args ); saveRef( t.pEnv, tempObj ); t.pEnv->DeleteLocalRef( tempObj ); diff --git a/connectivity/source/drivers/jdbc/Throwable.cxx b/connectivity/source/drivers/jdbc/Throwable.cxx index 6ce502cfa1..de6c3fe0a5 100644 --- a/connectivity/source/drivers/jdbc/Throwable.cxx +++ b/connectivity/source/drivers/jdbc/Throwable.cxx @@ -42,98 +42,30 @@ jclass java_lang_Throwable::theClass = 0; java_lang_Throwable::~java_lang_Throwable() {} -jclass java_lang_Throwable::getMyClass() +jclass java_lang_Throwable::getMyClass() const { - // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; - if( !t.pEnv ) return (jclass)NULL; - jclass tempClass = t.pEnv->FindClass("java/lang/Throwable"); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } - return theClass; + return st_getMyClass(); } -// ----------------------------------------------------------------------------- - -void java_lang_Throwable::saveClassRef( jclass pClass ) +jclass java_lang_Throwable::st_getMyClass() { - if( pClass==NULL ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; + // die Klasse muss nur einmal geholt werden, daher statisch + if( !theClass ) + theClass = findMyClass("java/lang/Throwable"); + return theClass; } // ----------------------------------------------------------------------------- ::rtl::OUString java_lang_Throwable::getMessage() const { - ::rtl::OUString aStr; - SDBThreadAttach t; - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/lang/String;"; - static const char * cMethodName = "getMessage"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID); - ThrowSQLException(t.pEnv,NULL); - - aStr = JavaString2String(t.pEnv,out); - } //mID - } //t.pEnv - // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! - return aStr; + static jmethodID mID(NULL); + return callStringMethod("getMessage",mID); } // ----------------------------------------------------------------------------- ::rtl::OUString java_lang_Throwable::getLocalizedMessage() const { - ::rtl::OUString aStr; - SDBThreadAttach t; - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/lang/String;"; - static const char * cMethodName = "getLocalizedMessage"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID); - ThrowSQLException(t.pEnv,NULL); - - aStr = JavaString2String(t.pEnv,out); - } //mID - } //t.pEnv - // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! - return aStr; -} -// ----------------------------------------------------------------------------- -::rtl::OUString java_lang_Throwable::toString() const -{ - ::rtl::OUString aStr; - SDBThreadAttach t; - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "()Ljava/lang/String;"; - static const char * cMethodName = "toString"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - jstring out = (jstring)t.pEnv->CallObjectMethod( object, mID); - ThrowSQLException(t.pEnv,NULL); - - aStr = JavaString2String(t.pEnv,out); - } //mID - } //t.pEnv - // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten Zeigers !!! - return aStr; + static jmethodID mID(NULL); + return callStringMethod("getLocalizedMessage",mID); } // ----------------------------------------------------------------------------- diff --git a/connectivity/source/drivers/jdbc/Timestamp.cxx b/connectivity/source/drivers/jdbc/Timestamp.cxx index 11e7717933..5a014d12a5 100644 --- a/connectivity/source/drivers/jdbc/Timestamp.cxx +++ b/connectivity/source/drivers/jdbc/Timestamp.cxx @@ -57,7 +57,7 @@ java_sql_Date::java_sql_Date( const ::com::sun::star::util::Date& _rOut ) : java // temporaere Variable initialisieren static const char * cSignature = "(Ljava/lang/String;)Ljava/sql/Date;"; jobject tempObj; - static jmethodID mID = NULL; + static jmethodID mID(NULL); if ( !mID ) mID = t.pEnv->GetStaticMethodID( getMyClass(), "valueOf", cSignature );OSL_ENSURE(mID,"Unknown method id!"); tempObj = t.pEnv->CallStaticObjectMethod( getMyClass(), mID, args[0].l ); @@ -69,29 +69,15 @@ java_sql_Date::java_sql_Date( const ::com::sun::star::util::Date& _rOut ) : java java_sql_Date::~java_sql_Date() {} -jclass java_sql_Date::getMyClass() +jclass java_sql_Date::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( !t.pEnv ) return (jclass)0; - jclass tempClass = t.pEnv->FindClass("java/sql/Date"); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/sql/Date"); return theClass; } // ----------------------------------------------------------------------------- -void java_sql_Date::saveClassRef( jclass pClass ) -{ - if( pClass==0 ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} -// ----------------------------------------------------------------------------- java_sql_Date::operator ::com::sun::star::util::Date() { return ::dbtools::DBTypeConversion::toDate(toString()); @@ -106,28 +92,14 @@ jclass java_sql_Time::theClass = 0; java_sql_Time::~java_sql_Time() {} -jclass java_sql_Time::getMyClass() +jclass java_sql_Time::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( !t.pEnv ) return (jclass)0; - jclass tempClass = t.pEnv->FindClass("java/sql/Time"); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/sql/Time"); return theClass; } -void java_sql_Time::saveClassRef( jclass pClass ) -{ - if( pClass==0 ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} - java_sql_Time::java_sql_Time( const ::com::sun::star::util::Time& _rOut ): java_util_Date( NULL, (jobject)NULL ) { SDBThreadAttach t; @@ -143,7 +115,7 @@ java_sql_Time::java_sql_Time( const ::com::sun::star::util::Time& _rOut ): java_ // temporaere Variable initialisieren static const char * cSignature = "(Ljava/lang/String;)Ljava/sql/Time;"; jobject tempObj; - static jmethodID mID = NULL; + static jmethodID mID(NULL); if ( !mID ) mID = t.pEnv->GetStaticMethodID( getMyClass(), "valueOf", cSignature );OSL_ENSURE(mID,"Unknown method id!"); tempObj = t.pEnv->CallStaticObjectMethod( getMyClass(), mID, args[0].l ); @@ -166,28 +138,14 @@ jclass java_sql_Timestamp::theClass = 0; java_sql_Timestamp::~java_sql_Timestamp() {} -jclass java_sql_Timestamp::getMyClass() +jclass java_sql_Timestamp::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); - if( !t.pEnv ) return (jclass)0; - jclass tempClass = t.pEnv->FindClass("java/sql/Timestamp"); OSL_ENSURE(tempClass,"Java : FindClass nicht erfolgreich!"); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/sql/Timestamp"); return theClass; } -void java_sql_Timestamp::saveClassRef( jclass pClass ) -{ - if( pClass==0 ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} - java_sql_Timestamp::java_sql_Timestamp(const ::com::sun::star::util::DateTime& _rOut) :java_util_Date( NULL, (jobject)NULL ) { @@ -205,7 +163,7 @@ java_sql_Timestamp::java_sql_Timestamp(const ::com::sun::star::util::DateTime& _ // temporaere Variable initialisieren static const char * cSignature = "(Ljava/lang/String;)Ljava/sql/Timestamp;"; jobject tempObj; - static jmethodID mID = NULL; + static jmethodID mID(NULL); if ( !mID ) mID = t.pEnv->GetStaticMethodID( getMyClass(), "valueOf", cSignature );OSL_ENSURE(mID,"Unknown method id!"); tempObj = t.pEnv->CallStaticObjectMethod( getMyClass(), mID, args[0].l ); @@ -217,40 +175,14 @@ java_sql_Timestamp::java_sql_Timestamp(const ::com::sun::star::util::DateTime& _ sal_Int32 java_sql_Timestamp::getNanos() { - jint out(0); - SDBThreadAttach t; - if( t.pEnv ){ - - // temporaere Variable initialisieren - static const char * cSignature = "()I"; - static const char * cMethodName = "getNanos"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - out = t.pEnv->CallIntMethod( object, mID); - } //mID - } //t.pEnv - return (sal_Int32)out; + static jmethodID mID(NULL); + return callIntMethod("getNanos",mID); } void java_sql_Timestamp::setNanos( sal_Int32 _par0 ) { - SDBThreadAttach t; - if( t.pEnv ){ - // temporaere Variable initialisieren - static const char * cSignature = "(I)V"; - static const char * cMethodName = "setNanos"; - // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ){ - t.pEnv->CallVoidMethod( object, mID, _par0 ); - // und aufraeumen - } //mID - } //t.pEnv + static jmethodID mID(NULL); + callVoidMethodWithIntArg("setNanos",mID,_par0); } // ----------------------------------------------------------------------------- java_sql_Timestamp::operator ::com::sun::star::util::DateTime() diff --git a/connectivity/source/drivers/jdbc/makefile.mk b/connectivity/source/drivers/jdbc/makefile.mk index 58287b0bf8..b8d6a54dd0 100644 --- a/connectivity/source/drivers/jdbc/makefile.mk +++ b/connectivity/source/drivers/jdbc/makefile.mk @@ -60,7 +60,6 @@ SLOFILES=\ $(SLO)$/ConnectionLog.obj \ $(SLO)$/DatabaseMetaData.obj \ $(SLO)$/Date.obj \ - $(SLO)$/DriverManager.obj \ $(SLO)$/DriverPropertyInfo.obj \ $(SLO)$/Exception.obj \ $(SLO)$/InputStream.obj \ diff --git a/connectivity/source/drivers/jdbc/tools.cxx b/connectivity/source/drivers/jdbc/tools.cxx index 65d4ee2849..76fdcfffc2 100644 --- a/connectivity/source/drivers/jdbc/tools.cxx +++ b/connectivity/source/drivers/jdbc/tools.cxx @@ -52,7 +52,7 @@ void java_util_Properties::setProperty(const ::rtl::OUString key, const ::rtl::O { SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!"); jobject out(0); - if( t.pEnv ) + { jvalue args[2]; // Parameter konvertieren @@ -62,14 +62,10 @@ void java_util_Properties::setProperty(const ::rtl::OUString key, const ::rtl::O static const char * cSignature = "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;"; static const char * cMethodName = "setProperty"; // Java-Call absetzen - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!"); - if( mID ) - { - out = t.pEnv->CallObjectMethod(object, mID, args[0].l,args[1].l); - ThrowSQLException(t.pEnv,NULL); - } + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, cMethodName,cSignature, mID); + out = t.pEnv->CallObjectMethod(object, mID, args[0].l,args[1].l); + ThrowSQLException(t.pEnv,NULL); t.pEnv->DeleteLocalRef((jstring)args[1].l); t.pEnv->DeleteLocalRef((jstring)args[0].l); ThrowSQLException(t.pEnv,0); @@ -83,27 +79,14 @@ jclass java_util_Properties::theClass = 0; java_util_Properties::~java_util_Properties() {} -jclass java_util_Properties::getMyClass() +jclass java_util_Properties::getMyClass() const { // die Klasse muss nur einmal geholt werden, daher statisch - if( !theClass ){ - SDBThreadAttach t; - if( !t.pEnv ) return (jclass)NULL; - jclass tempClass = t.pEnv->FindClass( "java/util/Properties" ); - jclass globClass = (jclass)t.pEnv->NewGlobalRef( tempClass ); - t.pEnv->DeleteLocalRef( tempClass ); - saveClassRef( globClass ); - } + if( !theClass ) + theClass = findMyClass("java/util/Properties"); return theClass; } -void java_util_Properties::saveClassRef( jclass pClass ) -{ - if( pClass==NULL ) - return; - // der uebergebe Klassen-Handle ist schon global, daher einfach speichern - theClass = pClass; -} //-------------------------------------------------------------------------- java_util_Properties::java_util_Properties( ): java_lang_Object( NULL, (jobject)NULL ) { @@ -114,9 +97,8 @@ java_util_Properties::java_util_Properties( ): java_lang_Object( NULL, (jobject) // temporaere Variable initialisieren static const char * cSignature = "()V"; jobject tempObj; - static jmethodID mID = NULL; - if ( !mID ) - mID = t.pEnv->GetMethodID( getMyClass(), "", cSignature );OSL_ENSURE(mID,"Unknown method id!"); + static jmethodID mID(NULL); + obtainMethodId(t.pEnv, "",cSignature, mID); tempObj = t.pEnv->NewObject( getMyClass(), mID); saveRef( t.pEnv, tempObj ); t.pEnv->DeleteLocalRef( tempObj ); @@ -218,7 +200,7 @@ sal_Bool connectivity::isExceptionOccured(JNIEnv *pEnv,sal_Bool _bClear) if ( _bClear ) pEnv->ExceptionClear(); #if OSL_DEBUG_LEVEL > 1 - if(pEnv->IsInstanceOf(pThrowable,java_sql_SQLException_BASE::getMyClass())) + if(pEnv->IsInstanceOf(pThrowable,java_sql_SQLException_BASE::st_getMyClass())) { java_sql_SQLException_BASE* pException = new java_sql_SQLException_BASE(pEnv,pThrowable); diff --git a/connectivity/source/drivers/kab/KPreparedStatement.cxx b/connectivity/source/drivers/kab/KPreparedStatement.cxx index e15e50b591..f26b06d120 100644 --- a/connectivity/source/drivers/kab/KPreparedStatement.cxx +++ b/connectivity/source/drivers/kab/KPreparedStatement.cxx @@ -34,6 +34,7 @@ #include "KPreparedStatement.hxx" #include "propertyids.hxx" #include +#include #include "resource/kab_res.hrc" #include "resource/sharedresources.hxx" @@ -321,12 +322,12 @@ void SAL_CALL KabPreparedStatement::setCharacterStream(sal_Int32, const Referenc ::dbtools::throwFunctionNotSupportedException("setCharacterStream", NULL); } // ------------------------------------------------------------------------- -void SAL_CALL KabPreparedStatement::setObject(sal_Int32, const Any&) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setObject", NULL); +void SAL_CALL KabPreparedStatement::setObject(sal_Int32 parameterIndex, const Any& x) throw(SQLException, RuntimeException) +{ + if(!::dbtools::implSetObject(this,parameterIndex,x)) + { + throw SQLException(); + } } // ------------------------------------------------------------------------- void SAL_CALL KabPreparedStatement::setObjectWithInfo(sal_Int32, const Any&, sal_Int32, sal_Int32) throw(SQLException, RuntimeException) diff --git a/connectivity/source/drivers/macab/MacabPreparedStatement.cxx b/connectivity/source/drivers/macab/MacabPreparedStatement.cxx index 2855fd3ad9..3f15250961 100755 --- a/connectivity/source/drivers/macab/MacabPreparedStatement.cxx +++ b/connectivity/source/drivers/macab/MacabPreparedStatement.cxx @@ -35,6 +35,7 @@ #include "MacabAddressBook.hxx" #include "propertyids.hxx" #include +#include "connectivity/dbtools.hxx" #include "resource/macab_res.hrc" #include "resource/sharedresources.hxx" @@ -334,12 +335,16 @@ void SAL_CALL MacabPreparedStatement::setCharacterStream(sal_Int32, const Refere ::dbtools::throwFunctionNotSupportedException("setCharacterStream", NULL); } // ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setObject(sal_Int32, const Any&) throw(SQLException, RuntimeException) +void SAL_CALL MacabPreparedStatement::setObject(sal_Int32 parameterIndex, const Any& x) throw(SQLException, RuntimeException) { - - - -::dbtools::throwFunctionNotSupportedException("setObject", NULL); + if(!::dbtools::implSetObject(this,parameterIndex,x)) + { + const ::rtl::OUString sError( m_pConnection->getResources().getResourceStringWithSubstitution( + STR_UNKNOWN_PARA_TYPE, + "$position$", ::rtl::OUString::valueOf(parameterIndex) + ) ); + ::dbtools::throwGenericSQLException(sError,*this); + } } // ------------------------------------------------------------------------- void SAL_CALL MacabPreparedStatement::setObjectWithInfo(sal_Int32, const Any&, sal_Int32, sal_Int32) throw(SQLException, RuntimeException) diff --git a/connectivity/source/drivers/macab/makefile.mk b/connectivity/source/drivers/macab/makefile.mk index 4b6cc65fa0..67f40f2d45 100755 --- a/connectivity/source/drivers/macab/makefile.mk +++ b/connectivity/source/drivers/macab/makefile.mk @@ -34,7 +34,7 @@ PRJINC=..$/.. PRJNAME=connectivity TARGET=macab TARGET2=$(TARGET)drv - +VISIBILITY_HIDDEN=TRUE ENABLE_EXCEPTIONS=TRUE # --- Settings ---------------------------------- diff --git a/connectivity/source/drivers/mozab/makefile.mk b/connectivity/source/drivers/mozab/makefile.mk index c2f0f2220d..2e3443cd95 100644 --- a/connectivity/source/drivers/mozab/makefile.mk +++ b/connectivity/source/drivers/mozab/makefile.mk @@ -33,6 +33,7 @@ PRJINC=..$/.. PRJNAME=connectivity TARGET=mozab TARGET2=$(TARGET)drv +VISIBILITY_HIDDEN=TRUE .IF ( "$(SYSTEM_MOZILLA)" == "YES" && "$(WITH_MOZILLA)" == "YES") || "$(WITH_MOZILLA)" == "NO" || ( "$(OS)" == "MACOSX" ) all: diff --git a/connectivity/source/inc/calc/CResultSet.hxx b/connectivity/source/inc/calc/CResultSet.hxx index 8a6e79cf6b..dc4f19194a 100644 --- a/connectivity/source/inc/calc/CResultSet.hxx +++ b/connectivity/source/inc/calc/CResultSet.hxx @@ -63,6 +63,7 @@ namespace connectivity OCalcResultSet( file::OStatement_Base* pStmt,connectivity::OSQLParseTreeIterator& _aSQLIterator); + private: // XInterface virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException); virtual void SAL_CALL acquire() throw(); @@ -82,6 +83,8 @@ namespace connectivity // XDeleteRows virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL deleteRows( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& rows ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); + virtual sal_Bool isRowDeleted() const { return sal_False; } + }; } } diff --git a/connectivity/source/inc/file/FDateFunctions.hxx b/connectivity/source/inc/file/FDateFunctions.hxx index abe39413c2..a02cfac29c 100644 --- a/connectivity/source/inc/file/FDateFunctions.hxx +++ b/connectivity/source/inc/file/FDateFunctions.hxx @@ -45,7 +45,7 @@ namespace connectivity > SELECT DAYOFWEEK('1998-02-03'); -> 3 */ - class OOO_DLLPUBLIC_FILE OOp_DayOfWeek : public OUnaryOperator + class OOp_DayOfWeek : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -57,7 +57,7 @@ namespace connectivity > SELECT DAYOFMONTH('1998-02-03'); -> 3 */ - class OOO_DLLPUBLIC_FILE OOp_DayOfMonth : public OUnaryOperator + class OOp_DayOfMonth : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -70,7 +70,7 @@ namespace connectivity -> 34 */ - class OOO_DLLPUBLIC_FILE OOp_DayOfYear : public OUnaryOperator + class OOp_DayOfYear : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -82,7 +82,7 @@ namespace connectivity > SELECT MONTH('1998-02-03'); -> 2 */ - class OOO_DLLPUBLIC_FILE OOp_Month : public OUnaryOperator + class OOp_Month : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -95,7 +95,7 @@ namespace connectivity -> 'Thursday' */ - class OOO_DLLPUBLIC_FILE OOp_DayName : public OUnaryOperator + class OOp_DayName : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -108,7 +108,7 @@ namespace connectivity -> 'February' */ - class OOO_DLLPUBLIC_FILE OOp_MonthName : public OUnaryOperator + class OOp_MonthName : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -121,7 +121,7 @@ namespace connectivity -> 2 */ - class OOO_DLLPUBLIC_FILE OOp_Quarter : public OUnaryOperator + class OOp_Quarter : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -146,7 +146,7 @@ namespace connectivity -> 53 */ - class OOO_DLLPUBLIC_FILE OOp_Week : public ONthOperator + class OOp_Week : public ONthOperator { protected: virtual ORowSetValue operate(const ::std::vector& lhs) const; @@ -158,7 +158,7 @@ namespace connectivity > SELECT YEAR('98-02-03'); -> 1998 */ - class OOO_DLLPUBLIC_FILE OOp_Year : public OUnaryOperator + class OOp_Year : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -170,7 +170,7 @@ namespace connectivity > SELECT HOUR('10:05:03'); -> 10 */ - class OOO_DLLPUBLIC_FILE OOp_Hour : public OUnaryOperator + class OOp_Hour : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -183,7 +183,7 @@ namespace connectivity -> 5 */ - class OOO_DLLPUBLIC_FILE OOp_Minute : public OUnaryOperator + class OOp_Minute : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -195,7 +195,7 @@ namespace connectivity > SELECT SECOND('10:05:03'); -> 3 */ - class OOO_DLLPUBLIC_FILE OOp_Second : public OUnaryOperator + class OOp_Second : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -208,7 +208,7 @@ namespace connectivity > SELECT CURDATE(); -> '1997-12-15' */ - class OOO_DLLPUBLIC_FILE OOp_CurDate : public ONthOperator + class OOp_CurDate : public ONthOperator { protected: virtual ORowSetValue operate(const ::std::vector& lhs) const; @@ -221,7 +221,7 @@ namespace connectivity > SELECT CURTIME(); -> '23:50:26' */ - class OOO_DLLPUBLIC_FILE OOp_CurTime : public ONthOperator + class OOp_CurTime : public ONthOperator { protected: virtual ORowSetValue operate(const ::std::vector& lhs) const; @@ -233,7 +233,7 @@ namespace connectivity > SELECT NOW(); -> '1997-12-15 23:50:26' */ - class OOO_DLLPUBLIC_FILE OOp_Now : public ONthOperator + class OOp_Now : public ONthOperator { protected: virtual ORowSetValue operate(const ::std::vector& lhs) const; diff --git a/connectivity/source/inc/file/FNumericFunctions.hxx b/connectivity/source/inc/file/FNumericFunctions.hxx index e5cbc57b1f..6ba79cc279 100644 --- a/connectivity/source/inc/file/FNumericFunctions.hxx +++ b/connectivity/source/inc/file/FNumericFunctions.hxx @@ -48,7 +48,7 @@ namespace connectivity -> 32 */ - class OOO_DLLPUBLIC_FILE OOp_Abs : public OUnaryOperator + class OOp_Abs : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -65,7 +65,7 @@ namespace connectivity -> 1 */ - class OOO_DLLPUBLIC_FILE OOp_Sign : public OUnaryOperator + class OOp_Sign : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -84,7 +84,7 @@ namespace connectivity > SELECT 29 MOD 9; -> 2 */ - class OOO_DLLPUBLIC_FILE OOp_Mod : public OBinaryOperator + class OOp_Mod : public OBinaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs,const ORowSetValue& rhs) const; @@ -99,7 +99,7 @@ namespace connectivity -> -2 */ - class OOO_DLLPUBLIC_FILE OOp_Floor : public OUnaryOperator + class OOp_Floor : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -114,7 +114,7 @@ namespace connectivity -> -1 */ - class OOO_DLLPUBLIC_FILE OOp_Ceiling : public OUnaryOperator + class OOp_Ceiling : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -137,7 +137,7 @@ namespace connectivity > SELECT ROUND(23.298, -1); -> 20 */ - class OOO_DLLPUBLIC_FILE OOp_Round : public ONthOperator + class OOp_Round : public ONthOperator { protected: virtual ORowSetValue operate(const ::std::vector& lhs) const; @@ -151,7 +151,7 @@ namespace connectivity > SELECT EXP(-2); -> 0.135335 */ - class OOO_DLLPUBLIC_FILE OOp_Exp : public OUnaryOperator + class OOp_Exp : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -166,7 +166,7 @@ namespace connectivity -> NULL */ - class OOO_DLLPUBLIC_FILE OOp_Ln : public OUnaryOperator + class OOp_Ln : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -188,7 +188,7 @@ namespace connectivity > SELECT LOG(1,100); -> NULL */ - class OOO_DLLPUBLIC_FILE OOp_Log : public ONthOperator + class OOp_Log : public ONthOperator { protected: virtual ORowSetValue operate(const ::std::vector& lhs) const; @@ -204,7 +204,7 @@ namespace connectivity > SELECT LOG10(-100); -> NULL */ - class OOO_DLLPUBLIC_FILE OOp_Log10 : public OUnaryOperator + class OOp_Log10 : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -218,7 +218,7 @@ namespace connectivity > SELECT POW(2,-2); -> 0.250000 */ - class OOO_DLLPUBLIC_FILE OOp_Pow : public OBinaryOperator + class OOp_Pow : public OBinaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs,const ORowSetValue& rhs) const; @@ -232,7 +232,7 @@ namespace connectivity > SELECT SQRT(20); -> 4.472136 */ - class OOO_DLLPUBLIC_FILE OOp_Sqrt : public OUnaryOperator + class OOp_Sqrt : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -247,7 +247,7 @@ namespace connectivity -> 3.141592653589793116 */ - class OOO_DLLPUBLIC_FILE OOp_Pi : public ONthOperator + class OOp_Pi : public ONthOperator { protected: virtual ORowSetValue operate(const ::std::vector& lhs) const; @@ -259,7 +259,7 @@ namespace connectivity > SELECT COS(PI()); -> -1.000000 */ - class OOO_DLLPUBLIC_FILE OOp_Cos : public OUnaryOperator + class OOp_Cos : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs = ORowSetValue()) const; @@ -272,7 +272,7 @@ namespace connectivity -> 0.000000 */ - class OOO_DLLPUBLIC_FILE OOp_Sin : public OUnaryOperator + class OOp_Sin : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs = ORowSetValue()) const; @@ -283,7 +283,7 @@ namespace connectivity > SELECT TAN(PI()+1); -> 1.557408 */ - class OOO_DLLPUBLIC_FILE OOp_Tan : public OUnaryOperator + class OOp_Tan : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs = ORowSetValue()) const; @@ -299,7 +299,7 @@ namespace connectivity > SELECT ACOS(0); -> 1.570796 */ - class OOO_DLLPUBLIC_FILE OOp_ACos : public OUnaryOperator + class OOp_ACos : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs = ORowSetValue()) const; @@ -313,7 +313,7 @@ namespace connectivity > SELECT ASIN('foo'); -> 0.000000 */ - class OOO_DLLPUBLIC_FILE OOp_ASin : public OUnaryOperator + class OOp_ASin : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs = ORowSetValue()) const; @@ -327,7 +327,7 @@ namespace connectivity > SELECT ATAN(-2); -> -1.107149 */ - class OOO_DLLPUBLIC_FILE OOp_ATan : public OUnaryOperator + class OOp_ATan : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs = ORowSetValue()) const; @@ -342,7 +342,7 @@ namespace connectivity -> 1.570796 */ - class OOO_DLLPUBLIC_FILE OOp_ATan2 : public OBinaryOperator + class OOp_ATan2 : public OBinaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs,const ORowSetValue& rhs) const; @@ -354,7 +354,7 @@ namespace connectivity > SELECT DEGREES(PI()); -> 180.000000 */ - class OOO_DLLPUBLIC_FILE OOp_Degrees : public OUnaryOperator + class OOp_Degrees : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs = ORowSetValue()) const; @@ -367,7 +367,7 @@ namespace connectivity -> 1.570796 */ - class OOO_DLLPUBLIC_FILE OOp_Radians : public OUnaryOperator + class OOp_Radians : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs = ORowSetValue()) const; diff --git a/connectivity/source/inc/file/FResultSet.hxx b/connectivity/source/inc/file/FResultSet.hxx index 0940d3f708..bfabd3d730 100644 --- a/connectivity/source/inc/file/FResultSet.hxx +++ b/connectivity/source/inc/file/FResultSet.hxx @@ -153,6 +153,7 @@ namespace connectivity sal_Int32 m_nLastVisitedPos; sal_Int32 m_nRowCountResult; sal_Int32 m_nCurrentPosition; // current position of the resultset is returned when ask for getRow() + sal_Int32 m_nColumnCount; sal_Bool m_bWasNull; sal_Bool m_bEOF; // after last record sal_Bool m_bLastRecord; @@ -162,6 +163,7 @@ namespace connectivity sal_Bool m_bRowInserted; sal_Bool m_bRowDeleted; sal_Bool m_bShowDeleted; + sal_Bool m_bIsCount; void initializeRow(OValueRefRow& _rRow,sal_Int32 _nColumnCount); void construct(); @@ -176,7 +178,7 @@ namespace connectivity BOOL IsSorted() const { return !m_aOrderbyColumnNumber.empty() && m_aOrderbyColumnNumber[0] != SQL_COLUMN_NOTFOUND;} // return true when the select statement is "select count(*) from table" - sal_Bool isCount() const; + inline sal_Bool isCount() const { return m_bIsCount; } void checkIndex(sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException); const ORowSetValue& getValue(sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException); @@ -310,7 +312,11 @@ namespace connectivity inline void setParameterColumns(const ::vos::ORef& _xParamColumns) { m_xParamColumns = _xParamColumns; } inline void setAssignValues(const ORefAssignValues& _aAssignValues) { m_aAssignValues = _aAssignValues; } inline void setBindingRow(const OValueRefRow& _aRow) { m_aRow = _aRow; } - inline void setSelectRow(const OValueRefRow& _rRow) { m_aSelectRow = _rRow; } + inline void setSelectRow(const OValueRefRow& _rRow) + { + m_aSelectRow = _rRow; + m_nColumnCount = m_aSelectRow->get().size(); + } inline void setColumnMapping(const ::std::vector& _aColumnMapping) { m_aColMapping = _aColumnMapping; } inline void setSqlAnalyzer(OSQLAnalyzer* _pSQLAnalyzer) { m_pSQLAnalyzer = _pSQLAnalyzer; } diff --git a/connectivity/source/inc/file/FStringFunctions.hxx b/connectivity/source/inc/file/FStringFunctions.hxx index 0bda818991..b1831bb608 100644 --- a/connectivity/source/inc/file/FStringFunctions.hxx +++ b/connectivity/source/inc/file/FStringFunctions.hxx @@ -47,7 +47,7 @@ namespace connectivity -> 'HEJ' */ - class OOO_DLLPUBLIC_FILE OOp_Upper : public OUnaryOperator + class OOp_Upper : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -61,7 +61,7 @@ namespace connectivity -> 'quadratically' */ - class OOO_DLLPUBLIC_FILE OOp_Lower : public OUnaryOperator + class OOp_Lower : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -78,7 +78,7 @@ namespace connectivity -> 100 */ - class OOO_DLLPUBLIC_FILE OOp_Ascii : public OUnaryOperator + class OOp_Ascii : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -96,7 +96,7 @@ namespace connectivity -> 4 */ - class OOO_DLLPUBLIC_FILE OOp_CharLength : public OUnaryOperator + class OOp_CharLength : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -111,7 +111,7 @@ namespace connectivity -> 'MMM' */ - class OOO_DLLPUBLIC_FILE OOp_Char : public ONthOperator + class OOp_Char : public ONthOperator { protected: virtual ORowSetValue operate(const ::std::vector& lhs) const; @@ -128,7 +128,7 @@ namespace connectivity -> '14.3' */ - class OOO_DLLPUBLIC_FILE OOp_Concat : public ONthOperator + class OOp_Concat : public ONthOperator { protected: virtual ORowSetValue operate(const ::std::vector& lhs) const; @@ -149,7 +149,7 @@ namespace connectivity -> 7 */ - class OOO_DLLPUBLIC_FILE OOp_Locate : public ONthOperator + class OOp_Locate : public ONthOperator { protected: virtual ORowSetValue operate(const ::std::vector& lhs) const; @@ -171,7 +171,7 @@ namespace connectivity -> 'ratica' */ - class OOO_DLLPUBLIC_FILE OOp_SubString : public ONthOperator + class OOp_SubString : public ONthOperator { protected: virtual ORowSetValue operate(const ::std::vector& lhs) const; @@ -184,7 +184,7 @@ namespace connectivity -> 'barbar' */ - class OOO_DLLPUBLIC_FILE OOp_LTrim : public OUnaryOperator + class OOp_LTrim : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -197,7 +197,7 @@ namespace connectivity -> 'barbar' */ - class OOO_DLLPUBLIC_FILE OOp_RTrim : public OUnaryOperator + class OOp_RTrim : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -210,7 +210,7 @@ namespace connectivity -> ' ' */ - class OOO_DLLPUBLIC_FILE OOp_Space : public OUnaryOperator + class OOp_Space : public OUnaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs) const; @@ -223,7 +223,7 @@ namespace connectivity -> 'WwWwWw.OOo.com' */ - class OOO_DLLPUBLIC_FILE OOp_Replace : public ONthOperator + class OOp_Replace : public ONthOperator { protected: virtual ORowSetValue operate(const ::std::vector& lhs) const; @@ -236,7 +236,7 @@ namespace connectivity -> 'OOoOOoOOo' */ - class OOO_DLLPUBLIC_FILE OOp_Repeat : public OBinaryOperator + class OOp_Repeat : public OBinaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs,const ORowSetValue& rhs) const; @@ -249,7 +249,7 @@ namespace connectivity -> 'QuWhattic' */ - class OOO_DLLPUBLIC_FILE OOp_Insert : public ONthOperator + class OOp_Insert : public ONthOperator { protected: virtual ORowSetValue operate(const ::std::vector& lhs) const; @@ -262,7 +262,7 @@ namespace connectivity -> 'fooba' */ - class OOO_DLLPUBLIC_FILE OOp_Left : public OBinaryOperator + class OOp_Left : public OBinaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs,const ORowSetValue& rhs) const; @@ -274,7 +274,7 @@ namespace connectivity > SELECT RIGHT('foobarbar', 4); -> 'rbar' */ - class OOO_DLLPUBLIC_FILE OOp_Right : public OBinaryOperator + class OOp_Right : public OBinaryOperator { protected: virtual ORowSetValue operate(const ORowSetValue& lhs,const ORowSetValue& rhs) const; diff --git a/connectivity/source/inc/file/fcode.hxx b/connectivity/source/inc/file/fcode.hxx index 54fcbb0308..89c68f654a 100644 --- a/connectivity/source/inc/file/fcode.hxx +++ b/connectivity/source/inc/file/fcode.hxx @@ -129,7 +129,7 @@ namespace connectivity }; // Parameter fuer ein Praedikat - class OOO_DLLPUBLIC_FILE OOperandParam : public OOperandRow + class OOperandParam : public OOperandRow { public: OOperandParam(connectivity::OSQLParseNode* pNode, sal_Int32 _nPos); @@ -139,7 +139,7 @@ namespace connectivity }; // WerteOperanden - class OOO_DLLPUBLIC_FILE OOperandValue : public OOperand + class OOperandValue : public OOperand { protected: ORowSetValue m_aValue; @@ -161,7 +161,7 @@ namespace connectivity // Konstanten - class OOO_DLLPUBLIC_FILE OOperandConst : public OOperandValue + class OOperandConst : public OOperandValue { public: OOperandConst(const connectivity::OSQLParseNode& rColumnRef, const rtl::OUString& aStrValue); @@ -171,7 +171,7 @@ namespace connectivity // Ergebnis Operanden - class OOO_DLLPUBLIC_FILE OOperandResult : public OOperandValue + class OOperandResult : public OOperandValue { protected: OOperandResult(const ORowSetValue& _rVar, sal_Int32 eDbType) @@ -185,7 +185,7 @@ namespace connectivity }; - class OOO_DLLPUBLIC_FILE OOperandResultBOOL : public OOperandResult + class OOperandResultBOOL : public OOperandResult { public: OOperandResultBOOL(sal_Bool bResult) : OOperandResult(::com::sun::star::sdbc::DataType::BIT) @@ -195,7 +195,7 @@ namespace connectivity } }; - class OOO_DLLPUBLIC_FILE OOperandResultNUM : public OOperandResult + class OOperandResultNUM : public OOperandResult { public: OOperandResultNUM(double fNum) : OOperandResult(::com::sun::star::sdbc::DataType::DOUBLE) @@ -208,7 +208,7 @@ namespace connectivity /** special stop operand is appended when a list of arguments ends */ - class OOO_DLLPUBLIC_FILE OStopOperand : public OOperandValue + class OStopOperand : public OOperandValue { public: OStopOperand(){} @@ -237,7 +237,7 @@ namespace connectivity }; - class OOO_DLLPUBLIC_FILE OOp_AND : public OBoolOperator + class OOp_AND : public OBoolOperator { public: TYPEINFO(); @@ -246,7 +246,7 @@ namespace connectivity virtual sal_Bool operate(const OOperand*, const OOperand*) const; }; - class OOO_DLLPUBLIC_FILE OOp_OR : public OBoolOperator + class OOp_OR : public OBoolOperator { public: TYPEINFO(); @@ -284,7 +284,7 @@ namespace connectivity virtual sal_Bool operate(const OOperand*, const OOperand*) const; }; - class OOO_DLLPUBLIC_FILE OOp_NOTLIKE : public OOp_LIKE + class OOp_NOTLIKE : public OOp_LIKE { public: TYPEINFO(); @@ -309,7 +309,7 @@ namespace connectivity // numerische Operatoren - class OOO_DLLPUBLIC_FILE ONumOperator : public OOperator + class ONumOperator : public OOperator { public: virtual void Exec(OCodeStack&); @@ -320,25 +320,25 @@ namespace connectivity virtual double operate(const double& fLeft,const double& fRight) const = 0; }; - class OOO_DLLPUBLIC_FILE OOp_ADD : public ONumOperator + class OOp_ADD : public ONumOperator { protected: virtual double operate(const double& fLeft,const double& fRight) const; }; - class OOO_DLLPUBLIC_FILE OOp_SUB : public ONumOperator + class OOp_SUB : public ONumOperator { protected: virtual double operate(const double& fLeft,const double& fRight) const; }; - class OOO_DLLPUBLIC_FILE OOp_MUL : public ONumOperator + class OOp_MUL : public ONumOperator { protected: virtual double operate(const double& fLeft,const double& fRight) const; }; - class OOO_DLLPUBLIC_FILE OOp_DIV : public ONumOperator + class OOp_DIV : public ONumOperator { protected: virtual double operate(const double& fLeft,const double& fRight) const; @@ -350,7 +350,7 @@ namespace connectivity } // operator - class OOO_DLLPUBLIC_FILE ONthOperator : public OOperator + class ONthOperator : public OOperator { public: virtual void Exec(OCodeStack&); @@ -361,7 +361,7 @@ namespace connectivity virtual ORowSetValue operate(const ::std::vector& lhs) const = 0; }; - class OOO_DLLPUBLIC_FILE OBinaryOperator : public OOperator + class OBinaryOperator : public OOperator { public: virtual void Exec(OCodeStack&); @@ -372,7 +372,7 @@ namespace connectivity virtual ORowSetValue operate(const ORowSetValue& lhs,const ORowSetValue& rhs) const = 0; }; - class OOO_DLLPUBLIC_FILE OUnaryOperator : public OOperator + class OUnaryOperator : public OOperator { public: virtual void Exec(OCodeStack&); diff --git a/connectivity/source/inc/file/fcomp.hxx b/connectivity/source/inc/file/fcomp.hxx index d5c137a706..5ac2f92902 100644 --- a/connectivity/source/inc/file/fcomp.hxx +++ b/connectivity/source/inc/file/fcomp.hxx @@ -46,7 +46,7 @@ namespace connectivity class OSQLAnalyzer; typedef::std::vector OCodeList; - class OOO_DLLPUBLIC_FILE OPredicateCompiler : public ::vos::OReference + class OPredicateCompiler : public ::vos::OReference { friend class OPredicateInterpreter; friend class OSQLAnalyzer; @@ -92,7 +92,7 @@ namespace connectivity }; - class OOO_DLLPUBLIC_FILE OPredicateInterpreter : + class OPredicateInterpreter : public ::vos::OReference { OCodeStack m_aStack; diff --git a/connectivity/source/inc/file/quotedstring.hxx b/connectivity/source/inc/file/quotedstring.hxx index 15501f6870..1ad9c3ec26 100644 --- a/connectivity/source/inc/file/quotedstring.hxx +++ b/connectivity/source/inc/file/quotedstring.hxx @@ -40,13 +40,18 @@ namespace connectivity // Ableitung von String mit ueberladenen GetToken/GetTokenCount-Methoden // Speziell fuer FLAT FILE-Format: Strings koennen gequotet sein //================================================================== - class OOO_DLLPUBLIC_FILE QuotedTokenizedString : public String + class OOO_DLLPUBLIC_FILE QuotedTokenizedString { + String m_sString; public: - QuotedTokenizedString(){} + QuotedTokenizedString() {} + QuotedTokenizedString(const String& _sString) : m_sString(_sString){} - xub_StrLen GetTokenCount( sal_Unicode cTok = ';', sal_Unicode cStrDel = '\0' ) const; + xub_StrLen GetTokenCount( sal_Unicode cTok , sal_Unicode cStrDel ) const; void GetTokenSpecial( String& _rStr,xub_StrLen& nStartPos, sal_Unicode cTok = ';', sal_Unicode cStrDel = '\0' ) const; + inline String& GetString() { return m_sString; } + inline xub_StrLen Len() const { return m_sString.Len(); } + inline operator String&() { return m_sString; } }; } diff --git a/connectivity/source/inc/flat/ETable.hxx b/connectivity/source/inc/flat/ETable.hxx index 0c9d00ae77..45702a4e20 100644 --- a/connectivity/source/inc/flat/ETable.hxx +++ b/connectivity/source/inc/flat/ETable.hxx @@ -46,24 +46,30 @@ namespace connectivity typedef ::std::map< ::rtl::OUString, ::com::sun::star::uno::Reference< ::com::sun::star::container::XNamed>, comphelper::UStringMixLess > OContainer; + typedef ::std::map TRowPositionsInFile; class OFlatTable : public OFlatTable_BASE { // maps a row postion to a file position - ::std::map m_aRowToFilePos; + TRowPositionsInFile m_aFilePosToEndLinePos; + ::std::map + m_aRowPosToFilePos; ::std::vector m_aTypes; // holds all type for columns just to avoid to ask the propertyset ::std::vector m_aPrecisions; // same as aboth ::std::vector m_aScales; QuotedTokenizedString m_aCurrentLine; ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > m_xNumberFormatter; + ::com::sun::star::util::Date m_aNullDate; + sal_Int32 m_nStartRowFilePos; sal_Int32 m_nRowPos; sal_Int32 m_nMaxRowCount; // will be set if stream is once eof + sal_Unicode m_cStringDelimiter; // delimiter for strings m_cStringDelimiter blabla m_cStringDelimiter + sal_Unicode m_cFieldDelimiter; // look at the name + bool m_bNeedToReadLine; private: void fillColumns(const ::com::sun::star::lang::Locale& _aLocale); BOOL CreateFile(const INetURLObject& aFile, BOOL& bCreateMemo); sal_Bool readLine(sal_Int32& _rnCurrentPos); - - sal_Bool checkHeaderLine(); public: virtual void refreshColumns(); diff --git a/connectivity/source/inc/java/io/InputStream.hxx b/connectivity/source/inc/java/io/InputStream.hxx index 57d488918f..368b48fa2f 100644 --- a/connectivity/source/inc/java/io/InputStream.hxx +++ b/connectivity/source/inc/java/io/InputStream.hxx @@ -46,11 +46,9 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); virtual ~java_io_InputStream(); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_io_InputStream( JNIEnv * pEnv, jobject myObj ); // XInputStream diff --git a/connectivity/source/inc/java/io/Reader.hxx b/connectivity/source/inc/java/io/Reader.hxx index 9117fd9519..c8f68c5acc 100644 --- a/connectivity/source/inc/java/io/Reader.hxx +++ b/connectivity/source/inc/java/io/Reader.hxx @@ -46,11 +46,9 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); virtual ~java_io_Reader(); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_io_Reader( JNIEnv * pEnv, jobject myObj ); diff --git a/connectivity/source/inc/java/lang/Boolean.hxx b/connectivity/source/inc/java/lang/Boolean.hxx index 494622f3b8..9bc7dc7d61 100644 --- a/connectivity/source/inc/java/lang/Boolean.hxx +++ b/connectivity/source/inc/java/lang/Boolean.hxx @@ -41,10 +41,8 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; virtual ~java_lang_Boolean(); // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_lang_Boolean( JNIEnv * pEnv, jobject myObj ) : java_lang_Object( pEnv, myObj ){} diff --git a/connectivity/source/inc/java/lang/Class.hxx b/connectivity/source/inc/java/lang/Class.hxx index fa86a8b1a4..77a8015bc8 100644 --- a/connectivity/source/inc/java/lang/Class.hxx +++ b/connectivity/source/inc/java/lang/Class.hxx @@ -41,18 +41,13 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; virtual ~java_lang_Class(); // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_lang_Class( JNIEnv * pEnv, jobject myObj ) : java_lang_Object( pEnv, myObj ){} static java_lang_Class * forName( const ::rtl::OUString &_par0 ); - sal_Bool isAssignableFrom( java_lang_Class * _par0 ); - java_lang_Object * newInstance(); - ::rtl::OUString getName(); // return the jre object jobject newInstanceObject(); diff --git a/connectivity/source/inc/java/lang/Exception.hxx b/connectivity/source/inc/java/lang/Exception.hxx index 26ac3f1129..15c2df6089 100644 --- a/connectivity/source/inc/java/lang/Exception.hxx +++ b/connectivity/source/inc/java/lang/Exception.hxx @@ -42,10 +42,8 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; virtual ~java_lang_Exception(); // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_lang_Exception( JNIEnv * pEnv, jobject myObj ) : java_lang_Throwable( pEnv, myObj ){} diff --git a/connectivity/source/inc/java/lang/Object.hxx b/connectivity/source/inc/java/lang/Object.hxx index ea6ee3f900..95fa5b9f71 100644 --- a/connectivity/source/inc/java/lang/Object.hxx +++ b/connectivity/source/inc/java/lang/Object.hxx @@ -40,6 +40,7 @@ #include #include #include +#include #include //===================================================================== @@ -65,6 +66,7 @@ namespace connectivity { jvmaccess::VirtualMachine::AttachGuard m_aGuard; SDBThreadAttach(SDBThreadAttach&); + SDBThreadAttach& operator= (SDBThreadAttach&); public: SDBThreadAttach(); ~SDBThreadAttach(); @@ -82,14 +84,14 @@ namespace connectivity } }; //===================================================================== + //===================================================================== class java_lang_Class; class java_lang_Object { // Zuweisungsoperator und Copy Konstruktor sind verboten - java_lang_Object& operator = (java_lang_Object&) { return *this;}; - java_lang_Object(java_lang_Object&) {}; + java_lang_Object& operator= (java_lang_Object&); + java_lang_Object(java_lang_Object&); - static jclass getMyClass(); // nur zum Zerstoeren des C++ Pointers in vom JSbxObject // abgeleiteten Java Objekten ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory; @@ -102,6 +104,8 @@ namespace connectivity // neu in SJ2: static jclass theClass; // die Klasse braucht nur einmal angefordert werden ! + virtual jclass getMyClass() const; + public: // der Konstruktor, der fuer die abgeleiteten Klassen verwendet // werden soll. @@ -130,6 +134,45 @@ namespace connectivity ); static ::rtl::Reference< jvmaccess::VirtualMachine > getVM(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory=NULL); + + static jclass findMyClass(const char* _pClassName); + void obtainMethodId(JNIEnv* _pEnv, const char* _pMethodName, const char* _pSignature, jmethodID& _inout_MethodID) const; + + sal_Bool callBooleanMethod( const char* _pMethodName, jmethodID& _inout_MethodID ) const; + sal_Bool callBooleanMethodWithIntArg( const char* _pMethodName, jmethodID& _inout_MethodID, sal_Int32 _nArgument ) const; + jobject callResultSetMethod( JNIEnv& _rEnv, const char* _pMethodName, jmethodID& _inout_MethodID ) const; + sal_Int32 callIntMethod( const char* _pMethodName, jmethodID& _inout_MethodID,bool _bIgnoreException = false ) const; + sal_Int32 callIntMethodWithIntArg( const char* _pMethodName, jmethodID& _inout_MethodID, sal_Int32 _nArgument ) const; + sal_Int32 callIntMethodWithStringArg( const char* _pMethodName, jmethodID& _inout_MethodID,const ::rtl::OUString& _nArgument ) const; + ::rtl::OUString callStringMethod( const char* _pMethodName, jmethodID& _inout_MethodID ) const; + ::rtl::OUString callStringMethodWithIntArg( const char* _pMethodName, jmethodID& _inout_MethodID , sal_Int32 _nArgument) const; + void callVoidMethod( const char* _pMethodName, jmethodID& _inout_MethodID) const; + void callVoidMethodWithIntArg( const char* _pMethodName, jmethodID& _inout_MethodID, sal_Int32 _nArgument,bool _bIgnoreException = false ) const; + void callVoidMethodWithBoolArg( const char* _pMethodName, jmethodID& _inout_MethodID, sal_Int32 _nArgument,bool _bIgnoreException = false ) const; + void callVoidMethodWithStringArg( const char* _pMethodName, jmethodID& _inout_MethodID, const ::rtl::OUString& _nArgument ) const; + jobject callObjectMethod( JNIEnv * pEnv, const char* _pMethodName, const char* _pSignature, jmethodID& _inout_MethodID ) const; + jobject callObjectMethodWithIntArg( JNIEnv * pEnv, const char* _pMethodName, const char* _pSignature, jmethodID& _inout_MethodID , sal_Int32 _nArgument) const; + + template< typename T > + T callMethodWithIntArg(T (JNIEnv::*pCallMethod)( jobject obj, jmethodID methodID, ... ) ,const char* _pMethodName, const char* _pSignature, jmethodID& _inout_MethodID , sal_Int32 _nArgument) const + { + SDBThreadAttach t; + obtainMethodId(t.pEnv, _pMethodName,_pSignature, _inout_MethodID); + T out = (t.pEnv->*pCallMethod)( object, _inout_MethodID,_nArgument); + ThrowSQLException( t.pEnv, NULL ); + return out; + } + + template< typename T > + void callVoidMethod(const char* _pMethodName, const char* _pSignature, jmethodID& _inout_MethodID,sal_Int32 _nArgument, const T& _aValue) const + { + SDBThreadAttach t; + obtainMethodId(t.pEnv, _pMethodName,_pSignature, _inout_MethodID); + t.pEnv->CallVoidMethod( object, _inout_MethodID,_nArgument,_aValue); + ThrowSQLException( t.pEnv, NULL ); + } + + }; } #endif //_CONNECTIVITY_JAVA_LANG_OBJJECT_HXX_ diff --git a/connectivity/source/inc/java/lang/String.hxx b/connectivity/source/inc/java/lang/String.hxx index 0cc44ad9f1..1c8443e736 100644 --- a/connectivity/source/inc/java/lang/String.hxx +++ b/connectivity/source/inc/java/lang/String.hxx @@ -39,16 +39,16 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; virtual ~java_lang_String(); // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_lang_String( JNIEnv * pEnv, jobject myObj ) : java_lang_Object( pEnv, myObj ){} java_lang_String( const ::rtl::OUString& _par0 ); operator ::rtl::OUString(); + + static jclass st_getMyClass(); }; } diff --git a/connectivity/source/inc/java/lang/Throwable.hxx b/connectivity/source/inc/java/lang/Throwable.hxx index 0b64e11d22..360d1aa7d3 100644 --- a/connectivity/source/inc/java/lang/Throwable.hxx +++ b/connectivity/source/inc/java/lang/Throwable.hxx @@ -42,16 +42,15 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; virtual ~java_lang_Throwable(); // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_lang_Throwable( JNIEnv * pEnv, jobject myObj ) : java_lang_Object( pEnv, myObj ){} ::rtl::OUString getMessage() const; ::rtl::OUString getLocalizedMessage() const; - virtual ::rtl::OUString toString() const; + + static jclass st_getMyClass(); }; } #endif // _CONNECTIVITY_JAVA_LANG_THROWABLE_HXX_ diff --git a/connectivity/source/inc/java/math/BigDecimal.hxx b/connectivity/source/inc/java/math/BigDecimal.hxx index 191f781ef2..00f5673e4a 100644 --- a/connectivity/source/inc/java/math/BigDecimal.hxx +++ b/connectivity/source/inc/java/math/BigDecimal.hxx @@ -40,10 +40,8 @@ namespace connectivity { // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; virtual ~java_math_BigDecimal(); // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_math_BigDecimal( JNIEnv * pEnv, jobject myObj ) : java_lang_Object( pEnv, myObj ){} diff --git a/connectivity/source/inc/java/sql/Array.hxx b/connectivity/source/inc/java/sql/Array.hxx index 7928070648..a6d1cf695b 100644 --- a/connectivity/source/inc/java/sql/Array.hxx +++ b/connectivity/source/inc/java/sql/Array.hxx @@ -46,10 +46,8 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; virtual ~java_sql_Array(); // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_sql_Array( JNIEnv * pEnv, jobject myObj ) : java_lang_Object( pEnv, myObj ){} diff --git a/connectivity/source/inc/java/sql/Blob.hxx b/connectivity/source/inc/java/sql/Blob.hxx index 246cf43ff0..87375866b1 100644 --- a/connectivity/source/inc/java/sql/Blob.hxx +++ b/connectivity/source/inc/java/sql/Blob.hxx @@ -47,11 +47,9 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); virtual ~java_sql_Blob(); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_sql_Blob( JNIEnv * pEnv, jobject myObj ); diff --git a/connectivity/source/inc/java/sql/CallableStatement.hxx b/connectivity/source/inc/java/sql/CallableStatement.hxx index 3eccc1a0e8..5be7d02577 100644 --- a/connectivity/source/inc/java/sql/CallableStatement.hxx +++ b/connectivity/source/inc/java/sql/CallableStatement.hxx @@ -48,14 +48,12 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); virtual void createStatement(JNIEnv* _pEnv); virtual ~java_sql_CallableStatement(); public: DECLARE_SERVICE_INFO(); - static jclass getMyClass(); + virtual jclass getMyClass() const; // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_sql_CallableStatement( JNIEnv * pEnv, java_sql_Connection& _rCon, const ::rtl::OUString& sql ); diff --git a/connectivity/source/inc/java/sql/Clob.hxx b/connectivity/source/inc/java/sql/Clob.hxx index b8f48e82c5..bcb040f49e 100644 --- a/connectivity/source/inc/java/sql/Clob.hxx +++ b/connectivity/source/inc/java/sql/Clob.hxx @@ -47,11 +47,9 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); virtual ~java_sql_Clob(); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_sql_Clob( JNIEnv * pEnv, jobject myObj ); diff --git a/connectivity/source/inc/java/sql/Connection.hxx b/connectivity/source/inc/java/sql/Connection.hxx index f34ce444c5..55244525da 100644 --- a/connectivity/source/inc/java/sql/Connection.hxx +++ b/connectivity/source/inc/java/sql/Connection.hxx @@ -84,13 +84,11 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); virtual ~java_sql_Connection(); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; DECLARE_SERVICE_INFO(); // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: diff --git a/connectivity/source/inc/java/sql/DatabaseMetaData.hxx b/connectivity/source/inc/java/sql/DatabaseMetaData.hxx index 6388833303..90420ba6f5 100644 --- a/connectivity/source/inc/java/sql/DatabaseMetaData.hxx +++ b/connectivity/source/inc/java/sql/DatabaseMetaData.hxx @@ -50,11 +50,9 @@ namespace connectivity // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; virtual ~java_sql_DatabaseMetaData(); // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_sql_DatabaseMetaData( JNIEnv * pEnv, jobject myObj, java_sql_Connection& _rConnection ); diff --git a/connectivity/source/inc/java/sql/DriverManager.hxx b/connectivity/source/inc/java/sql/DriverManager.hxx deleted file mode 100644 index 083ae8fc17..0000000000 --- a/connectivity/source/inc/java/sql/DriverManager.hxx +++ /dev/null @@ -1,66 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: DriverManager.hxx,v $ - * $Revision: 1.3 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef _CONNECTIVITY_JAVA_SQL_DRIVERMANAGER_HXX_ -#define _CONNECTIVITY_JAVA_SQL_DRIVERMANAGER_HXX_ - -#include "java/lang/Object.hxx" - -namespace connectivity -{ - class java_sql_Driver; - class java_sql_Connection; - // class java_util_Properties; - //************************************************************** - //************ Class: java.sql.DriverManager - //************************************************************** - class java_sql_DriverManager : public java_lang_Object - { - protected: - // statische Daten fuer die Klasse - static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); - public: - static jclass getMyClass(); - virtual ~java_sql_DriverManager(); - // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: - java_sql_DriverManager( JNIEnv * pEnv, jobject myObj ) : java_lang_Object( pEnv, myObj ){} - - static jobject getDriver(const ::rtl::OUString &url); - - // static java_sql_Connection * getConnection( const ::rtl::OUString* _par0 ); - // static java_sql_Connection * getConnection( const String* _par0, java_util_Properties * _par1 ); - // static java_sql_Connection * getConnection( const String* _par0, const String* _par1, const String* _par2 ); - // static java_util_Enumeration * getDrivers(); - static void setLoginTimeout(sal_Int32 _par0); - }; -} -#endif // _CONNECTIVITY_JAVA_SQL_DRIVERMANAGER_HXX_ - diff --git a/connectivity/source/inc/java/sql/DriverPropertyInfo.hxx b/connectivity/source/inc/java/sql/DriverPropertyInfo.hxx index f8a5e69ae1..3301672f8a 100644 --- a/connectivity/source/inc/java/sql/DriverPropertyInfo.hxx +++ b/connectivity/source/inc/java/sql/DriverPropertyInfo.hxx @@ -38,27 +38,25 @@ namespace connectivity { //************************************************************** -//************ Class: java.sql.DriverManager +//************ Class: java.sql.DriverPropertyInfo //************************************************************** class java_sql_DriverPropertyInfo : public java_lang_Object { protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; virtual ~java_sql_DriverPropertyInfo(); // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_sql_DriverPropertyInfo( JNIEnv * pEnv, jobject myObj ) : java_lang_Object( pEnv, myObj ){} operator ::com::sun::star::sdbc::DriverPropertyInfo(); - ::rtl::OUString name() const; - ::rtl::OUString description() const; - ::rtl::OUString value() const; - sal_Bool required() const; - ::com::sun::star::uno::Sequence< ::rtl::OUString> choices() const; + ::rtl::OUString name(); + ::rtl::OUString description(); + ::rtl::OUString value(); + sal_Bool required(); + ::com::sun::star::uno::Sequence< ::rtl::OUString> choices(); }; } diff --git a/connectivity/source/inc/java/sql/JStatement.hxx b/connectivity/source/inc/java/sql/JStatement.hxx index 4092178e28..1f675ffe1a 100644 --- a/connectivity/source/inc/java/sql/JStatement.hxx +++ b/connectivity/source/inc/java/sql/JStatement.hxx @@ -104,8 +104,6 @@ namespace connectivity // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); // OPropertyArrayUsageHelper virtual ::cppu::IPropertyArrayHelper* createArrayHelper( ) const; @@ -133,8 +131,11 @@ namespace connectivity virtual ~java_sql_Statement_Base(); + sal_Int32 impl_getProperty(const char* _pMethodName, jmethodID& _inout_MethodID); + sal_Int32 impl_getProperty(const char* _pMethodName, jmethodID& _inout_MethodID,sal_Int32 _nDefault); + public: - static jclass getMyClass(); + virtual jclass getMyClass() const; // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_sql_Statement_Base( JNIEnv * pEnv, java_sql_Connection& _rCon ); @@ -197,15 +198,13 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); virtual void createStatement(JNIEnv* _pEnv); virtual ~java_sql_Statement(); public: DECLARE_SERVICE_INFO(); - static jclass getMyClass(); + virtual jclass getMyClass() const; // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_sql_Statement( JNIEnv * pEnv, java_sql_Connection& _rCon ) : OStatement_BASE2( pEnv, _rCon){}; diff --git a/connectivity/source/inc/java/sql/PreparedStatement.hxx b/connectivity/source/inc/java/sql/PreparedStatement.hxx index b2ff94fc90..2a1429bb9d 100644 --- a/connectivity/source/inc/java/sql/PreparedStatement.hxx +++ b/connectivity/source/inc/java/sql/PreparedStatement.hxx @@ -54,14 +54,12 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); virtual void createStatement(JNIEnv* _pEnv); virtual ~java_sql_PreparedStatement(); public: DECLARE_SERVICE_INFO(); - static jclass getMyClass(); + virtual jclass getMyClass() const; // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_sql_PreparedStatement( JNIEnv * pEnv, java_sql_Connection& _rCon,const ::rtl::OUString& sql ); diff --git a/connectivity/source/inc/java/sql/Ref.hxx b/connectivity/source/inc/java/sql/Ref.hxx index aa9cc0972e..e52e4dc971 100644 --- a/connectivity/source/inc/java/sql/Ref.hxx +++ b/connectivity/source/inc/java/sql/Ref.hxx @@ -46,11 +46,9 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); virtual ~java_sql_Ref(); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_sql_Ref( JNIEnv * pEnv, jobject myObj ); diff --git a/connectivity/source/inc/java/sql/ResultSet.hxx b/connectivity/source/inc/java/sql/ResultSet.hxx index f96b27e45b..f1b2d7857d 100644 --- a/connectivity/source/inc/java/sql/ResultSet.hxx +++ b/connectivity/source/inc/java/sql/ResultSet.hxx @@ -87,8 +87,6 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); // OPropertyArrayUsageHelper virtual ::cppu::IPropertyArrayHelper* createArrayHelper( ) const; @@ -113,7 +111,7 @@ namespace connectivity virtual ~java_sql_ResultSet(); public: DECLARE_SERVICE_INFO(); - static jclass getMyClass(); + virtual jclass getMyClass() const; // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_sql_ResultSet( JNIEnv * pEnv, jobject myObj, const java::sql::ConnectionLog& _rParentLogger,java_sql_Connection& _rConnection, java_sql_Statement_Base* pStmt = NULL ); diff --git a/connectivity/source/inc/java/sql/ResultSetMetaData.hxx b/connectivity/source/inc/java/sql/ResultSetMetaData.hxx index f62b0701c3..84b799628b 100644 --- a/connectivity/source/inc/java/sql/ResultSetMetaData.hxx +++ b/connectivity/source/inc/java/sql/ResultSetMetaData.hxx @@ -47,14 +47,13 @@ namespace connectivity protected: java::sql::ConnectionLog m_aLogger; java_sql_Connection* m_pConnection; + sal_Int32 m_nColumnCount; // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); virtual ~java_sql_ResultSetMetaData(); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_sql_ResultSetMetaData( JNIEnv * pEnv, jobject myObj, const java::sql::ConnectionLog& _rResultSetLogger, java_sql_Connection& _rCon ); diff --git a/connectivity/source/inc/java/sql/SQLException.hxx b/connectivity/source/inc/java/sql/SQLException.hxx index fba0831672..f867394c45 100644 --- a/connectivity/source/inc/java/sql/SQLException.hxx +++ b/connectivity/source/inc/java/sql/SQLException.hxx @@ -53,10 +53,8 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; virtual ~java_sql_SQLException_BASE(); // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_sql_SQLException_BASE( JNIEnv * pEnv, jobject myObj ); @@ -64,6 +62,8 @@ namespace connectivity ::rtl::OUString getSQLState() const; sal_Int32 getErrorCode() const; starsdbc::SQLException getNextException() const; + + static jclass st_getMyClass(); }; } diff --git a/connectivity/source/inc/java/sql/SQLWarning.hxx b/connectivity/source/inc/java/sql/SQLWarning.hxx index 088fb12efc..0606befa89 100644 --- a/connectivity/source/inc/java/sql/SQLWarning.hxx +++ b/connectivity/source/inc/java/sql/SQLWarning.hxx @@ -48,10 +48,8 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; virtual ~java_sql_SQLWarning_BASE(); // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_sql_SQLWarning_BASE( JNIEnv * pEnv, jobject myObj ) : java_sql_SQLException_BASE( pEnv, myObj ){} diff --git a/connectivity/source/inc/java/sql/Timestamp.hxx b/connectivity/source/inc/java/sql/Timestamp.hxx index 242eca7651..2af09c2f02 100644 --- a/connectivity/source/inc/java/sql/Timestamp.hxx +++ b/connectivity/source/inc/java/sql/Timestamp.hxx @@ -46,10 +46,8 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; virtual ~java_sql_Date(); // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_sql_Date( JNIEnv * pEnv, jobject myObj ) : java_util_Date(pEnv,myObj){} @@ -68,10 +66,8 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; virtual ~java_sql_Time(); // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_sql_Time( JNIEnv * pEnv, jobject myObj ) : java_util_Date( pEnv, myObj ){} @@ -87,10 +83,8 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; virtual ~java_sql_Timestamp(); // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_sql_Timestamp( JNIEnv * pEnv, jobject myObj ) : java_util_Date( pEnv, myObj ){} diff --git a/connectivity/source/inc/java/util/Date.hxx b/connectivity/source/inc/java/util/Date.hxx index 4bc7ad1a5f..201784aa72 100644 --- a/connectivity/source/inc/java/util/Date.hxx +++ b/connectivity/source/inc/java/util/Date.hxx @@ -46,10 +46,8 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; virtual ~java_util_Date(); // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_util_Date( JNIEnv * pEnv, jobject myObj ) : java_lang_Object( pEnv, myObj ){} diff --git a/connectivity/source/inc/java/util/Property.hxx b/connectivity/source/inc/java/util/Property.hxx index 3abb8b070a..ba3af22952 100644 --- a/connectivity/source/inc/java/util/Property.hxx +++ b/connectivity/source/inc/java/util/Property.hxx @@ -39,10 +39,8 @@ namespace connectivity protected: // statische Daten fuer die Klasse static jclass theClass; - // der Destruktor um den Object-Counter zu aktualisieren - static void saveClassRef( jclass pClass ); public: - static jclass getMyClass(); + virtual jclass getMyClass() const; virtual ~java_util_Properties(); // ein Konstruktor, der fuer das Returnen des Objektes benoetigt wird: java_util_Properties( JNIEnv * pEnv, jobject myObj ) : java_lang_Object( pEnv, myObj ){} diff --git a/connectivity/source/parse/sqliterator.cxx b/connectivity/source/parse/sqliterator.cxx index 8f30460e43..40e1c04859 100644 --- a/connectivity/source/parse/sqliterator.cxx +++ b/connectivity/source/parse/sqliterator.cxx @@ -51,6 +51,7 @@ #include #include #include "diagnose_ex.h" +#include using namespace ::comphelper; using namespace ::connectivity; @@ -150,6 +151,7 @@ OSQLParseTreeIterator::OSQLParseTreeIterator(const Reference< XConnection >& _rx :m_rParser( _rParser ) ,m_pImpl( new OSQLParseTreeIteratorImpl( _rxConnection, _rxTables ) ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::OSQLParseTreeIterator" ); setParseTree(pRoot); } @@ -158,6 +160,7 @@ OSQLParseTreeIterator::OSQLParseTreeIterator( const OSQLParseTreeIterator& _rPar :m_rParser( _rParser ) ,m_pImpl( new OSQLParseTreeIteratorImpl( _rParentIterator.m_pImpl->m_xConnection, _rParentIterator.m_pImpl->m_xTableContainer ) ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::OSQLParseTreeIterator" ); m_pImpl->m_pForbiddenQueryNames = _rParentIterator.m_pImpl->m_pForbiddenQueryNames; setParseTree( pRoot ); } @@ -171,18 +174,21 @@ OSQLParseTreeIterator::~OSQLParseTreeIterator() // ----------------------------------------------------------------------------- const OSQLTables& OSQLParseTreeIterator::getTables() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::getTables" ); return *m_pImpl->m_pTables; } // ----------------------------------------------------------------------------- bool OSQLParseTreeIterator::isCaseSensitive() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::isCaseSensitive" ); return m_pImpl->m_bIsCaseSensitive; } // ----------------------------------------------------------------------------- void OSQLParseTreeIterator::dispose() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::dispose" ); m_aSelectColumns = NULL; m_aGroupColumns = NULL; m_aOrderColumns = NULL; @@ -196,6 +202,7 @@ void OSQLParseTreeIterator::dispose() //----------------------------------------------------------------------------- void OSQLParseTreeIterator::setParseTree(const OSQLParseNode * pNewParseTree) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::setParseTree" ); m_pImpl->m_pTables->clear(); m_pImpl->m_pSubTables->clear(); @@ -314,6 +321,7 @@ namespace //----------------------------------------------------------------------------- void OSQLParseTreeIterator::impl_getQueryParameterColumns( const OSQLTable& _rQuery ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::impl_getQueryParameterColumns" ); if ( ( m_pImpl->m_nIncludeMask & Parameters ) != Parameters ) // parameters not to be included in the traversal return; @@ -362,6 +370,7 @@ void OSQLParseTreeIterator::impl_getQueryParameterColumns( const OSQLTable& _rQu //----------------------------------------------------------------------------- OSQLTable OSQLParseTreeIterator::impl_locateRecordSource( const ::rtl::OUString& _rComposedName ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::impl_locateRecordSource" ); if ( !_rComposedName.getLength() ) { OSL_ENSURE( false, "OSQLParseTreeIterator::impl_locateRecordSource: no object name at all?" ); @@ -439,6 +448,7 @@ OSQLTable OSQLParseTreeIterator::impl_locateRecordSource( const ::rtl::OUString& //----------------------------------------------------------------------------- void OSQLParseTreeIterator::traverseOneTableName( OSQLTables& _rTables,const OSQLParseNode * pTableName, const ::rtl::OUString & rTableRange ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::traverseOneTableName" ); if ( ( m_pImpl->m_nIncludeMask & TableNames ) != TableNames ) // tables should not be included in the traversal return; @@ -473,6 +483,7 @@ void OSQLParseTreeIterator::traverseOneTableName( OSQLTables& _rTables,const OSQ //----------------------------------------------------------------------------- void OSQLParseTreeIterator::getQualified_join( OSQLTables& _rTables, const OSQLParseNode *pTableRef, ::rtl::OUString& aTableRange ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::getQualified_join" ); OSL_PRECOND( SQL_ISRULE( pTableRef, cross_union ) || SQL_ISRULE( pTableRef, qualified_join ) , "OSQLParseTreeIterator::getQualified_join: illegal node!" ); @@ -493,6 +504,7 @@ void OSQLParseTreeIterator::getQualified_join( OSQLTables& _rTables, const OSQLP //----------------------------------------------------------------------------- const OSQLParseNode* OSQLParseTreeIterator::getTableNode( OSQLTables& _rTables, const OSQLParseNode *pTableRef,::rtl::OUString& rTableRange ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::getTableNode" ); OSL_PRECOND( SQL_ISRULE( pTableRef, table_ref ) || SQL_ISRULE( pTableRef, joined_table ) || SQL_ISRULE( pTableRef, qualified_join ) || SQL_ISRULE( pTableRef, cross_union ), "OSQLParseTreeIterator::getTableNode: only to be called for table_ref nodes!" ); @@ -550,6 +562,7 @@ const OSQLParseNode* OSQLParseTreeIterator::getTableNode( OSQLTables& _rTables, //----------------------------------------------------------------------------- void OSQLParseTreeIterator::getSelect_statement(OSQLTables& _rTables,const OSQLParseNode* pSelect) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::getSelect_statement" ); if(SQL_ISRULE(pSelect,union_statement)) { getSelect_statement(_rTables,pSelect->getChild(0)); @@ -605,6 +618,7 @@ void OSQLParseTreeIterator::getSelect_statement(OSQLTables& _rTables,const OSQLP //----------------------------------------------------------------------------- bool OSQLParseTreeIterator::traverseTableNames(OSQLTables& _rTables) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::traverseTableNames" ); if ( m_pParseTree == NULL ) return false; @@ -640,6 +654,7 @@ bool OSQLParseTreeIterator::traverseTableNames(OSQLTables& _rTables) //----------------------------------------------------------------------------- ::rtl::OUString OSQLParseTreeIterator::getColumnAlias(const OSQLParseNode* _pDerivedColumn) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::getColumnAlias" ); OSL_ENSURE(SQL_ISRULE(_pDerivedColumn,derived_column),"No derived column!"); ::rtl::OUString sColumnAlias; if(_pDerivedColumn->getChild(1)->count() == 2) @@ -706,6 +721,7 @@ void OSQLParseTreeIterator::getColumnRange( const OSQLParseNode* _pColumnRef, ::rtl::OUString& _rColumnName, ::rtl::OUString& _rTableRange) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::getColumnRange" ); ::rtl::OUString sDummy; lcl_getColumnRange( _pColumnRef, m_pImpl->m_xConnection, _rColumnName, _rTableRange, NULL, sDummy ); } @@ -716,6 +732,7 @@ void OSQLParseTreeIterator::getColumnRange( const OSQLParseNode* _pColumnRef, ::rtl::OUString& _rTableRange, ::rtl::OUString& _out_rColumnAliasIfPresent ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::getColumnRange" ); lcl_getColumnRange( _pColumnRef, m_pImpl->m_xConnection, _rColumnName, _rTableRange, &*m_aSelectColumns, _out_rColumnAliasIfPresent ); } @@ -723,6 +740,7 @@ void OSQLParseTreeIterator::getColumnRange( const OSQLParseNode* _pColumnRef, void OSQLParseTreeIterator::getColumnRange( const OSQLParseNode* _pColumnRef, const Reference< XConnection >& _rxConnection, ::rtl::OUString& _out_rColumnName, ::rtl::OUString& _out_rTableRange ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::getColumnRange" ); ::rtl::OUString sDummy; lcl_getColumnRange( _pColumnRef, _rxConnection, _out_rColumnName, _out_rTableRange, NULL, sDummy ); } @@ -730,6 +748,7 @@ void OSQLParseTreeIterator::getColumnRange( const OSQLParseNode* _pColumnRef, //----------------------------------------------------------------------------- sal_Bool OSQLParseTreeIterator::getColumnTableRange(const OSQLParseNode* pNode, ::rtl::OUString &rTableRange) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::getColumnTableRange" ); // Ermitteln ob alle Spalten zu einer Tabelle gehoeren if (SQL_ISRULE(pNode,column_ref)) { @@ -785,6 +804,7 @@ sal_Bool OSQLParseTreeIterator::getColumnTableRange(const OSQLParseNode* pNode, //----------------------------------------------------------------------------- void OSQLParseTreeIterator::traverseCreateColumns(const OSQLParseNode* pSelectNode) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::traverseCreateColumns" ); // aIteratorStatus.Clear(); if (!pSelectNode || m_eStatementType != SQL_STATEMENT_CREATE_TABLE || m_pImpl->m_pTables->empty()) @@ -845,6 +865,7 @@ void OSQLParseTreeIterator::traverseCreateColumns(const OSQLParseNode* pSelectNo //----------------------------------------------------------------------------- bool OSQLParseTreeIterator::traverseSelectColumnNames(const OSQLParseNode* pSelectNode) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::traverseSelectColumnNames" ); if ( ( m_pImpl->m_nIncludeMask & SelectColumns ) != SelectColumns ) return true; @@ -969,12 +990,14 @@ bool OSQLParseTreeIterator::traverseSelectColumnNames(const OSQLParseNode* pSele //----------------------------------------------------------------------------- bool OSQLParseTreeIterator::traverseOrderByColumnNames(const OSQLParseNode* pSelectNode) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::traverseOrderByColumnNames" ); traverseByColumnNames( pSelectNode, sal_True ); return !hasErrors(); } //----------------------------------------------------------------------------- void OSQLParseTreeIterator::traverseByColumnNames(const OSQLParseNode* pSelectNode,sal_Bool _bOrder) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::traverseByColumnNames" ); // aIteratorStatus.Clear(); if (pSelectNode == NULL) @@ -1063,6 +1086,7 @@ void OSQLParseTreeIterator::traverseByColumnNames(const OSQLParseNode* pSelectNo //----------------------------------------------------------------------------- bool OSQLParseTreeIterator::traverseGroupByColumnNames(const OSQLParseNode* pSelectNode) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::traverseGroupByColumnNames" ); traverseByColumnNames( pSelectNode, sal_False ); return !hasErrors(); } @@ -1089,6 +1113,7 @@ namespace // ----------------------------------------------------------------------------- void OSQLParseTreeIterator::traverseParameters(const OSQLParseNode* _pNode) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::traverseParameters" ); if ( _pNode == NULL ) return; @@ -1142,6 +1167,7 @@ void OSQLParseTreeIterator::traverseParameters(const OSQLParseNode* _pNode) //----------------------------------------------------------------------------- bool OSQLParseTreeIterator::traverseSelectionCriteria(const OSQLParseNode* pSelectNode) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::traverseSelectionCriteria" ); if ( pSelectNode == NULL ) return false; @@ -1204,6 +1230,7 @@ bool OSQLParseTreeIterator::traverseSelectionCriteria(const OSQLParseNode* pSele //----------------------------------------------------------------------------- void OSQLParseTreeIterator::traverseORCriteria(OSQLParseNode * pSearchCondition) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::traverseORCriteria" ); if ( @@ -1253,6 +1280,7 @@ void OSQLParseTreeIterator::traverseORCriteria(OSQLParseNode * pSearchCondition) //----------------------------------------------------------------------------- void OSQLParseTreeIterator::traverseANDCriteria(OSQLParseNode * pSearchCondition) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::traverseANDCriteria" ); if ( @@ -1378,6 +1406,7 @@ void OSQLParseTreeIterator::traverseParameter(const OSQLParseNode* _pParseNode ,const ::rtl::OUString& _aTableRange ,const ::rtl::OUString& _rColumnAlias) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::traverseParameter" ); if ( !SQL_ISRULE( _pParseNode, parameter ) ) return; @@ -1488,6 +1517,7 @@ void OSQLParseTreeIterator::traverseOnePredicate( ::rtl::OUString& rValue, OSQLParseNode * pParseNode) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::traverseOnePredicate" ); if ( !pParseNode ) return; @@ -1511,18 +1541,21 @@ void OSQLParseTreeIterator::traverseOnePredicate( //----------------------------------------------------------------------------- void OSQLParseTreeIterator::traverseSome( sal_uInt32 _nIncludeMask ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::traverseSome" ); impl_traverse( _nIncludeMask ); } //----------------------------------------------------------------------------- void OSQLParseTreeIterator::traverseAll() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::traverseAll" ); impl_traverse( All ); } //----------------------------------------------------------------------------- void OSQLParseTreeIterator::impl_traverse( sal_uInt32 _nIncludeMask ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::impl_traverse" ); impl_resetErrors(); m_pImpl->m_nIncludeMask = _nIncludeMask; @@ -1565,6 +1598,7 @@ void OSQLParseTreeIterator::impl_traverse( sal_uInt32 _nIncludeMask ) OSQLTable OSQLParseTreeIterator::impl_createTableObject( const ::rtl::OUString& rTableName, const ::rtl::OUString& rCatalogName, const ::rtl::OUString& rSchemaName ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::impl_createTableObject" ); OSL_PRECOND( m_eStatementType == SQL_STATEMENT_CREATE_TABLE, "OSQLParseTreeIterator::impl_createTableObject: only to be called for CREATE TABLE statements!" ); // (in all other cases, m_pTables is to contain the table objects as obtained from the tables @@ -1584,6 +1618,7 @@ OSQLTable OSQLParseTreeIterator::impl_createTableObject( const ::rtl::OUString& //----------------------------------------------------------------------------- void OSQLParseTreeIterator::appendColumns(::vos::ORef& _rColumns,const ::rtl::OUString& _rTableAlias,const OSQLTable& _rTable) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::appendColumns" ); if (!_rTable.is()) return; @@ -1626,6 +1661,7 @@ void OSQLParseTreeIterator::appendColumns(::vos::ORef& _rColumns,co //----------------------------------------------------------------------------- void OSQLParseTreeIterator::setSelectColumnName(::vos::ORef& _rColumns,const ::rtl::OUString & rColumnName,const ::rtl::OUString & rColumnAlias, const ::rtl::OUString & rTableRange,sal_Bool bFkt,sal_Int32 _nType,sal_Bool bAggFkt) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::setSelectColumnName" ); if(rColumnName.toChar() == '*' && !rTableRange.getLength()) { // SELECT * ... OSL_ENSURE(_rColumns == m_aSelectColumns,"Invalid columns used here!"); @@ -1783,6 +1819,7 @@ void OSQLParseTreeIterator::setSelectColumnName(::vos::ORef& _rColu //----------------------------------------------------------------------------- ::rtl::OUString OSQLParseTreeIterator::getUniqueColumnName(const ::rtl::OUString & rColumnName) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::getUniqueColumnName" ); ::rtl::OUString aAlias(rColumnName); OSQLColumns::Vector::const_iterator aIter = find( @@ -1807,6 +1844,7 @@ void OSQLParseTreeIterator::setSelectColumnName(::vos::ORef& _rColu //----------------------------------------------------------------------------- void OSQLParseTreeIterator::setOrderByColumnName(const ::rtl::OUString & rColumnName, const ::rtl::OUString & rTableRange,sal_Bool bAscending) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::setOrderByColumnName" ); Reference xColumn = findColumn( rColumnName, rTableRange, false ); if ( xColumn.is() ) m_aOrderColumns->get().push_back(new OOrderColumn(xColumn,isCaseSensitive(),bAscending)); @@ -1828,6 +1866,7 @@ void OSQLParseTreeIterator::setOrderByColumnName(const ::rtl::OUString & rColumn //----------------------------------------------------------------------------- void OSQLParseTreeIterator::setGroupByColumnName(const ::rtl::OUString & rColumnName, const ::rtl::OUString & rTableRange) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::setGroupByColumnName" ); Reference xColumn = findColumn( rColumnName, rTableRange, false ); if ( xColumn.is() ) m_aGroupColumns->get().push_back(new OParseColumn(xColumn,isCaseSensitive())); @@ -1850,6 +1889,7 @@ void OSQLParseTreeIterator::setGroupByColumnName(const ::rtl::OUString & rColumn //----------------------------------------------------------------------------- const OSQLParseNode* OSQLParseTreeIterator::getWhereTree() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::getWhereTree" ); if (!m_pParseTree) @@ -1881,6 +1921,7 @@ const OSQLParseNode* OSQLParseTreeIterator::getWhereTree() const //----------------------------------------------------------------------------- const OSQLParseNode* OSQLParseTreeIterator::getOrderTree() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::getOrderTree" ); if (!m_pParseTree || getStatementType() != SQL_STATEMENT_SELECT) @@ -1904,6 +1945,7 @@ const OSQLParseNode* OSQLParseTreeIterator::getOrderTree() const //----------------------------------------------------------------------------- const OSQLParseNode* OSQLParseTreeIterator::getGroupByTree() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::getGroupByTree" ); if (!m_pParseTree || getStatementType() != SQL_STATEMENT_SELECT) return NULL; @@ -1946,6 +1988,7 @@ const OSQLParseNode* OSQLParseTreeIterator::getHavingTree() const // ----------------------------------------------------------------------------- sal_Bool OSQLParseTreeIterator::isTableNode(const OSQLParseNode* _pTableNode) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::isTableNode" ); return _pTableNode && (SQL_ISRULE(_pTableNode,catalog_name) || SQL_ISRULE(_pTableNode,schema_name) || SQL_ISRULE(_pTableNode,table_name)); @@ -1953,24 +1996,28 @@ sal_Bool OSQLParseTreeIterator::isTableNode(const OSQLParseNode* _pTableNode) co // ----------------------------------------------------------------------------- const OSQLParseNode* OSQLParseTreeIterator::getSimpleWhereTree() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::getSimpleWhereTree" ); const OSQLParseNode* pNode = getWhereTree(); return pNode ? pNode->getChild(1) : NULL; } // ----------------------------------------------------------------------------- const OSQLParseNode* OSQLParseTreeIterator::getSimpleOrderTree() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::getSimpleOrderTree" ); const OSQLParseNode* pNode = getOrderTree(); return pNode ? pNode->getChild(2) : NULL; } // ----------------------------------------------------------------------------- const OSQLParseNode* OSQLParseTreeIterator::getSimpleGroupByTree() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::getSimpleGroupByTree" ); const OSQLParseNode* pNode = getGroupByTree(); return pNode ? pNode->getChild(2) : NULL; } // ----------------------------------------------------------------------------- const OSQLParseNode* OSQLParseTreeIterator::getSimpleHavingTree() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::getSimpleHavingTree" ); const OSQLParseNode* pNode = getHavingTree(); return pNode ? pNode->getChild(1) : NULL; } @@ -1978,6 +2025,7 @@ const OSQLParseNode* OSQLParseTreeIterator::getSimpleHavingTree() const // ----------------------------------------------------------------------------- Reference< XPropertySet > OSQLParseTreeIterator::findColumn( const ::rtl::OUString & rColumnName, const ::rtl::OUString & rTableRange, bool _bLookInSubTables ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::findColumn" ); Reference< XPropertySet > xColumn = findColumn( *m_pImpl->m_pTables, rColumnName, rTableRange ); if ( !xColumn.is() && _bLookInSubTables ) xColumn = findColumn( *m_pImpl->m_pSubTables, rColumnName, rTableRange ); @@ -1987,6 +2035,7 @@ Reference< XPropertySet > OSQLParseTreeIterator::findColumn( const ::rtl::OUStri // ----------------------------------------------------------------------------- Reference< XPropertySet > OSQLParseTreeIterator::findColumn(const OSQLTables& _rTables,const ::rtl::OUString & rColumnName, const ::rtl::OUString & rTableRange) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::findColumn" ); Reference< XPropertySet > xColumn; if ( rTableRange.getLength() ) { @@ -2020,6 +2069,7 @@ Reference< XPropertySet > OSQLParseTreeIterator::findColumn(const OSQLTables& _r // ----------------------------------------------------------------------------- void OSQLParseTreeIterator::impl_appendError( IParseContext::ErrorCode _eError, const ::rtl::OUString* _pReplaceToken1, const ::rtl::OUString* _pReplaceToken2 ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::impl_appendError" ); ::rtl::OUString sErrorMessage = m_rParser.getContext().getErrorMessage( _eError ); if ( _pReplaceToken1 ) { @@ -2039,6 +2089,7 @@ void OSQLParseTreeIterator::impl_appendError( IParseContext::ErrorCode _eError, // ----------------------------------------------------------------------------- void OSQLParseTreeIterator::impl_appendError( const SQLException& _rError ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseTreeIterator::impl_appendError" ); if ( m_aErrors.Message.getLength() ) { SQLException* pErrorChain = &m_aErrors; diff --git a/connectivity/source/parse/sqlnode.cxx b/connectivity/source/parse/sqlnode.cxx index ddccee7ee1..e82ad67d82 100644 --- a/connectivity/source/parse/sqlnode.cxx +++ b/connectivity/source/parse/sqlnode.cxx @@ -75,6 +75,7 @@ #include #include #include +#include using namespace ::com::sun::star::sdbc; using namespace ::com::sun::star::util; @@ -198,6 +199,7 @@ SQLParseNodeParameter::~SQLParseNodeParameter() //----------------------------------------------------------------------------- ::rtl::OUString OSQLParseNode::convertDateString(const SQLParseNodeParameter& rParam, const ::rtl::OUString& rString) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::convertDateString" ); Date aDate = DBTypeConversion::toDate(rString); Reference< XNumberFormatsSupplier > xSupplier(rParam.xFormatter->getNumberFormatsSupplier()); Reference< XNumberFormatTypes > xTypes(xSupplier->getNumberFormats(), UNO_QUERY); @@ -210,6 +212,7 @@ SQLParseNodeParameter::~SQLParseNodeParameter() //----------------------------------------------------------------------------- ::rtl::OUString OSQLParseNode::convertDateTimeString(const SQLParseNodeParameter& rParam, const ::rtl::OUString& rString) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::convertDateTimeString" ); DateTime aDate = DBTypeConversion::toDateTime(rString); Reference< XNumberFormatsSupplier > xSupplier(rParam.xFormatter->getNumberFormatsSupplier()); Reference< XNumberFormatTypes > xTypes(xSupplier->getNumberFormats(), UNO_QUERY); @@ -222,6 +225,7 @@ SQLParseNodeParameter::~SQLParseNodeParameter() //----------------------------------------------------------------------------- ::rtl::OUString OSQLParseNode::convertTimeString(const SQLParseNodeParameter& rParam, const ::rtl::OUString& rString) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::convertTimeString" ); Time aTime = DBTypeConversion::toTime(rString); Reference< XNumberFormatsSupplier > xSupplier(rParam.xFormatter->getNumberFormatsSupplier()); @@ -239,6 +243,7 @@ void OSQLParseNode::parseNodeToStr(::rtl::OUString& rString, sal_Bool _bIntl, sal_Bool _bQuote) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::parseNodeToStr" ); parseNodeToStr( rString, _rxConnection, NULL, NULL, @@ -254,6 +259,7 @@ void OSQLParseNode::parseNodeToPredicateStr(::rtl::OUString& rString, sal_Char _cDec, const IParseContext* pContext ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::parseNodeToPredicateStr" ); OSL_ENSURE(xFormatter.is(), "OSQLParseNode::parseNodeToPredicateStr:: no formatter!"); @@ -270,6 +276,7 @@ void OSQLParseNode::parseNodeToPredicateStr(::rtl::OUString& rString, sal_Char _cDec, const IParseContext* pContext ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::parseNodeToPredicateStr" ); OSL_ENSURE(xFormatter.is(), "OSQLParseNode::parseNodeToPredicateStr:: no formatter!"); @@ -290,6 +297,7 @@ void OSQLParseNode::parseNodeToStr(::rtl::OUString& rString, bool _bPredicate, bool _bSubstitute) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::parseNodeToStr" ); OSL_ENSURE( _rxConnection.is(), "OSQLParseNode::parseNodeToStr: invalid connection!" ); @@ -317,6 +325,7 @@ void OSQLParseNode::parseNodeToStr(::rtl::OUString& rString, bool OSQLParseNode::parseNodeToExecutableStatement( ::rtl::OUString& _out_rString, const Reference< XConnection >& _rxConnection, OSQLParser& _rParser, ::com::sun::star::sdbc::SQLException* _pErrorHolder ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::parseNodeToExecutableStatement" ); OSL_PRECOND( _rxConnection.is(), "OSQLParseNode::parseNodeToExecutableStatement: invalid connection!" ); SQLParseNodeParameter aParseParam( _rxConnection, NULL, NULL, OParseContext::getDefaultLocale(), NULL, false, true, '.', false, true ); @@ -358,6 +367,7 @@ namespace //----------------------------------------------------------------------------- void OSQLParseNode::impl_parseNodeToString_throw(::rtl::OUString& rString, const SQLParseNodeParameter& rParam) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::getTableRange" ); if ( isToken() ) { parseLeaf(rString,rParam); @@ -555,6 +565,7 @@ void OSQLParseNode::impl_parseNodeToString_throw(::rtl::OUString& rString, const //----------------------------------------------------------------------------- bool OSQLParseNode::impl_parseTableNameNodeToString_throw( ::rtl::OUString& rString, const SQLParseNodeParameter& rParam ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::impl_parseTableNameNodeToString_throw" ); // is the table_name part of a table_ref? OSL_ENSURE( getParent(), "OSQLParseNode::impl_parseTableNameNodeToString_throw: table_name without parent?" ); if ( !getParent() || ( getParent()->getKnownRuleID() != table_ref ) ) @@ -653,6 +664,7 @@ bool OSQLParseNode::impl_parseTableNameNodeToString_throw( ::rtl::OUString& rStr //----------------------------------------------------------------------------- void OSQLParseNode::impl_parseTableRangeNodeToString_throw(::rtl::OUString& rString, const SQLParseNodeParameter& rParam) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::impl_parseTableRangeNodeToString_throw" ); OSL_PRECOND( ( count() == 2 ) || ( count() == 3 ) || ( count() == 5 ) ,"Illegal count"); // rString += ::rtl::OUString::createFromAscii(" "); @@ -663,6 +675,7 @@ void OSQLParseNode::impl_parseTableRangeNodeToString_throw(::rtl::OUString& rStr //----------------------------------------------------------------------------- void OSQLParseNode::impl_parseLikeNodeToString_throw( ::rtl::OUString& rString, const SQLParseNodeParameter& rParam ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::impl_parseLikeNodeToString_throw" ); OSL_ENSURE(count() >= 4,"count != 5: Prepare for GPF"); const OSQLParseNode* pEscNode = NULL; @@ -727,6 +740,7 @@ sal_Bool OSQLParseNode::getTableComponents(const OSQLParseNode* _pTableNode, ::rtl::OUString &_rSchema, ::rtl::OUString &_rTable) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::getTableComponents" ); OSL_ENSURE(_pTableNode,"Wrong use of getTableComponents! _pTableNode is not allowed to be null!"); if(_pTableNode) { @@ -1447,6 +1461,7 @@ OSQLParser::~OSQLParser() // ----------------------------------------------------------------------------- void OSQLParseNode::substituteParameterNames(OSQLParseNode* _pNode) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::substituteParameterNames" ); sal_Int32 nCount = _pNode->count(); for(sal_Int32 i=0;i < nCount;++i) { @@ -1541,6 +1556,7 @@ OSQLParseNode::OSQLParseNode(const sal_Char * pNewValue, ,m_eNodeType(eNewNodeType) ,m_nNodeID(nNewNodeID) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::OSQLParseNode" ); OSL_ENSURE(m_eNodeType >= SQL_NODE_RULE && m_eNodeType <= SQL_NODE_CONCAT,"OSQLParseNode: mit unzulaessigem NodeType konstruiert"); } @@ -1553,6 +1569,7 @@ OSQLParseNode::OSQLParseNode(const ::rtl::OString &_rNewValue, ,m_eNodeType(eNewNodeType) ,m_nNodeID(nNewNodeID) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::OSQLParseNode" ); OSL_ENSURE(m_eNodeType >= SQL_NODE_RULE && m_eNodeType <= SQL_NODE_CONCAT,"OSQLParseNode: mit unzulaessigem NodeType konstruiert"); } @@ -1565,6 +1582,7 @@ OSQLParseNode::OSQLParseNode(const sal_Unicode * pNewValue, ,m_eNodeType(eNewNodeType) ,m_nNodeID(nNewNodeID) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::OSQLParseNode" ); OSL_ENSURE(m_eNodeType >= SQL_NODE_RULE && m_eNodeType <= SQL_NODE_CONCAT,"OSQLParseNode: mit unzulaessigem NodeType konstruiert"); } @@ -1577,12 +1595,14 @@ OSQLParseNode::OSQLParseNode(const ::rtl::OUString &_rNewValue, ,m_eNodeType(eNewNodeType) ,m_nNodeID(nNewNodeID) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::OSQLParseNode" ); OSL_ENSURE(m_eNodeType >= SQL_NODE_RULE && m_eNodeType <= SQL_NODE_CONCAT,"OSQLParseNode: mit unzulaessigem NodeType konstruiert"); } //----------------------------------------------------------------------------- OSQLParseNode::OSQLParseNode(const OSQLParseNode& rParseNode) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::OSQLParseNode" ); // klemm den getParent auf NULL m_pParent = NULL; @@ -1659,6 +1679,7 @@ OSQLParseNode::~OSQLParseNode() //----------------------------------------------------------------------------- void OSQLParseNode::append(OSQLParseNode* pNewNode) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::append" ); OSL_ENSURE(pNewNode != NULL, "OSQLParseNode: ungueltiger NewSubTree"); OSL_ENSURE(pNewNode->getParent() == NULL, "OSQLParseNode: Knoten ist kein Waise"); @@ -1673,6 +1694,7 @@ void OSQLParseNode::append(OSQLParseNode* pNewNode) // ----------------------------------------------------------------------------- sal_Bool OSQLParseNode::addDateValue(::rtl::OUString& rString, const SQLParseNodeParameter& rParam) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::addDateValue" ); // special display for date/time values if (SQL_ISRULE(this,set_fct_spec) && SQL_ISPUNCTUATION(m_aChilds[0],"{")) { @@ -1734,6 +1756,7 @@ sal_Bool OSQLParseNode::addDateValue(::rtl::OUString& rString, const SQLParseNod // ----------------------------------------------------------------------------- void OSQLParseNode::replaceNodeValue(const ::rtl::OUString& rTableAlias,const ::rtl::OUString& rColumnName) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::replaceNodeValue" ); for (sal_uInt32 i=0;igetTokenValue() == rColumnName) @@ -1750,6 +1773,7 @@ void OSQLParseNode::replaceNodeValue(const ::rtl::OUString& rTableAlias,const :: //----------------------------------------------------------------------------- OSQLParseNode* OSQLParseNode::getByRule(OSQLParseNode::Rule eRule) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::getByRule" ); OSQLParseNode* pRetNode = 0; if (isRule() && OSQLParser::RuleID(eRule) == getRuleID()) pRetNode = (OSQLParseNode*)this; @@ -1782,6 +1806,7 @@ OSQLParseNode* MakeORNode(OSQLParseNode *pLeftLeaf,OSQLParseNode *pRightLeaf) //----------------------------------------------------------------------------- void OSQLParseNode::disjunctiveNormalForm(OSQLParseNode*& pSearchCondition) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::disjunctiveNormalForm" ); if(!pSearchCondition) // no where condition at entry point return; @@ -1858,6 +1883,7 @@ void OSQLParseNode::disjunctiveNormalForm(OSQLParseNode*& pSearchCondition) //----------------------------------------------------------------------------- void OSQLParseNode::negateSearchCondition(OSQLParseNode*& pSearchCondition,sal_Bool bNegate) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::negateSearchCondition" ); if(!pSearchCondition) // no where condition at entry point return; // '(' search_condition ')' @@ -1993,6 +2019,7 @@ void OSQLParseNode::negateSearchCondition(OSQLParseNode*& pSearchCondition,sal_B //----------------------------------------------------------------------------- void OSQLParseNode::eraseBraces(OSQLParseNode*& pSearchCondition) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::eraseBraces" ); if (pSearchCondition && (SQL_ISRULE(pSearchCondition,boolean_primary) || (pSearchCondition->count() == 3 && SQL_ISPUNCTUATION(pSearchCondition->getChild(0),"(") && SQL_ISPUNCTUATION(pSearchCondition->getChild(2),")")))) { @@ -2011,6 +2038,7 @@ void OSQLParseNode::eraseBraces(OSQLParseNode*& pSearchCondition) //----------------------------------------------------------------------------- void OSQLParseNode::absorptions(OSQLParseNode*& pSearchCondition) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::absorptions" ); if(!pSearchCondition) // no where condition at entry point return; @@ -2108,6 +2136,7 @@ void OSQLParseNode::absorptions(OSQLParseNode*& pSearchCondition) //----------------------------------------------------------------------------- void OSQLParseNode::compress(OSQLParseNode *&pSearchCondition) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::compress" ); if(!pSearchCondition) // no where condition at entry point return; @@ -2213,6 +2242,7 @@ void OSQLParseNode::compress(OSQLParseNode *&pSearchCondition) // ----------------------------------------------------------------------------- void OSQLParseNode::showParseTree(::rtl::OUString& rString, sal_uInt32 nLevel) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::showParseTree" ); if (!isToken()) { @@ -2300,6 +2330,7 @@ void OSQLParseNode::showParseTree(::rtl::OUString& rString, sal_uInt32 nLevel) //----------------------------------------------------------------------------- void OSQLParseNode::insert(sal_uInt32 nPos, OSQLParseNode* pNewSubTree) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::insert" ); OSL_ENSURE(pNewSubTree != NULL, "OSQLParseNode: ungueltiger NewSubTree"); OSL_ENSURE(pNewSubTree->getParent() == NULL, "OSQLParseNode: Knoten ist kein Waise"); @@ -2312,6 +2343,7 @@ void OSQLParseNode::insert(sal_uInt32 nPos, OSQLParseNode* pNewSubTree) //----------------------------------------------------------------------------- OSQLParseNode* OSQLParseNode::removeAt(sal_uInt32 nPos) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::removeAt" ); OSL_ENSURE(nPos < m_aChilds.size(),"Illegal position for removeAt"); OSQLParseNodes::iterator aPos(m_aChilds.begin() + nPos); OSQLParseNode* pNode = *aPos; @@ -2325,6 +2357,7 @@ OSQLParseNode* OSQLParseNode::removeAt(sal_uInt32 nPos) //----------------------------------------------------------------------------- OSQLParseNode* OSQLParseNode::remove(OSQLParseNode* pSubTree) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::remove" ); OSL_ENSURE(pSubTree != NULL, "OSQLParseNode: ungueltiger SubTree"); OSQLParseNodes::iterator aPos = ::std::find(m_aChilds.begin(), m_aChilds.end(), pSubTree); if (aPos != m_aChilds.end()) @@ -2342,6 +2375,7 @@ OSQLParseNode* OSQLParseNode::remove(OSQLParseNode* pSubTree) //----------------------------------------------------------------------------- OSQLParseNode* OSQLParseNode::replaceAt(sal_uInt32 nPos, OSQLParseNode* pNewSubNode) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::replaceAt" ); OSL_ENSURE(pNewSubNode != NULL, "OSQLParseNode: invalid nodes"); OSL_ENSURE(pNewSubNode->getParent() == NULL, "OSQLParseNode: node already has getParent"); OSL_ENSURE(nPos < m_aChilds.size(), "OSQLParseNode: invalid position"); @@ -2361,6 +2395,7 @@ OSQLParseNode* OSQLParseNode::replaceAt(sal_uInt32 nPos, OSQLParseNode* pNewSubN //----------------------------------------------------------------------------- OSQLParseNode* OSQLParseNode::replace (OSQLParseNode* pOldSubNode, OSQLParseNode* pNewSubNode ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::replace " ); OSL_ENSURE(pOldSubNode != NULL && pNewSubNode != NULL, "OSQLParseNode: invalid nodes"); OSL_ENSURE(pNewSubNode->getParent() == NULL, "OSQLParseNode: node already has getParent"); OSL_ENSURE(::std::find(m_aChilds.begin(), m_aChilds.end(), pOldSubNode) != m_aChilds.end(), @@ -2376,6 +2411,7 @@ OSQLParseNode* OSQLParseNode::replace (OSQLParseNode* pOldSubNode, OSQLParseNode // ----------------------------------------------------------------------------- void OSQLParseNode::parseLeaf(::rtl::OUString & rString, const SQLParseNodeParameter& rParam) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::parseLeaf" ); // ein Blatt ist gefunden // Inhalt dem Ausgabestring anfuegen switch (m_eNodeType) @@ -2568,6 +2604,7 @@ OSQLParseNode::Rule OSQLParseNode::getKnownRuleID() const // ----------------------------------------------------------------------------- ::rtl::OUString OSQLParseNode::getTableRange(const OSQLParseNode* _pTableRef) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "parse", "Ocke.Janssen@sun.com", "OSQLParseNode::getTableRange" ); OSL_ENSURE(_pTableRef && _pTableRef->count() > 1 && _pTableRef->getKnownRuleID() == OSQLParseNode::table_ref,"Invalid node give, only table ref is allowed!"); const sal_uInt32 nCount = _pTableRef->count(); ::rtl::OUString sTableRange; diff --git a/svx/inc/ParseContext.hxx b/svx/inc/ParseContext.hxx index b767d9983e..947bfbf706 100644 --- a/svx/inc/ParseContext.hxx +++ b/svx/inc/ParseContext.hxx @@ -30,11 +30,11 @@ #ifndef SVX_QUERYDESIGNCONTEXT_HXX #define SVX_QUERYDESIGNCONTEXT_HXX - +#include "svx/svxdllapi.h" #include #include #include -#include "svx/svxdllapi.h" + #include diff --git a/svx/source/form/datanavi.cxx b/svx/source/form/datanavi.cxx index c06514851a..3b8a0cf8c3 100644 --- a/svx/source/form/datanavi.cxx +++ b/svx/source/form/datanavi.cxx @@ -66,6 +66,7 @@ #include #include #include +#include using namespace ::com::sun::star::beans; using namespace ::com::sun::star::container; diff --git a/svx/source/form/filtnav.cxx b/svx/source/form/filtnav.cxx index d10eb15a23..9c5ddf8280 100644 --- a/svx/source/form/filtnav.cxx +++ b/svx/source/form/filtnav.cxx @@ -73,6 +73,7 @@ #include #include #include "gridcell.hxx" +#include #include @@ -169,6 +170,7 @@ TYPEINIT1(FmFilterItems, FmParentData); //------------------------------------------------------------------------ FmFilterItem* FmFilterItems::Find(const Reference< ::com::sun::star::awt::XTextComponent > & _xText) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterItems::Find" ); for (::std::vector::const_iterator i = m_aChilds.begin(); i != m_aChilds.end(); ++i) { @@ -183,6 +185,7 @@ FmFilterItem* FmFilterItems::Find(const Reference< ::com::sun::star::awt::XTextC //------------------------------------------------------------------------ Image FmFilterItems::GetImage( BmpColorMode _eMode ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterItems::GetImage" ); static Image aImage; static Image aImage_HC; @@ -209,6 +212,7 @@ FmFilterItem::FmFilterItem(const Reference< ::com::sun::star::lang::XMultiServic ,m_aFieldName(aFieldName) ,m_xText(_xText) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterItems::FmFilterItem" ); } //------------------------------------------------------------------------ @@ -343,6 +347,7 @@ public: FmFilterAdapter::FmFilterAdapter(FmFilterModel* pModel, const Reference< ::com::sun::star::container::XIndexAccess >& xControllers) :m_pModel(pModel) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterAdapter::FmFilterAdapter" ); InsertElements(xControllers); // listen on all controls as text listener @@ -354,6 +359,7 @@ FmFilterAdapter::FmFilterAdapter(FmFilterModel* pModel, const Reference< ::com:: //------------------------------------------------------------------------ void FmFilterAdapter::dispose() throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterAdapter::dispose" ); // clear the filter control map for (FmFilterControls::const_iterator iter = m_aFilterControls.begin(); iter != m_aFilterControls.end(); iter++) @@ -367,6 +373,7 @@ void FmFilterAdapter::dispose() throw( RuntimeException ) void FmFilterAdapter::DeleteItemsByText(::std::vector& _rItems, const Reference< ::com::sun::star::awt::XTextComponent > & xText) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterAdapter::DeleteItemsByText" ); for (::std::vector::reverse_iterator i = _rItems.rbegin(); // link problems with operator == i.base() != _rItems.rend().base(); i++) @@ -394,6 +401,7 @@ void FmFilterAdapter::DeleteItemsByText(::std::vector& _rItems, //------------------------------------------------------------------------ void FmFilterAdapter::InsertElements(const Reference< ::com::sun::star::container::XIndexAccess >& xControllers) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterAdapter::InsertElements" ); for (sal_Int32 i = 0, nLen = xControllers->getCount(); i < nLen; ++i) { Reference< ::com::sun::star::container::XIndexAccess > xElement; @@ -415,6 +423,7 @@ void FmFilterAdapter::InsertElements(const Reference< ::com::sun::star::containe //------------------------------------------------------------------------------ void FmFilterAdapter::RemoveElement(const Reference< ::com::sun::star::awt::XTextComponent > & xText) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterAdapter::RemoveElement" ); if (xText.is()) { // alle Level durchlaufen und eintraege entfernen @@ -430,6 +439,7 @@ void FmFilterAdapter::RemoveElement(const Reference< ::com::sun::star::awt::XTex //------------------------------------------------------------------------ Reference< ::com::sun::star::beans::XPropertySet > FmFilterAdapter::getField(const Reference< ::com::sun::star::awt::XTextComponent > & xText) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterAdapter::getField" ); Reference< ::com::sun::star::beans::XPropertySet > xField; FmFilterControls::const_iterator i = m_aFilterControls.find(xText); if (i != m_aFilterControls.end()) @@ -443,6 +453,7 @@ void FmFilterAdapter::setText(sal_Int32 nRowPos, const FmFilterItem* pFilterItem, const ::rtl::OUString& rText) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterAdapter::setText" ); // set the text for the text component Reference< ::com::sun::star::awt::XTextComponent > xText(pFilterItem->GetTextComponent()); xText->setText(rText); @@ -475,6 +486,7 @@ void FmFilterAdapter::setText(sal_Int32 nRowPos, //------------------------------------------------------------------------ void SAL_CALL FmFilterAdapter::disposing(const ::com::sun::star::lang::EventObject& e) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterAdapter::disposing" ); Reference< ::com::sun::star::awt::XTextComponent > xText(e.Source,UNO_QUERY); if (xText.is()) RemoveElement(xText); @@ -484,6 +496,7 @@ void SAL_CALL FmFilterAdapter::disposing(const ::com::sun::star::lang::EventObje //------------------------------------------------------------------------ Reference< ::com::sun::star::form::XForm > FmFilterAdapter::findForm(const Reference< ::com::sun::star::container::XChild >& xChild) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterAdapter::findForm" ); Reference< ::com::sun::star::form::XForm > xForm; if (xChild.is()) { @@ -498,6 +511,7 @@ Reference< ::com::sun::star::form::XForm > FmFilterAdapter::findForm(const Refer //------------------------------------------------------------------------ void FmFilterAdapter::textChanged(const ::com::sun::star::awt::TextEvent& e) throw( ::com::sun::star::uno::RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterAdapter::textChanged" ); // Find the according formitem in the Reference< ::com::sun::star::awt::XControl > xControl(e.Source, UNO_QUERY); if (!m_pModel || !xControl.is()) @@ -552,6 +566,7 @@ FmFilterModel::FmFilterModel(const Reference< ::com::sun::star::lang::XMultiServ ,m_pAdapter(NULL) ,m_pCurrentItems(NULL) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterModel::FmFilterModel" ); } //------------------------------------------------------------------------ @@ -563,6 +578,7 @@ FmFilterModel::~FmFilterModel() //------------------------------------------------------------------------ void FmFilterModel::Clear() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterModel::Clear" ); // notify FilterClearingHint aClearedHint; Broadcast( aClearedHint ); @@ -589,6 +605,7 @@ void FmFilterModel::Clear() //------------------------------------------------------------------------ void FmFilterModel::Update(const Reference< ::com::sun::star::container::XIndexAccess > & xControllers, const Reference< ::com::sun::star::form::XFormController > & xCurrent) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterModel::Update" ); if ((::com::sun::star::form::XFormController*) xCurrent.get() == (::com::sun::star::form::XFormController*) m_xController.get()) return; @@ -622,6 +639,7 @@ void FmFilterModel::Update(const Reference< ::com::sun::star::container::XIndexA //------------------------------------------------------------------------ void FmFilterModel::Update(const Reference< ::com::sun::star::container::XIndexAccess > & xControllers, FmParentData* pParent) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterModel::Update" ); sal_Int32 nCount = xControllers->getCount(); for (sal_Int32 i = 0; i < nCount; i++) { @@ -671,6 +689,7 @@ void FmFilterModel::Update(const Reference< ::com::sun::star::container::XIndexA //------------------------------------------------------------------------ FmFormItem* FmFilterModel::Find(const ::std::vector& rItems, const Reference< ::com::sun::star::form::XFormController > & xController) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterModel::Find" ); for (::std::vector::const_iterator i = rItems.begin(); i != rItems.end(); i++) { @@ -693,6 +712,7 @@ FmFormItem* FmFilterModel::Find(const ::std::vector& rItems, cons //------------------------------------------------------------------------ FmFormItem* FmFilterModel::Find(const ::std::vector& rItems, const Reference< ::com::sun::star::form::XForm >& xForm) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterModel::Find" ); for (::std::vector::const_iterator i = rItems.begin(); i != rItems.end(); i++) { @@ -715,6 +735,7 @@ FmFormItem* FmFilterModel::Find(const ::std::vector& rItems, cons //------------------------------------------------------------------------ void FmFilterModel::SetCurrentController(const Reference< ::com::sun::star::form::XFormController > & xCurrent) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterModel::SetCurrentController" ); if ((::com::sun::star::form::XFormController*) xCurrent.get() == (::com::sun::star::form::XFormController*) m_xController.get()) return; @@ -731,6 +752,7 @@ void FmFilterModel::SetCurrentController(const Reference< ::com::sun::star::form //------------------------------------------------------------------------ void FmFilterModel::AppendFilterItems(FmFormItem* pFormItem) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterModel::AppendFilterItems" ); DBG_ASSERT(pFormItem, "AppendFilterItems(): no form item present"); FmFilterItems* pFilterItems = new FmFilterItems(m_xORB,pFormItem, ::rtl::OUString(String(SVX_RES(RID_STR_FILTER_FILTER_OR)))); @@ -761,6 +783,7 @@ void FmFilterModel::AppendFilterItems(FmFormItem* pFormItem) //------------------------------------------------------------------------ void FmFilterModel::Insert(const ::std::vector::iterator& rPos, FmFilterData* pData) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterModel::Insert" ); ::std::vector& rItems = pData->GetParent()->GetChilds(); sal_Int32 nPos = rPos == rItems.end() ? LIST_APPEND : rPos - rItems.begin(); rItems.insert(rPos, pData); @@ -773,6 +796,7 @@ void FmFilterModel::Insert(const ::std::vector::iterator& rPos, F //------------------------------------------------------------------------ void FmFilterModel::Remove(FmFilterData* pData) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterModel::Remove" ); FmParentData* pParent = pData->GetParent(); ::std::vector& rItems = pParent->GetChilds(); @@ -885,6 +909,7 @@ void FmFilterModel::Remove(FmFilterData* pData) //------------------------------------------------------------------------ void FmFilterModel::Remove(const ::std::vector::iterator& rPos, FmFilterData* pData) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterModel::Remove" ); ::std::vector& rItems = pData->GetParent()->GetChilds(); rItems.erase(rPos); @@ -898,6 +923,7 @@ void FmFilterModel::Remove(const ::std::vector::iterator& rPos, F //------------------------------------------------------------------------ sal_Bool FmFilterModel::ValidateText(FmFilterItem* pItem, UniString& rText, UniString& rErrorMsg) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterModel::ValidateText" ); // check the input Reference< XPropertySet > xField(m_pAdapter->getField(pItem->GetTextComponent())); @@ -928,12 +954,14 @@ sal_Bool FmFilterModel::ValidateText(FmFilterItem* pItem, UniString& rText, UniS //------------------------------------------------------------------------ void FmFilterModel::Append(FmFilterItems* pItems, FmFilterItem* pFilterItem) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterModel::Append" ); Insert(pItems->GetChilds().end(), pFilterItem); } //------------------------------------------------------------------------ void FmFilterModel::SetTextForItem(FmFilterItem* pItem, const ::rtl::OUString& rText) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterModel::SetTextForItem" ); ::std::vector& rItems = pItem->GetParent()->GetParent()->GetChilds(); ::std::vector::iterator i = ::std::find(rItems.begin(), rItems.end(), pItem->GetParent()); sal_Int32 nParentPos = i - rItems.begin(); @@ -954,6 +982,7 @@ void FmFilterModel::SetTextForItem(FmFilterItem* pItem, const ::rtl::OUString& r //------------------------------------------------------------------------ void FmFilterModel::SetCurrentItems(FmFilterItems* pCurrent) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterModel::SetCurrentItems" ); if (m_pCurrentItems == pCurrent) return; @@ -994,6 +1023,7 @@ void FmFilterModel::SetCurrentItems(FmFilterItems* pCurrent) //------------------------------------------------------------------------ void FmFilterModel::CheckIntegrity(FmParentData* pItem) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterModel::CheckIntegrity" ); // checks whether for each form there's one free level for input ::std::vector& rItems = pItem->GetChilds(); @@ -1138,6 +1168,7 @@ FmFilterNavigator::FmFilterNavigator( Window* pParent ) ,m_aTimerCounter( 0 ) ,m_aDropActionType( DA_SCROLLUP ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::FmFilterNavigator" ); SetHelpId( HID_FILTER_NAVIGATOR ); { @@ -1180,12 +1211,14 @@ FmFilterNavigator::~FmFilterNavigator() //------------------------------------------------------------------------ void FmFilterNavigator::Clear() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::Clear" ); m_pModel->Clear(); } //------------------------------------------------------------------------ void FmFilterNavigator::UpdateContent(const Reference< ::com::sun::star::container::XIndexAccess > & xControllers, const Reference< ::com::sun::star::form::XFormController > & xCurrent) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::UpdateContent" ); if (xCurrent == m_pModel->GetCurrentController()) return; @@ -1213,6 +1246,7 @@ void FmFilterNavigator::UpdateContent(const Reference< ::com::sun::star::contain //------------------------------------------------------------------------ sal_Bool FmFilterNavigator::EditingEntry( SvLBoxEntry* pEntry, Selection& rSelection ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::EditingEntry" ); m_pEditingCurrently = pEntry; if (!SvTreeListBox::EditingEntry( pEntry, rSelection )) return sal_False; @@ -1223,6 +1257,7 @@ sal_Bool FmFilterNavigator::EditingEntry( SvLBoxEntry* pEntry, Selection& rSelec //------------------------------------------------------------------------ sal_Bool FmFilterNavigator::EditedEntry( SvLBoxEntry* pEntry, const XubString& rNewText ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::EditedEntry" ); DBG_ASSERT(pEntry == m_pEditingCurrently, "FmFilterNavigator::EditedEntry: suspicious entry!"); m_pEditingCurrently = NULL; @@ -1315,6 +1350,7 @@ IMPL_LINK( FmFilterNavigator, OnDropActionTimer, void*, EMPTYARG ) //------------------------------------------------------------------------ sal_Int8 FmFilterNavigator::AcceptDrop( const AcceptDropEvent& rEvt ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::AcceptDrop" ); Point aDropPos = rEvt.maPosPixel; // kuemmern wir uns erst mal um moeglich DropActions (Scrollen und Aufklappen) @@ -1421,6 +1457,7 @@ namespace //------------------------------------------------------------------------ sal_Int8 FmFilterNavigator::ExecuteDrop( const ExecuteDropEvent& rEvt ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::ExecuteDrop" ); // ware schlecht, wenn nach dem Droppen noch gescrollt wird ... if (m_aDropActionTimer.IsActive()) m_aDropActionTimer.Stop(); @@ -1454,6 +1491,7 @@ void FmFilterNavigator::InitEntry(SvLBoxEntry* pEntry, const Image& rImg2, SvLBoxButtonKind eButtonKind) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::InitEntry" ); SvTreeListBox::InitEntry( pEntry, rStr, rImg1, rImg2, eButtonKind ); SvLBoxString* pString = NULL; @@ -1469,6 +1507,7 @@ void FmFilterNavigator::InitEntry(SvLBoxEntry* pEntry, //------------------------------------------------------------------------ sal_Bool FmFilterNavigator::Select( SvLBoxEntry* pEntry, sal_Bool bSelect ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::Select" ); if (bSelect == IsSelected(pEntry)) // das passiert manchmal, ich glaube, die Basisklasse geht zu sehr auf Nummer sicher ;) return sal_True; @@ -1504,6 +1543,7 @@ sal_Bool FmFilterNavigator::Select( SvLBoxEntry* pEntry, sal_Bool bSelect ) //------------------------------------------------------------------------ void FmFilterNavigator::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::Notify" ); if (rHint.ISA(FmFilterInsertedHint)) { FmFilterInsertedHint* pHint = (FmFilterInsertedHint*)&rHint; @@ -1537,6 +1577,7 @@ void FmFilterNavigator::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint ) //------------------------------------------------------------------------ SvLBoxEntry* FmFilterNavigator::FindEntry(const FmFilterData* pItem) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::FindEntry" ); SvLBoxEntry* pEntry = NULL; if (pItem) { @@ -1553,6 +1594,7 @@ SvLBoxEntry* FmFilterNavigator::FindEntry(const FmFilterData* pItem) const //------------------------------------------------------------------------ void FmFilterNavigator::Insert(FmFilterData* pItem, sal_Int32 nPos) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::Insert" ); const FmParentData* pParent = pItem->GetParent() ? pItem->GetParent() : GetFilterModel(); // insert the item @@ -1568,6 +1610,7 @@ void FmFilterNavigator::Insert(FmFilterData* pItem, sal_Int32 nPos) //------------------------------------------------------------------------ void FmFilterNavigator::Remove(FmFilterData* pItem) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::Remove" ); // der Entry zu den Daten SvLBoxEntry* pEntry = FindEntry(pItem); @@ -1581,6 +1624,7 @@ void FmFilterNavigator::Remove(FmFilterData* pItem) // ----------------------------------------------------------------------------- FmFormItem* FmFilterNavigator::getSelectedFilterItems(::std::vector& _rItemList) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::getSelectedFilterItems" ); // be sure that the data is only used within only one form! FmFormItem* pFirstItem = NULL; @@ -1615,6 +1659,7 @@ FmFormItem* FmFilterNavigator::getSelectedFilterItems(::std::vector& _rFilterList,FmFilterItems* _pTargetItems,sal_Bool _bCopy) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::insertFilterItem" ); ::std::vector::const_iterator aEnd = _rFilterList.end(); for (::std::vector::const_iterator i = _rFilterList.begin(); i != aEnd; ++i) { @@ -1642,6 +1687,7 @@ void FmFilterNavigator::insertFilterItem(const ::std::vector& _rF //------------------------------------------------------------------------------ void FmFilterNavigator::StartDrag( sal_Int8 /*_nAction*/, const Point& /*_rPosPixel*/ ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::StartDrag" ); EndSelection(); // be sure that the data is only used within a only one form! @@ -1659,6 +1705,7 @@ void FmFilterNavigator::StartDrag( sal_Int8 /*_nAction*/, const Point& /*_rPosPi //------------------------------------------------------------------------------ void FmFilterNavigator::Command( const CommandEvent& rEvt ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::Command" ); sal_Bool bHandled = sal_False; switch (rEvt.GetCommand()) { @@ -1761,6 +1808,7 @@ void FmFilterNavigator::Command( const CommandEvent& rEvt ) // ----------------------------------------------------------------------------- SvLBoxEntry* FmFilterNavigator::getNextEntry(SvLBoxEntry* _pStartWith) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::getNextEntry" ); SvLBoxEntry* pEntry = _pStartWith ? _pStartWith : LastSelected(); pEntry = Next(pEntry); // we need the next filter entry @@ -1771,6 +1819,7 @@ SvLBoxEntry* FmFilterNavigator::getNextEntry(SvLBoxEntry* _pStartWith) // ----------------------------------------------------------------------------- SvLBoxEntry* FmFilterNavigator::getPrevEntry(SvLBoxEntry* _pStartWith) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::getPrevEntry" ); SvLBoxEntry* pEntry = _pStartWith ? _pStartWith : FirstSelected(); pEntry = Prev(pEntry); // check if the previous entry is a filter, if so get the next prev @@ -1786,6 +1835,7 @@ SvLBoxEntry* FmFilterNavigator::getPrevEntry(SvLBoxEntry* _pStartWith) //------------------------------------------------------------------------ void FmFilterNavigator::KeyInput(const KeyEvent& rKEvt) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::KeyInput" ); const KeyCode& rKeyCode = rKEvt.GetKeyCode(); if ( rKeyCode.IsMod1() && rKeyCode.IsMod2() @@ -1859,6 +1909,7 @@ void FmFilterNavigator::KeyInput(const KeyEvent& rKEvt) //------------------------------------------------------------------------------ void FmFilterNavigator::DeleteSelection() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigator::DeleteSelection" ); // to avoid the deletion of an entry twice (e.g. deletion of a parent and afterward // the deletion of it's child, i have to shrink the selecton list ::std::vector aEntryList; @@ -1898,6 +1949,7 @@ FmFilterNavigatorWin::FmFilterNavigatorWin( SfxBindings* _pBindings, SfxChildWin :SfxDockingWindow( _pBindings, _pMgr, _pParent, WinBits(WB_STDMODELESS|WB_SIZEABLE|WB_ROLLABLE|WB_3DLOOK|WB_DOCKABLE) ) ,SfxControllerItem( SID_FM_FILTER_NAVIGATOR_CONTROL, *_pBindings ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigatorWin::FmFilterNavigatorWin" ); SetHelpId( HID_FILTER_NAVIGATOR_WIN ); m_pNavigator = new FmFilterNavigator( this ); @@ -1915,6 +1967,7 @@ FmFilterNavigatorWin::~FmFilterNavigatorWin() //----------------------------------------------------------------------- void FmFilterNavigatorWin::UpdateContent(FmFormShell* pFormShell) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigatorWin::UpdateContent" ); if (!pFormShell) m_pNavigator->UpdateContent( NULL, NULL ); else @@ -1939,6 +1992,7 @@ void FmFilterNavigatorWin::UpdateContent(FmFormShell* pFormShell) //----------------------------------------------------------------------- void FmFilterNavigatorWin::StateChanged( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigatorWin::StateChanged" ); if( !pState || SID_FM_FILTER_NAVIGATOR_CONTROL != nSID ) return; @@ -1954,6 +2008,7 @@ void FmFilterNavigatorWin::StateChanged( sal_uInt16 nSID, SfxItemState eState, c //----------------------------------------------------------------------- sal_Bool FmFilterNavigatorWin::Close() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigatorWin::Close" ); if ( m_pNavigator && m_pNavigator->IsEditingActive() ) m_pNavigator->EndEditing(); @@ -1968,6 +2023,7 @@ sal_Bool FmFilterNavigatorWin::Close() //----------------------------------------------------------------------- void FmFilterNavigatorWin::FillInfo( SfxChildWinInfo& rInfo ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigatorWin::FillInfo" ); SfxDockingWindow::FillInfo( rInfo ); rInfo.bVisible = sal_False; } @@ -1975,6 +2031,7 @@ void FmFilterNavigatorWin::FillInfo( SfxChildWinInfo& rInfo ) const //----------------------------------------------------------------------- Size FmFilterNavigatorWin::CalcDockingSize( SfxChildAlignment eAlign ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigatorWin::CalcDockingSize" ); if ( ( eAlign == SFX_ALIGN_TOP ) || ( eAlign == SFX_ALIGN_BOTTOM ) ) return Size(); @@ -1984,6 +2041,7 @@ Size FmFilterNavigatorWin::CalcDockingSize( SfxChildAlignment eAlign ) //----------------------------------------------------------------------- SfxChildAlignment FmFilterNavigatorWin::CheckAlignment( SfxChildAlignment eActAlign, SfxChildAlignment eAlign ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigatorWin::CheckAlignment" ); switch (eAlign) { case SFX_ALIGN_LEFT: @@ -2000,6 +2058,7 @@ SfxChildAlignment FmFilterNavigatorWin::CheckAlignment( SfxChildAlignment eActAl //------------------------------------------------------------------------ void FmFilterNavigatorWin::Resize() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigatorWin::Resize" ); SfxDockingWindow::Resize(); Size aLogOutputSize = PixelToLogic( GetOutputSizePixel(), MAP_APPFONT ); @@ -2015,6 +2074,7 @@ void FmFilterNavigatorWin::Resize() // ----------------------------------------------------------------------------- void FmFilterNavigatorWin::GetFocus() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFilterNavigatorWin::GetFocus" ); // oj #97405# if ( m_pNavigator ) m_pNavigator->GrabFocus(); diff --git a/svx/source/form/fmctrler.cxx b/svx/source/form/fmctrler.cxx index 5d4126b346..4aeec29b63 100644 --- a/svx/source/form/fmctrler.cxx +++ b/svx/source/form/fmctrler.cxx @@ -94,6 +94,7 @@ #include #include #include +#include #include #include @@ -181,6 +182,7 @@ ColumnInfoCache::ColumnInfoCache( const Reference< XColumnsSupplier >& _rxColSup :m_aColumns() ,m_bControlsInitialized( false ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "ColumnInfoCache::ColumnInfoCache" ); try { m_aColumns.clear(); @@ -236,6 +238,7 @@ namespace //------------------------------------------------------------------------------ void ColumnInfoCache::deinitializeControls() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "ColumnInfoCache::deinitializeControls" ); for ( ColumnInfos::iterator col = m_aColumns.begin(); col != m_aColumns.end(); ++col @@ -248,6 +251,7 @@ void ColumnInfoCache::deinitializeControls() //------------------------------------------------------------------------------ void ColumnInfoCache::initializeControls( const Sequence< Reference< XControl > >& _rControls ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "ColumnInfoCache::initializeControls" ); try { // for every of our known columns, find the controls which are bound to this column @@ -330,6 +334,7 @@ void ColumnInfoCache::initializeControls( const Sequence< Reference< XControl > //------------------------------------------------------------------------------ const ColumnInfo& ColumnInfoCache::getColumnInfo( size_t _pos ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "ColumnInfoCache::getColumnInfo" ); if ( _pos >= m_aColumns.size() ) throw IndexOutOfBoundsException(); @@ -510,6 +515,7 @@ FmXFormController::FmXFormController(const Reference< XMultiServiceFactory > & _ ,m_bDetachEvents(sal_True) ,m_bAttemptedHandlerCreation( false ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::FmXFormController" ); DBG_CTOR( FmXFormController, NULL ); ::comphelper::increment(m_refCount); @@ -570,18 +576,21 @@ FmXFormController::~FmXFormController() // ----------------------------------------------------------------------------- void SAL_CALL FmXFormController::acquire() throw () { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::acquire" ); FmXFormController_BASE::acquire(); } // ----------------------------------------------------------------------------- void SAL_CALL FmXFormController::release() throw () { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::release" ); FmXFormController_BASE::release(); } //------------------------------------------------------------------ Any SAL_CALL FmXFormController::queryInterface( const Type& _rType ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::queryInterface" ); Any aRet = FmXFormController_BASE::queryInterface( _rType ); if ( !aRet.hasValue() ) aRet = OPropertySetHelper::queryInterface( _rType ); @@ -593,6 +602,7 @@ Any SAL_CALL FmXFormController::queryInterface( const Type& _rType ) throw(Runti //------------------------------------------------------------------------------ Sequence< sal_Int8 > SAL_CALL FmXFormController::getImplementationId() throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getImplementationId" ); static ::cppu::OImplementationId* pId = NULL; if ( !pId ) { @@ -609,6 +619,7 @@ Sequence< sal_Int8 > SAL_CALL FmXFormController::getImplementationId() throw( Ru //------------------------------------------------------------------------------ Sequence< Type > SAL_CALL FmXFormController::getTypes( ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getTypes" ); return comphelper::concatSequences( FmXFormController_BASE::getTypes(), ::cppu::OPropertySetHelper::getTypes() @@ -619,6 +630,7 @@ Sequence< Type > SAL_CALL FmXFormController::getTypes( ) throw(RuntimeException // XUnoTunnel Sequence< sal_Int8 > FmXFormController::getUnoTunnelImplementationId() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getUnoTunnelImplementationId" ); static ::cppu::OImplementationId * pId = NULL; if ( !pId ) { @@ -634,6 +646,7 @@ Sequence< sal_Int8 > FmXFormController::getUnoTunnelImplementationId() //------------------------------------------------------------------------------ FmXFormController* FmXFormController::getImplementation( const Reference< XInterface >& _rxComponent ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getImplementation" ); Reference< XUnoTunnel > xTunnel( _rxComponent, UNO_QUERY ); if ( xTunnel.is() ) return reinterpret_cast< FmXFormController* >( xTunnel->getSomething( getUnoTunnelImplementationId() ) ); @@ -642,6 +655,7 @@ FmXFormController* FmXFormController::getImplementation( const Reference< XInter //------------------------------------------------------------------------------ sal_Int64 SAL_CALL FmXFormController::getSomething(Sequence const& rId)throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getSomething" ); if (rId.getLength() == 16 && 0 == rtl_compareMemory(getUnoTunnelImplementationId().getConstArray(), rId.getConstArray(), 16 ) ) return reinterpret_cast< sal_Int64 >( this ); @@ -652,6 +666,7 @@ sal_Int64 SAL_CALL FmXFormController::getSomething(Sequence const& rId //------------------------------------------------------------------------------ sal_Bool SAL_CALL FmXFormController::supportsService(const ::rtl::OUString& ServiceName) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::supportsService" ); Sequence< ::rtl::OUString> aSNL(getSupportedServiceNames()); const ::rtl::OUString * pArray = aSNL.getConstArray(); for( sal_Int32 i = 0; i < aSNL.getLength(); i++ ) @@ -663,12 +678,14 @@ sal_Bool SAL_CALL FmXFormController::supportsService(const ::rtl::OUString& Serv //------------------------------------------------------------------------------ ::rtl::OUString SAL_CALL FmXFormController::getImplementationName() throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getImplementationName" ); return ::rtl::OUString::createFromAscii("com.sun.star.form.FmXFormController"); } //------------------------------------------------------------------------------ Sequence< ::rtl::OUString> SAL_CALL FmXFormController::getSupportedServiceNames(void) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getSupportedServiceNames" ); // service names which are supported only, but cannot be used to created an // instance at a service factory Sequence< ::rtl::OUString > aNonCreatableServiceNames( 1 ); @@ -682,12 +699,14 @@ Sequence< ::rtl::OUString> SAL_CALL FmXFormController::getSupportedServiceNames( //------------------------------------------------------------------------------ sal_Bool SAL_CALL FmXFormController::approveReset(const EventObject& /*rEvent*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::approveReset" ); return sal_True; } //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::resetted(const EventObject& rEvent) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::resetted" ); ::osl::MutexGuard aGuard(m_aMutex); if (getCurrentControl().is() && (getCurrentControl()->getModel() == rEvent.Source)) m_bModified = sal_False; @@ -696,6 +715,7 @@ void SAL_CALL FmXFormController::resetted(const EventObject& rEvent) throw( Runt //------------------------------------------------------------------------------ Sequence< ::rtl::OUString> FmXFormController::getSupportedServiceNames_Static(void) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getSupportedServiceNames_Static" ); static Sequence< ::rtl::OUString> aServices; if (!aServices.getLength()) { @@ -709,6 +729,7 @@ Sequence< ::rtl::OUString> FmXFormController::getSupportedServiceNames_Static(vo //------------------------------------------------------------------------------ void FmXFormController::setCurrentFilterPosition( sal_Int32 nPos ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::setCurrentFilterPosition" ); DBG_ASSERT(nPos < (sal_Int32)m_aFilters.size(), "Invalid Position"); if (nPos != m_nCurrentFilterPosition) @@ -722,29 +743,34 @@ void FmXFormController::setCurrentFilterPosition( sal_Int32 nPos ) if ( nPos != -1 ) { - // set the text for all filters - OSL_ENSURE( ( m_aFilters.size() > (size_t)m_nCurrentFilterPosition ) && ( m_nCurrentFilterPosition >= 0 ), - "FmXFormController::setCurrentFilterPosition: m_nCurrentFilterPosition too big" ); - - if ( ( m_nCurrentFilterPosition >= 0 ) && ( (size_t)m_nCurrentFilterPosition < m_aFilters.size() ) ) - { - FmFilterRow& rRow = m_aFilters[m_nCurrentFilterPosition]; - for (FmFilterRow::const_iterator iter2 = rRow.begin(); - iter2 != rRow.end(); iter2++) - { - (*iter2).first->setText((*iter2).second); - } - } + impl_setTextOnAllFilter_throw(); } } } +// ----------------------------------------------------------------------------- +void FmXFormController::impl_setTextOnAllFilter_throw() +{ + // set the text for all filters + OSL_ENSURE( ( m_aFilters.size() > (size_t)m_nCurrentFilterPosition ) && ( m_nCurrentFilterPosition >= 0 ), + "FmXFormController::setCurrentFilterPosition: m_nCurrentFilterPosition too big" ); + if ( ( m_nCurrentFilterPosition >= 0 ) && ( (size_t)m_nCurrentFilterPosition < m_aFilters.size() ) ) + { + FmFilterRow& rRow = m_aFilters[m_nCurrentFilterPosition]; + for (FmFilterRow::const_iterator iter2 = rRow.begin(); + iter2 != rRow.end(); iter2++) + { + (*iter2).first->setText((*iter2).second); + } + } // if ( ( m_nCurrentFilterPosition >= 0 ) && ( (size_t)m_nCurrentFilterPosition < m_aFilters.size() ) ) +} // OPropertySetHelper //------------------------------------------------------------------------------ sal_Bool FmXFormController::convertFastPropertyValue( Any & /*rConvertedValue*/, Any & /*rOldValue*/, sal_Int32 /*nHandle*/, const Any& /*rValue*/ ) throw( IllegalArgumentException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::convertFastPropertyValue" ); return sal_False; } @@ -752,11 +778,13 @@ sal_Bool FmXFormController::convertFastPropertyValue( Any & /*rConvertedValue*/, void FmXFormController::setFastPropertyValue_NoBroadcast( sal_Int32 /*nHandle*/, const Any& /*rValue*/ ) throw( Exception ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::setFastPropertyValue_NoBroadcast" ); } //------------------------------------------------------------------------------ void FmXFormController::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getFastPropertyValue" ); switch (nHandle) { case FM_ATTR_FILTER: @@ -826,6 +854,7 @@ void FmXFormController::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) c //------------------------------------------------------------------------------ Reference< XPropertySetInfo > FmXFormController::getPropertySetInfo() throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getPropertySetInfo" ); static Reference< XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) ); return xInfo; } @@ -844,6 +873,7 @@ void FmXFormController::fillProperties( Sequence< Property >& /* [out] */ /*_rAggregateProps*/ ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::fillProperties" ); _rProps.realloc(2); sal_Int32 nPos = 0; Property* pDesc = _rProps.getArray(); @@ -854,6 +884,7 @@ void FmXFormController::fillProperties( //------------------------------------------------------------------------------ ::cppu::IPropertyArrayHelper& FmXFormController::getInfoHelper() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getInfoHelper" ); return *getArrayHelper(); } @@ -861,6 +892,7 @@ void FmXFormController::fillProperties( //------------------------------------------------------------------------------ sal_Bool SAL_CALL FmXFormController::hasElements(void) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::hasElements" ); ::osl::MutexGuard aGuard( m_aMutex ); return !m_aChilds.empty(); } @@ -868,6 +900,7 @@ sal_Bool SAL_CALL FmXFormController::hasElements(void) throw( RuntimeException ) //------------------------------------------------------------------------------ Type SAL_CALL FmXFormController::getElementType(void) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getElementType" ); return ::getCppuType((const Reference< XFormController>*)0); } @@ -876,6 +909,7 @@ Type SAL_CALL FmXFormController::getElementType(void) throw( RuntimeException ) //------------------------------------------------------------------------------ Reference< XEnumeration > SAL_CALL FmXFormController::createEnumeration(void) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::createEnumeration" ); ::osl::MutexGuard aGuard( m_aMutex ); return new ::comphelper::OEnumerationByIndex(this); } @@ -884,6 +918,7 @@ Reference< XEnumeration > SAL_CALL FmXFormController::createEnumeration(void) t //------------------------------------------------------------------------------ sal_Int32 SAL_CALL FmXFormController::getCount(void) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getCount" ); ::osl::MutexGuard aGuard( m_aMutex ); return m_aChilds.size(); } @@ -891,6 +926,7 @@ sal_Int32 SAL_CALL FmXFormController::getCount(void) throw( RuntimeException ) //------------------------------------------------------------------------------ Any SAL_CALL FmXFormController::getByIndex(sal_Int32 Index) throw( IndexOutOfBoundsException, WrappedTargetException, RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getByIndex" ); ::osl::MutexGuard aGuard( m_aMutex ); if (Index < 0 || Index >= (sal_Int32)m_aChilds.size()) @@ -903,6 +939,7 @@ Any SAL_CALL FmXFormController::getByIndex(sal_Int32 Index) throw( IndexOutOfBou //----------------------------------------------------------------------------- void FmXFormController::addChild(FmXFormController* pChild) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::addChild" ); Reference< XFormController > xController(pChild); m_aChilds.push_back(xController); pChild->setParent(static_cast< XFormController* >(this)); @@ -928,6 +965,7 @@ void FmXFormController::addChild(FmXFormController* pChild) //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::disposing(const EventObject& e) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::disposing" ); // Ist der Container disposed worden ::osl::MutexGuard aGuard( m_aMutex ); Reference< XControlContainer > xContainer(e.Source, UNO_QUERY); @@ -951,6 +989,7 @@ void SAL_CALL FmXFormController::disposing(const EventObject& e) throw( RuntimeE //----------------------------------------------------------------------------- void FmXFormController::disposeAllFeaturesAndDispatchers() SAL_THROW(()) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::disposeAllFeaturesAndDispatchers" ); for ( DispatcherContainer::iterator aDispatcher = m_aFeatureDispatchers.begin(); aDispatcher != m_aFeatureDispatchers.end(); ++aDispatcher @@ -972,6 +1011,7 @@ void FmXFormController::disposeAllFeaturesAndDispatchers() SAL_THROW(()) //----------------------------------------------------------------------------- void FmXFormController::disposing(void) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::disposing" ); EventObject aEvt(static_cast< XFormController* >(this)); // if we're still active, simulate a "deactivated" event @@ -1054,6 +1094,7 @@ namespace //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::propertyChange(const PropertyChangeEvent& evt) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::propertyChange" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); if ( evt.PropertyName == FM_PROP_BOUNDFIELD ) { @@ -1121,6 +1162,7 @@ void SAL_CALL FmXFormController::propertyChange(const PropertyChangeEvent& evt) //------------------------------------------------------------------------------ bool FmXFormController::replaceControl( const Reference< XControl >& _rxExistentControl, const Reference< XControl >& _rxNewControl ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::replaceControl" ); bool bSuccess = false; try { @@ -1182,6 +1224,7 @@ bool FmXFormController::replaceControl( const Reference< XControl >& _rxExistent //------------------------------------------------------------------------------ void FmXFormController::toggleAutoFields(sal_Bool bAutoFields) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::toggleAutoFields" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); @@ -1265,6 +1308,7 @@ IMPL_LINK(FmXFormController, OnToggleAutoFields, void*, EMPTYARG) //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::textChanged(const TextEvent& e) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::textChanged" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); if (m_bFiltering) { @@ -1300,6 +1344,7 @@ void SAL_CALL FmXFormController::textChanged(const TextEvent& e) throw( RuntimeE //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::itemStateChanged(const ItemEvent& /*rEvent*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::itemStateChanged" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); impl_onModify(); } @@ -1308,6 +1353,7 @@ void SAL_CALL FmXFormController::itemStateChanged(const ItemEvent& /*rEvent*/) t //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::addModifyListener(const Reference< XModifyListener > & l) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::addModifyListener" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); m_aModifyListeners.addInterface( l ); } @@ -1315,6 +1361,7 @@ void SAL_CALL FmXFormController::addModifyListener(const Reference< XModifyListe //------------------------------------------------------------------------------ void FmXFormController::removeModifyListener(const Reference< XModifyListener > & l) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::removeModifyListener" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); m_aModifyListeners.removeInterface( l ); } @@ -1323,6 +1370,7 @@ void FmXFormController::removeModifyListener(const Reference< XModifyListener > //------------------------------------------------------------------------------ void FmXFormController::modified( const EventObject& _rEvent ) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::modified" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); try @@ -1350,6 +1398,7 @@ void FmXFormController::modified( const EventObject& _rEvent ) throw( RuntimeExc //------------------------------------------------------------------------------ void FmXFormController::impl_onModify() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::onModify" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); { @@ -1365,6 +1414,7 @@ void FmXFormController::impl_onModify() //------------------------------------------------------------------------------ sal_Bool FmXFormController::determineLockState() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::determineLockState" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); // a.) in filter mode we are always locked // b.) if we have no valid model or our model (a result set) is not alive -> we're locked @@ -1382,6 +1432,7 @@ sal_Bool FmXFormController::determineLockState() const //------------------------------------------------------------------------------ void FmXFormController::focusGained(const FocusEvent& e) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::focusGained" ); TRACE_RANGE( "FmXFormController::focusGained" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); @@ -1530,6 +1581,7 @@ IMPL_LINK( FmXFormController, OnDeactivated, void*, /**/ ) //------------------------------------------------------------------------------ void FmXFormController::focusLost(const FocusEvent& e) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::focusLost" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); m_pControlBorderManager->focusLost( e.Source ); @@ -1547,30 +1599,35 @@ void FmXFormController::focusLost(const FocusEvent& e) throw( RuntimeException ) //-------------------------------------------------------------------- void SAL_CALL FmXFormController::mousePressed( const awt::MouseEvent& /*_rEvent*/ ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::mousePressed" ); // not interested in } //-------------------------------------------------------------------- void SAL_CALL FmXFormController::mouseReleased( const awt::MouseEvent& /*_rEvent*/ ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::mouseReleased" ); // not interested in } //-------------------------------------------------------------------- void SAL_CALL FmXFormController::mouseEntered( const awt::MouseEvent& _rEvent ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::mouseEntered" ); m_pControlBorderManager->mouseEntered( _rEvent.Source ); } //-------------------------------------------------------------------- void SAL_CALL FmXFormController::mouseExited( const awt::MouseEvent& _rEvent ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::mouseExited" ); m_pControlBorderManager->mouseExited( _rEvent.Source ); } //-------------------------------------------------------------------- void SAL_CALL FmXFormController::componentValidityChanged( const EventObject& _rSource ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::componentValidityChanged" ); Reference< XControl > xControl( findControl( m_aControls, Reference< XControlModel >( _rSource.Source, UNO_QUERY ), sal_False, sal_False ) ); Reference< XValidatableFormComponent > xValidatable( _rSource.Source, UNO_QUERY ); @@ -1583,6 +1640,7 @@ void SAL_CALL FmXFormController::componentValidityChanged( const EventObject& _r //-------------------------------------------------------------------- void FmXFormController::setModel(const Reference< XTabControllerModel > & Model) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::setModel" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); ::osl::MutexGuard aGuard( m_aMutex ); DBG_ASSERT(m_xTabController.is(), "FmXFormController::setModel : invalid aggregate !"); @@ -1688,6 +1746,7 @@ void FmXFormController::setModel(const Reference< XTabControllerModel > & Model) //------------------------------------------------------------------------------ Reference< XTabControllerModel > FmXFormController::getModel() throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getModel" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); DBG_ASSERT(m_xTabController.is(), "FmXFormController::getModel : invalid aggregate !"); if (!m_xTabController.is()) @@ -1698,6 +1757,7 @@ Reference< XTabControllerModel > FmXFormController::getModel() throw( RuntimeEx //------------------------------------------------------------------------------ void FmXFormController::addToEventAttacher(const Reference< XControl > & xControl) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::addToEventAttacher" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); OSL_ENSURE( xControl.is(), "FmXFormController::addToEventAttacher: invalid control - how did you reach this?" ); if ( !xControl.is() ) @@ -1726,6 +1786,7 @@ void FmXFormController::addToEventAttacher(const Reference< XControl > & xContro //------------------------------------------------------------------------------ void FmXFormController::removeFromEventAttacher(const Reference< XControl > & xControl) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::removeFromEventAttacher" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); OSL_ENSURE( xControl.is(), "FmXFormController::removeFromEventAttacher: invalid control - how did you reach this?" ); if ( !xControl.is() ) @@ -1754,6 +1815,7 @@ void FmXFormController::removeFromEventAttacher(const Reference< XControl > & xC //------------------------------------------------------------------------------ void FmXFormController::setContainer(const Reference< XControlContainer > & xContainer) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::setContainer" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); Reference< XTabControllerModel > xTabModel(getModel()); DBG_ASSERT(xTabModel.is() || !xContainer.is(), "No Model defined"); @@ -1842,6 +1904,7 @@ void FmXFormController::setContainer(const Reference< XControlContainer > & xCon //------------------------------------------------------------------------------ Reference< XControlContainer > FmXFormController::getContainer() throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getContainer" ); ::osl::MutexGuard aGuard( m_aMutex ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); DBG_ASSERT(m_xTabController.is(), "FmXFormController::getContainer : invalid aggregate !"); @@ -1853,6 +1916,7 @@ Reference< XControlContainer > FmXFormController::getContainer() throw( Runtime //------------------------------------------------------------------------------ Sequence< Reference< XControl > > FmXFormController::getControls(void) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getControls" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); ::osl::MutexGuard aGuard( m_aMutex ); if (!m_bControlsSorted) @@ -1892,6 +1956,7 @@ Sequence< Reference< XControl > > FmXFormController::getControls(void) throw( Ru //------------------------------------------------------------------------------ void FmXFormController::autoTabOrder() throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::autoTabOrder" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); ::osl::MutexGuard aGuard( m_aMutex ); DBG_ASSERT(m_xTabController.is(), "FmXFormController::autoTabOrder : invalid aggregate !"); @@ -1902,6 +1967,7 @@ void FmXFormController::autoTabOrder() throw( RuntimeException ) //------------------------------------------------------------------------------ void FmXFormController::activateTabOrder() throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::activateTabOrder" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); ::osl::MutexGuard aGuard( m_aMutex ); DBG_ASSERT(m_xTabController.is(), "FmXFormController::activateTabOrder : invalid aggregate !"); @@ -1912,6 +1978,7 @@ void FmXFormController::activateTabOrder() throw( RuntimeException ) //------------------------------------------------------------------------------ void FmXFormController::setControlLock(const Reference< XControl > & xControl) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::setControlLock" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); sal_Bool bLocked = isLocked(); @@ -1965,6 +2032,7 @@ void FmXFormController::setControlLock(const Reference< XControl > & xControl) //------------------------------------------------------------------------------ void FmXFormController::setLocks() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::setLocks" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); // alle Controls, die mit einer Datenquelle verbunden sind locken/unlocken const Reference< XControl >* pControls = m_aControls.getConstArray(); @@ -2006,6 +2074,7 @@ namespace //------------------------------------------------------------------------------ void FmXFormController::startControlModifyListening(const Reference< XControl > & xControl) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::startControlModifyListening" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); bool bModifyListening = lcl_shouldListenForModifications( xControl, this ); @@ -2055,6 +2124,7 @@ void FmXFormController::startControlModifyListening(const Reference< XControl > //------------------------------------------------------------------------------ void FmXFormController::stopControlModifyListening(const Reference< XControl > & xControl) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::stopControlModifyListening" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); bool bModifyListening = lcl_shouldListenForModifications( xControl, NULL ); @@ -2103,6 +2173,7 @@ void FmXFormController::stopControlModifyListening(const Reference< XControl > & //------------------------------------------------------------------------------ void FmXFormController::startListening() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::startListening" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); m_bModified = sal_False; @@ -2116,6 +2187,7 @@ void FmXFormController::startListening() //------------------------------------------------------------------------------ void FmXFormController::stopListening() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::stopListening" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); m_bModified = sal_False; @@ -2130,6 +2202,7 @@ void FmXFormController::stopListening() //------------------------------------------------------------------------------ Reference< XControl > FmXFormController::findControl(Sequence< Reference< XControl > >& _rControls, const Reference< XControlModel > & xCtrlModel ,sal_Bool _bRemove,sal_Bool _bOverWrite) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::findControl" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); DBG_ASSERT( xCtrlModel.is(), "findControl - welches ?!" ); @@ -2157,6 +2230,7 @@ Reference< XControl > FmXFormController::findControl(Sequence< Reference< XCont //------------------------------------------------------------------------------ void FmXFormController::implControlInserted( const Reference< XControl>& _rxControl, bool _bAddToEventAttacher ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::implControlInserted" ); Reference< XWindow > xWindow( _rxControl, UNO_QUERY ); if ( xWindow.is() ) { @@ -2196,6 +2270,7 @@ void FmXFormController::implControlInserted( const Reference< XControl>& _rxCont //------------------------------------------------------------------------------ void FmXFormController::implControlRemoved( const Reference< XControl>& _rxControl, bool _bRemoveFromEventAttacher ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::implControlRemoved" ); Reference< XWindow > xWindow( _rxControl, UNO_QUERY ); if ( xWindow.is() ) { @@ -2227,6 +2302,7 @@ void FmXFormController::implControlRemoved( const Reference< XControl>& _rxContr //------------------------------------------------------------------------------ void FmXFormController::implSetCurrentControl( const Reference< XControl >& _rxControl ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::implSetCurrentControl" ); if ( m_xCurrentControl.get() == _rxControl.get() ) return; @@ -2244,6 +2320,7 @@ void FmXFormController::implSetCurrentControl( const Reference< XControl >& _rxC //------------------------------------------------------------------------------ void FmXFormController::insertControl(const Reference< XControl > & xControl) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::insertControl" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); m_bControlsSorted = sal_False; m_aControls.realloc(m_aControls.getLength() + 1); @@ -2264,6 +2341,7 @@ void FmXFormController::insertControl(const Reference< XControl > & xControl) //------------------------------------------------------------------------------ void FmXFormController::removeControl(const Reference< XControl > & xControl) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::removeControl" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); const Reference< XControl >* pControls = m_aControls.getConstArray(); const Reference< XControl >* pControlsEnd = pControls + m_aControls.getLength(); @@ -2294,6 +2372,7 @@ void FmXFormController::removeControl(const Reference< XControl > & xControl) //------------------------------------------------------------------------------ void FmXFormController::loaded(const EventObject& rEvent) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::loaded" ); OSL_ENSURE( rEvent.Source == m_xModelAsIndex, "FmXFormController::loaded: where did this come from?" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); @@ -2350,6 +2429,7 @@ void FmXFormController::loaded(const EventObject& rEvent) throw( RuntimeExceptio //------------------------------------------------------------------------------ void FmXFormController::updateAllDispatchers() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::updateAllDispatchers" ); ::std::for_each( m_aFeatureDispatchers.begin(), m_aFeatureDispatchers.end(), @@ -2381,6 +2461,7 @@ IMPL_LINK(FmXFormController, OnLoad, void*, EMPTYARG) //------------------------------------------------------------------------------ void FmXFormController::unloaded(const EventObject& /*rEvent*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::unloaded" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); updateAllDispatchers(); } @@ -2388,6 +2469,7 @@ void FmXFormController::unloaded(const EventObject& /*rEvent*/) throw( RuntimeEx //------------------------------------------------------------------------------ void FmXFormController::reloading(const EventObject& /*aEvent*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::reloading" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); ::osl::MutexGuard aGuard( m_aMutex ); // do the same like in unloading @@ -2399,6 +2481,7 @@ void FmXFormController::reloading(const EventObject& /*aEvent*/) throw( RuntimeE //------------------------------------------------------------------------------ void FmXFormController::reloaded(const EventObject& aEvent) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::reloaded" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); loaded(aEvent); } @@ -2406,6 +2489,7 @@ void FmXFormController::reloaded(const EventObject& aEvent) throw( RuntimeExcept //------------------------------------------------------------------------------ void FmXFormController::unloading(const EventObject& /*aEvent*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::unloading" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); unload(); } @@ -2413,6 +2497,7 @@ void FmXFormController::unloading(const EventObject& /*aEvent*/) throw( RuntimeE //------------------------------------------------------------------------------ void FmXFormController::unload() throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::unload" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); ::osl::MutexGuard aGuard( m_aMutex ); @@ -2442,6 +2527,7 @@ void FmXFormController::unload() throw( RuntimeException ) // ----------------------------------------------------------------------------- void FmXFormController::removeBoundFieldListener() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::removeBoundFieldListener" ); const Reference< XControl >* pControls = m_aControls.getConstArray(); const Reference< XControl >* pControlsEnd = pControls + m_aControls.getLength(); while ( pControls != pControlsEnd ) @@ -2455,6 +2541,7 @@ void FmXFormController::removeBoundFieldListener() //------------------------------------------------------------------------------ void FmXFormController::startFormListening( const Reference< XPropertySet >& _rxForm, sal_Bool _bPropertiesOnly ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::startFormListening" ); try { if ( m_bCanInsert || m_bCanUpdate ) // form can be modified @@ -2489,6 +2576,7 @@ void FmXFormController::startFormListening( const Reference< XPropertySet >& _rx //------------------------------------------------------------------------------ void FmXFormController::stopFormListening( const Reference< XPropertySet >& _rxForm, sal_Bool _bPropertiesOnly ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::stopFormListening" ); try { if ( m_bCanInsert || m_bCanUpdate ) @@ -2522,6 +2610,7 @@ void FmXFormController::stopFormListening( const Reference< XPropertySet >& _rxF //------------------------------------------------------------------------------ void FmXFormController::cursorMoved(const EventObject& /*event*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::cursorMoved" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); // toggle the locking ? if (m_bLocked != determineLockState()) @@ -2542,11 +2631,13 @@ void FmXFormController::cursorMoved(const EventObject& /*event*/) throw( Runtime //------------------------------------------------------------------------------ void FmXFormController::rowChanged(const EventObject& /*event*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::rowChanged" ); // not interested in ... } //------------------------------------------------------------------------------ void FmXFormController::rowSetChanged(const EventObject& /*event*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::rowSetChanged" ); // not interested in ... } @@ -2555,6 +2646,7 @@ void FmXFormController::rowSetChanged(const EventObject& /*event*/) throw( Runti //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::elementInserted(const ContainerEvent& evt) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::elementInserted" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); Reference< XControl > xControl; evt.Element >>= xControl; @@ -2601,6 +2693,7 @@ void SAL_CALL FmXFormController::elementInserted(const ContainerEvent& evt) thro //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::elementReplaced(const ContainerEvent& evt) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::elementReplaced" ); // simulate an elementRemoved ContainerEvent aRemoveEvent( evt ); aRemoveEvent.Element = evt.ReplacedElement; @@ -2616,6 +2709,7 @@ void SAL_CALL FmXFormController::elementReplaced(const ContainerEvent& evt) thro //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::elementRemoved(const ContainerEvent& evt) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::elementRemoved" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); ::osl::MutexGuard aGuard( m_aMutex ); @@ -2643,6 +2737,7 @@ void SAL_CALL FmXFormController::elementRemoved(const ContainerEvent& evt) throw //------------------------------------------------------------------------------ Reference< XControl > FmXFormController::isInList(const Reference< XWindowPeer > & xPeer) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::isInList" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); const Reference< XControl >* pControls = m_aControls.getConstArray(); @@ -2662,6 +2757,7 @@ Reference< XControl > FmXFormController::isInList(const Reference< XWindowPeer //------------------------------------------------------------------------------ void FmXFormController::activateFirst() throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::activateFirst" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); ::osl::MutexGuard aGuard( m_aMutex ); DBG_ASSERT(m_xTabController.is(), "FmXFormController::activateFirst : invalid aggregate !"); @@ -2672,6 +2768,7 @@ void FmXFormController::activateFirst() throw( RuntimeException ) //------------------------------------------------------------------------------ void FmXFormController::activateLast() throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::activateLast" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); ::osl::MutexGuard aGuard( m_aMutex ); DBG_ASSERT(m_xTabController.is(), "FmXFormController::activateLast : invalid aggregate !"); @@ -2683,6 +2780,7 @@ void FmXFormController::activateLast() throw( RuntimeException ) //------------------------------------------------------------------------------ Reference< XControl> SAL_CALL FmXFormController::getCurrentControl(void) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getCurrentControl" ); ::osl::MutexGuard aGuard( m_aMutex ); return m_xCurrentControl; } @@ -2690,6 +2788,7 @@ Reference< XControl> SAL_CALL FmXFormController::getCurrentControl(void) throw( //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::addActivateListener(const Reference< XFormControllerListener > & l) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::addActivateListener" ); ::osl::MutexGuard aGuard( m_aMutex ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); m_aActivateListeners.addInterface(l); @@ -2697,6 +2796,7 @@ void SAL_CALL FmXFormController::addActivateListener(const Reference< XFormContr //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::removeActivateListener(const Reference< XFormControllerListener > & l) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::removeActivateListener" ); ::osl::MutexGuard aGuard( m_aMutex ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); m_aActivateListeners.removeInterface(l); @@ -2705,6 +2805,7 @@ void SAL_CALL FmXFormController::removeActivateListener(const Reference< XFormCo //------------------------------------------------------------------------------ void FmXFormController::setFilter(::std::vector& rFieldInfos) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::setFilter" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); // create the composer Reference< XRowSet > xForm(m_xModelAsIndex, UNO_QUERY); @@ -2881,6 +2982,7 @@ void FmXFormController::setFilter(::std::vector& rFieldInfos) //------------------------------------------------------------------------------ void FmXFormController::startFiltering() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::startFiltering" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); OStaticDataAccessTools aStaticTools; @@ -3018,18 +3120,7 @@ void FmXFormController::startFiltering() if ( xSet.is() ) stopFormListening( xSet, sal_True ); - // set the text for all filters - OSL_ENSURE( ( m_aFilters.size() > (size_t)m_nCurrentFilterPosition ) && ( m_nCurrentFilterPosition >= 0 ), - "FmXFormController::startFiltering: m_nCurrentFilterPosition too big" ); - if ( ( m_nCurrentFilterPosition >= 0 ) && ( (size_t)m_nCurrentFilterPosition < m_aFilters.size() ) ) - { - FmFilterRow& rRow = m_aFilters[m_nCurrentFilterPosition]; - for (FmFilterRow::const_iterator iter2 = rRow.begin(); - iter2 != rRow.end(); iter2++) - { - (*iter2).first->setText((*iter2).second); - } - } + impl_setTextOnAllFilter_throw(); // lock all controls which are not used for filtering m_bLocked = determineLockState(); @@ -3040,6 +3131,7 @@ void FmXFormController::startFiltering() //------------------------------------------------------------------------------ void FmXFormController::stopFiltering() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::stopFiltering" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); if ( !m_bFiltering ) // #104693# OJ { // nothing to do @@ -3132,6 +3224,7 @@ void FmXFormController::stopFiltering() //------------------------------------------------------------------------------ void FmXFormController::setMode(const ::rtl::OUString& Mode) throw( NoSupportException, RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::setMode" ); ::osl::MutexGuard aGuard( m_aMutex ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); @@ -3160,6 +3253,7 @@ void FmXFormController::setMode(const ::rtl::OUString& Mode) throw( NoSupportExc //------------------------------------------------------------------------------ ::rtl::OUString SAL_CALL FmXFormController::getMode(void) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getMode" ); ::osl::MutexGuard aGuard( m_aMutex ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); return m_aMode; @@ -3168,6 +3262,7 @@ void FmXFormController::setMode(const ::rtl::OUString& Mode) throw( NoSupportExc //------------------------------------------------------------------------------ Sequence< ::rtl::OUString > SAL_CALL FmXFormController::getSupportedModes(void) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getSupportedModes" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); static Sequence< ::rtl::OUString > aModes; if (!aModes.getLength()) @@ -3183,6 +3278,7 @@ Sequence< ::rtl::OUString > SAL_CALL FmXFormController::getSupportedModes(void) //------------------------------------------------------------------------------ sal_Bool SAL_CALL FmXFormController::supportsMode(const ::rtl::OUString& Mode) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::supportsMode" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); Sequence< ::rtl::OUString > aModes(getSupportedModes()); const ::rtl::OUString* pModes = aModes.getConstArray(); @@ -3197,6 +3293,7 @@ sal_Bool SAL_CALL FmXFormController::supportsMode(const ::rtl::OUString& Mode) t //------------------------------------------------------------------------------ Window* FmXFormController::getDialogParentWindow() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::getDialogParentWindow" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); Window* pParent = m_pWindow; if ( !pParent ) @@ -3217,6 +3314,7 @@ Window* FmXFormController::getDialogParentWindow() //------------------------------------------------------------------------------ bool FmXFormController::checkFormComponentValidity( ::rtl::OUString& /* [out] */ _rFirstInvalidityExplanation, Reference< XControlModel >& /* [out] */ _rxFirstInvalidModel ) SAL_THROW(()) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::checkFormComponentValidity" ); try { Reference< XEnumerationAccess > xControlEnumAcc( getModel(), UNO_QUERY ); @@ -3259,6 +3357,7 @@ bool FmXFormController::checkFormComponentValidity( ::rtl::OUString& /* [out] */ //------------------------------------------------------------------------------ Reference< XControl > FmXFormController::locateControl( const Reference< XControlModel >& _rxModel ) SAL_THROW(()) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::locateControl" ); try { Sequence< Reference< XControl > > aControls( getControls() ); @@ -3348,6 +3447,7 @@ namespace //------------------------------------------------------------------------------ sal_Bool SAL_CALL FmXFormController::approveRowChange(const RowChangeEvent& _rEvent) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::approveRowChange" ); ::osl::ClearableMutexGuard aGuard( m_aMutex ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); @@ -3433,6 +3533,7 @@ sal_Bool SAL_CALL FmXFormController::approveRowChange(const RowChangeEvent& _rEv //------------------------------------------------------------------------------ sal_Bool SAL_CALL FmXFormController::approveCursorMove(const EventObject& event) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::approveCursorMove" ); ::osl::MutexGuard aGuard( m_aMutex ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); ::cppu::OInterfaceIteratorHelper aIter(m_aRowSetApproveListeners); @@ -3449,6 +3550,7 @@ sal_Bool SAL_CALL FmXFormController::approveCursorMove(const EventObject& event) //------------------------------------------------------------------------------ sal_Bool SAL_CALL FmXFormController::approveRowSetChange(const EventObject& event) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::approveRowSetChange" ); ::osl::MutexGuard aGuard( m_aMutex ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); ::cppu::OInterfaceIteratorHelper aIter(m_aRowSetApproveListeners); @@ -3466,6 +3568,7 @@ sal_Bool SAL_CALL FmXFormController::approveRowSetChange(const EventObject& even //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::addRowSetApproveListener(const Reference< XRowSetApproveListener > & _rxListener) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::addRowSetApproveListener" ); ::osl::MutexGuard aGuard( m_aMutex ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); m_aRowSetApproveListeners.addInterface(_rxListener); @@ -3474,6 +3577,7 @@ void SAL_CALL FmXFormController::addRowSetApproveListener(const Reference< XRowS //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::removeRowSetApproveListener(const Reference< XRowSetApproveListener > & _rxListener) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::removeRowSetApproveListener" ); ::osl::MutexGuard aGuard( m_aMutex ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); m_aRowSetApproveListeners.removeInterface(_rxListener); @@ -3483,6 +3587,7 @@ void SAL_CALL FmXFormController::removeRowSetApproveListener(const Reference< XR //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::errorOccured(const SQLErrorEvent& aEvent) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::errorOccured" ); ::osl::ClearableMutexGuard aGuard( m_aMutex ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); @@ -3504,6 +3609,7 @@ void SAL_CALL FmXFormController::errorOccured(const SQLErrorEvent& aEvent) throw //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::addSQLErrorListener(const Reference< XSQLErrorListener > & aListener) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::addSQLErrorListener" ); ::osl::MutexGuard aGuard( m_aMutex ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); m_aErrorListeners.addInterface(aListener); @@ -3512,6 +3618,7 @@ void SAL_CALL FmXFormController::addSQLErrorListener(const Reference< XSQLErrorL //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::removeSQLErrorListener(const Reference< XSQLErrorListener > & aListener) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::removeSQLErrorListener" ); ::osl::MutexGuard aGuard( m_aMutex ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); m_aErrorListeners.removeInterface(aListener); @@ -3521,6 +3628,7 @@ void SAL_CALL FmXFormController::removeSQLErrorListener(const Reference< XSQLErr //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::addDatabaseParameterListener(const Reference< XDatabaseParameterListener > & aListener) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::addDatabaseParameterListener" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); m_aParameterListeners.addInterface(aListener); } @@ -3528,6 +3636,7 @@ void SAL_CALL FmXFormController::addDatabaseParameterListener(const Reference< X //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::removeDatabaseParameterListener(const Reference< XDatabaseParameterListener > & aListener) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::removeDatabaseParameterListener" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); m_aParameterListeners.removeInterface(aListener); } @@ -3536,12 +3645,14 @@ void SAL_CALL FmXFormController::removeDatabaseParameterListener(const Reference //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::addParameterListener(const Reference< XDatabaseParameterListener > & aListener) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::addParameterListener" ); FmXFormController::addDatabaseParameterListener( aListener ); } //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::removeParameterListener(const Reference< XDatabaseParameterListener > & aListener) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::removeParameterListener" ); FmXFormController::removeDatabaseParameterListener( aListener ); } @@ -3549,6 +3660,7 @@ void SAL_CALL FmXFormController::removeParameterListener(const Reference< XDatab //------------------------------------------------------------------------------ sal_Bool SAL_CALL FmXFormController::approveParameter(const DatabaseParameterEvent& aEvent) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::approveParameter" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); ::cppu::OInterfaceIteratorHelper aIter(m_aParameterListeners); @@ -3628,6 +3740,7 @@ sal_Bool SAL_CALL FmXFormController::approveParameter(const DatabaseParameterEve //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::addConfirmDeleteListener(const Reference< XConfirmDeleteListener > & aListener) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::addConfirmDeleteListener" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); m_aDeleteListeners.addInterface(aListener); } @@ -3635,6 +3748,7 @@ void SAL_CALL FmXFormController::addConfirmDeleteListener(const Reference< XConf //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::removeConfirmDeleteListener(const Reference< XConfirmDeleteListener > & aListener) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::removeConfirmDeleteListener" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); m_aDeleteListeners.removeInterface(aListener); } @@ -3643,6 +3757,7 @@ void SAL_CALL FmXFormController::removeConfirmDeleteListener(const Reference< XC //------------------------------------------------------------------------------ sal_Bool SAL_CALL FmXFormController::confirmDelete(const RowChangeEvent& aEvent) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::confirmDelete" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); ::cppu::OInterfaceIteratorHelper aIter(m_aDeleteListeners); @@ -3673,6 +3788,7 @@ sal_Bool SAL_CALL FmXFormController::confirmDelete(const RowChangeEvent& aEvent) //------------------------------------------------------------------------------ void FmXFormController::invalidateFeatures( const ::std::vector< sal_Int32 >& _rFeatures ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::invalidateFeatures" ); ::osl::MutexGuard aGuard( m_aMutex ); // for now, just copy the ids of the features, because .... ::std::copy( _rFeatures.begin(), _rFeatures.end(), @@ -3690,6 +3806,7 @@ FmXFormController::interceptedQueryDispatch(sal_uInt16 /*_nId*/, const URL& aURL const ::rtl::OUString& /*aTargetFrameName*/, sal_Int32 /*nSearchFlags*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::interceptedQueryDispatch" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); Reference< XDispatch > xReturn; // dispatches handled by ourself @@ -3728,6 +3845,7 @@ FmXFormController::interceptedQueryDispatch(sal_uInt16 /*_nId*/, const URL& aURL //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::dispatch( const URL& _rURL, const Sequence< PropertyValue >& _rArgs ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::dispatch" ); if ( _rArgs.getLength() != 1 ) { DBG_ERROR( "FmXFormController::dispatch: no arguments -> no dispatch!" ); @@ -3756,6 +3874,7 @@ void SAL_CALL FmXFormController::dispatch( const URL& _rURL, const Sequence< Pro //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::addStatusListener( const Reference< XStatusListener >& _rxListener, const URL& _rURL ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::addStatusListener" ); if (_rURL.Complete == FMURL_CONFIRM_DELETION) { if (_rxListener.is()) @@ -3774,6 +3893,7 @@ void SAL_CALL FmXFormController::addStatusListener( const Reference< XStatusList //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::removeStatusListener( const Reference< XStatusListener >& /*_rxListener*/, const URL& _rURL ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::removeStatusListener" ); (void)_rURL; OSL_ENSURE(_rURL.Complete == FMURL_CONFIRM_DELETION, "FmXFormController::removeStatusListener: invalid (unsupported) URL!"); // we never really added the listener, so we don't need to remove it @@ -3782,6 +3902,7 @@ void SAL_CALL FmXFormController::removeStatusListener( const Reference< XStatusL //------------------------------------------------------------------------------ Reference< XDispatchProviderInterceptor > FmXFormController::createInterceptor(const Reference< XDispatchProviderInterception > & _xInterception) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::createInterceptor" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); #ifdef DBG_UTIL // check if we already have a interceptor for the given object @@ -3806,6 +3927,7 @@ Reference< XDispatchProviderInterceptor > FmXFormController::createInterceptor( //------------------------------------------------------------------------------ bool FmXFormController::ensureInteractionHandler() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::ensureInteractionHandler" ); if ( m_xInteractionHandler.is() ) return true; if ( m_bAttemptedHandlerCreation ) @@ -3822,6 +3944,7 @@ bool FmXFormController::ensureInteractionHandler() //------------------------------------------------------------------------------ void SAL_CALL FmXFormController::handle( const Reference< XInteractionRequest >& _rRequest ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::handle" ); if ( !ensureInteractionHandler() ) return; m_xInteractionHandler->handle( _rRequest ); @@ -3830,6 +3953,7 @@ void SAL_CALL FmXFormController::handle( const Reference< XInteractionRequest >& //------------------------------------------------------------------------------ void FmXFormController::deleteInterceptor(const Reference< XDispatchProviderInterception > & _xInterception) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::deleteInterceptor" ); OSL_ENSURE( !impl_isDisposed_nofail(), "FmXFormController: already disposed!" ); // search the interceptor responsible for the given object InterceptorsIterator aIter; @@ -3858,6 +3982,7 @@ void FmXFormController::deleteInterceptor(const Reference< XDispatchProviderInte //-------------------------------------------------------------------- void SAL_CALL FmXFormController::initialize( const Sequence< Any >& aArguments ) throw (Exception, RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::initialize" ); DBG_ASSERT( !m_xInteractionHandler.is(), "FmXFormController::initialize: already initialized!" ); // currently, we only initialize our interaction handler here, so it's sufficient to assert this @@ -3868,6 +3993,7 @@ void SAL_CALL FmXFormController::initialize( const Sequence< Any >& aArguments ) //-------------------------------------------------------------------- void FmXFormController::implInvalidateCurrentControlDependentFeatures() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::implInvalidateCurrentControlDependentFeatures" ); ::std::vector< sal_Int32 > aCurrentControlDependentFeatures; aCurrentControlDependentFeatures.push_back( SID_FM_SORTUP ); @@ -3883,5 +4009,6 @@ void FmXFormController::implInvalidateCurrentControlDependentFeatures() //-------------------------------------------------------------------- void SAL_CALL FmXFormController::columnChanged( const EventObject& /*_event*/ ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormController::columnChanged" ); implInvalidateCurrentControlDependentFeatures(); } diff --git a/svx/source/form/fmexpl.cxx b/svx/source/form/fmexpl.cxx index 89ce08fa51..8ac29428db 100644 --- a/svx/source/form/fmexpl.cxx +++ b/svx/source/form/fmexpl.cxx @@ -88,6 +88,7 @@ #include #include #include +#include using namespace ::svxform; using namespace ::com::sun::star::uno; @@ -233,6 +234,7 @@ DBG_NAME(FmEntryData); FmEntryData::FmEntryData( FmEntryData* pParentData, const Reference< XInterface >& _rxIFace ) :pParent( pParentData ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmEntryData::FmEntryData" ); DBG_CTOR(FmEntryData,NULL); pChildList = new FmEntryDataList(); @@ -250,6 +252,7 @@ FmEntryData::~FmEntryData() //------------------------------------------------------------------------ void FmEntryData::newObject( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxIFace ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmEntryData::newObject" ); // do not just copy, normalize it m_xNormalizedIFace = Reference< XInterface >( _rxIFace, UNO_QUERY ); m_xProperties = m_xProperties.query( m_xNormalizedIFace ); @@ -259,6 +262,7 @@ void FmEntryData::newObject( const ::com::sun::star::uno::Reference< ::com::sun: //------------------------------------------------------------------------ FmEntryData::FmEntryData( const FmEntryData& rEntryData ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmEntryData::FmEntryData" ); pChildList = new FmEntryDataList(); aText = rEntryData.GetText(); m_aNormalImage = rEntryData.GetNormalImage(); @@ -282,6 +286,7 @@ FmEntryData::FmEntryData( const FmEntryData& rEntryData ) //------------------------------------------------------------------------ void FmEntryData::Clear() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmEntryData::Clear" ); for (;;) { FmEntryData* pEntryData = GetChildList()->Remove(ULONG(0)); @@ -294,6 +299,7 @@ void FmEntryData::Clear() //------------------------------------------------------------------------ sal_Bool FmEntryData::IsEqualWithoutChilds( FmEntryData* pEntryData ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmEntryData::IsEqualWithoutChilds" ); if(this == pEntryData) return sal_True; @@ -396,6 +402,7 @@ FmControlData::FmControlData( const Reference< XFormComponent >& _rxComponent, c :FmEntryData( _pParent, _rxComponent ) ,m_xFormComponent( _rxComponent ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmControlData::FmControlData" ); DBG_CTOR(FmControlData,NULL); ////////////////////////////////////////////////////////////////////// // Images setzen @@ -437,6 +444,7 @@ FmEntryData* FmControlData::Clone() //------------------------------------------------------------------------ Image FmControlData::GetImage(const ImageList& ilNavigatorImages) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmControlData::FmControlData" ); ////////////////////////////////////////////////////////////////////// // Default-Image Image aImage = ilNavigatorImages.GetImage( RID_SVXIMG_CONTROL ); @@ -545,6 +553,7 @@ Image FmControlData::GetImage(const ImageList& ilNavigatorImages) const //------------------------------------------------------------------------ sal_Bool FmControlData::IsEqualWithoutChilds( FmEntryData* pEntryData ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmControlData::IsEqualWithoutChilds" ); if(this == pEntryData) return sal_True; @@ -561,6 +570,7 @@ sal_Bool FmControlData::IsEqualWithoutChilds( FmEntryData* pEntryData ) //------------------------------------------------------------------------ void FmControlData::ModelReplaced( const Reference< XFormComponent >& _rxNew, const ImageList& _rNormalImages, const ImageList& _rHCImages ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmControlData::ModelReplaced" ); m_xFormComponent = _rxNew; newObject( m_xFormComponent ); diff --git a/svx/source/form/fmpage.cxx b/svx/source/form/fmpage.cxx index 90edcaef8e..23131e779a 100644 --- a/svx/source/form/fmpage.cxx +++ b/svx/source/form/fmpage.cxx @@ -82,6 +82,7 @@ using namespace ::svxform; #endif #include +#include using com::sun::star::uno::Reference; using com::sun::star::uno::UNO_QUERY; @@ -100,6 +101,7 @@ FmFormPage::FmFormPage(FmFormModel& rModel, StarBASIC* _pBasic, FASTBOOL bMaster #endif ,m_pBasic(_pBasic) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPage::FmFormPage" ); } //------------------------------------------------------------------ @@ -112,6 +114,7 @@ FmFormPage::FmFormPage(const FmFormPage& rPage) #endif ,m_pBasic(0) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPage::FmFormPage" ); m_sPageName = rPage.m_sPageName; } @@ -126,6 +129,7 @@ FmFormPage::~FmFormPage() //------------------------------------------------------------------ void FmFormPage::SetModel(SdrModel* pNewModel) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPage::SetModel" ); /* #35055# */ // we want to call the super's "SetModel" method even if the model is the // same, in case code somewhere in the system depends on it. But our code @@ -164,6 +168,7 @@ void FmFormPage::SetModel(SdrModel* pNewModel) //------------------------------------------------------------------ SdrPage* FmFormPage::Clone() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPage::Clone" ); return new FmFormPage(*this); // hier fehlt noch ein kopieren der Objekte } @@ -172,6 +177,7 @@ SdrPage* FmFormPage::Clone() const void FmFormPage::InsertObject(SdrObject* pObj, ULONG nPos, const SdrInsertReason* pReason) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPage::InsertObject" ); SdrPage::InsertObject( pObj, nPos, pReason ); #ifndef SVX_LIGHT if (GetModel() && (!pReason || pReason->GetReason() != SDRREASON_STREAMING)) @@ -182,6 +188,7 @@ void FmFormPage::InsertObject(SdrObject* pObj, ULONG nPos, //------------------------------------------------------------------ const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > & FmFormPage::GetForms( bool _bForceCreate ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPage::GetForms" ); #ifndef SVX_LIGHT const SdrPage& rMasterPage( *this ); const FmFormPage* pFormPage = dynamic_cast< const FmFormPage* >( &rMasterPage ); @@ -200,6 +207,7 @@ const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContai sal_Bool FmFormPage::RequestHelp( Window* pWindow, SdrView* pView, const HelpEvent& rEvt ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPage::RequestHelp" ); #ifndef SVX_LIGHT if( pView->IsAction() ) return sal_False; @@ -267,6 +275,7 @@ sal_Bool FmFormPage::RequestHelp( Window* pWindow, SdrView* pView, //------------------------------------------------------------------ SdrObject* FmFormPage::RemoveObject(ULONG nObjNum) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPage::RemoveObject" ); SdrObject* pObj = SdrPage::RemoveObject(nObjNum); #ifndef SVX_LIGHT if (pObj && GetModel()) diff --git a/svx/source/form/fmpgeimp.cxx b/svx/source/form/fmpgeimp.cxx index 35d3037268..58e345989d 100644 --- a/svx/source/form/fmpgeimp.cxx +++ b/svx/source/form/fmpgeimp.cxx @@ -58,6 +58,7 @@ #include #include #include +#include using namespace ::com::sun::star::uno; using namespace ::com::sun::star::lang; @@ -76,7 +77,9 @@ FmFormPageImpl::FmFormPageImpl(FmFormPage* _pPage) :pPage(_pPage) ,m_bFirstActivation( sal_True ) ,m_bAttemptedFormCreation( false ) + ,m_bInFind( false ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPageImpl::FmFormPageImpl" ); DBG_CTOR(FmFormPageImpl,NULL); } @@ -163,7 +166,9 @@ FmFormPageImpl::FmFormPageImpl(FmFormPage* _pPage, const FmFormPageImpl& rImpl) :pPage(_pPage) ,m_bFirstActivation( sal_True ) ,m_bAttemptedFormCreation( false ) + ,m_bInFind( false ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPageImpl::FmFormPageImpl" ); DBG_CTOR(FmFormPageImpl,NULL); // clone the Forms collection @@ -239,6 +244,7 @@ FmFormPageImpl::FmFormPageImpl(FmFormPage* _pPage, const FmFormPageImpl& rImpl) //------------------------------------------------------------------------------ const Reference< XNameContainer >& FmFormPageImpl::getForms( bool _bForceCreate ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPageImpl::getForms" ); if ( m_xForms.is() || !_bForceCreate ) return m_xForms; @@ -288,6 +294,7 @@ FmFormPageImpl::~FmFormPageImpl() //------------------------------------------------------------------------------ bool FmFormPageImpl::validateCurForm() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPageImpl::validateCurForm" ); if ( !xCurrentForm.is() ) return false; @@ -302,12 +309,14 @@ bool FmFormPageImpl::validateCurForm() //------------------------------------------------------------------------------ void FmFormPageImpl::setCurForm(Reference< ::com::sun::star::form::XForm > xForm) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPageImpl::setCurForm" ); xCurrentForm = xForm; } //------------------------------------------------------------------------------ Reference< XForm > FmFormPageImpl::getDefaultForm() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPageImpl::getDefaultForm" ); Reference< XForm > xForm; Reference< XNameContainer > xForms( getForms() ); @@ -389,6 +398,7 @@ Reference< ::com::sun::star::form::XForm > FmFormPageImpl::findPlaceInFormCompo const Reference< XFormComponent > & rContent, const Reference< XDataSource > & rDatabase, const ::rtl::OUString& rDBTitle, const ::rtl::OUString& rCursorSource, sal_Int32 nCommandType ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPageImpl::findPlaceInFormComponentHierarchy" ); // if the control already is child of a form, don't do anything if (!rContent.is() || rContent->getParent().is()) return NULL; @@ -478,6 +488,7 @@ Reference< XForm > FmFormPageImpl::findFormForDataSource( const Reference< XForm > & rForm, const Reference< XDataSource > & _rxDatabase, const ::rtl::OUString& _rCursorSource, sal_Int32 nCommandType) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPageImpl::findFormForDataSource" ); Reference< XForm > xResultForm; Reference< XRowSet > xDBForm(rForm, UNO_QUERY); Reference< XPropertySet > xFormProps(rForm, UNO_QUERY); @@ -558,6 +569,7 @@ Reference< XForm > FmFormPageImpl::findFormForDataSource( //------------------------------------------------------------------------------ ::rtl::OUString FmFormPageImpl::setUniqueName(const Reference< XFormComponent > & xFormComponent, const Reference< XForm > & xControls) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPageImpl::setUniqueName" ); #if OSL_DEBUG_LEVEL > 0 try { @@ -599,6 +611,7 @@ Reference< XForm > FmFormPageImpl::findFormForDataSource( UniString FmFormPageImpl::getDefaultName( sal_Int16 _nClassId, const Reference< XServiceInfo >& _rxObject ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPageImpl::getDefaultName" ); sal_uInt16 nResId; switch (_nClassId) @@ -641,6 +654,7 @@ UniString FmFormPageImpl::getDefaultName( sal_Int16 _nClassId, const Reference< ::rtl::OUString FmFormPageImpl::getDefaultName( sal_Int16 _nClassId, const Reference< XForm >& _rxControls, const Reference< XServiceInfo >& _rxObject ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPageImpl::getDefaultName" ); ::rtl::OUString aClassName=getDefaultName( _nClassId, _rxObject ); Reference< ::com::sun::star::container::XNameAccess > xNamedSet( _rxControls, UNO_QUERY ); @@ -650,6 +664,7 @@ UniString FmFormPageImpl::getDefaultName( sal_Int16 _nClassId, const Reference< //------------------------------------------------------------------ ::rtl::OUString FmFormPageImpl::getUniqueName(const ::rtl::OUString& rName, const Reference< ::com::sun::star::container::XNameAccess > & xNamedSet) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmFormPageImpl::getUniqueName" ); Reference< ::com::sun::star::container::XIndexAccess > xIndexSet(xNamedSet, UNO_QUERY); ::rtl::OUString sName( rName ); @@ -664,4 +679,3 @@ UniString FmFormPageImpl::getDefaultName( sal_Int16 _nClassId, const Reference< return sName; } - diff --git a/svx/source/form/fmshimp.cxx b/svx/source/form/fmshimp.cxx index 8c3258fa64..b1bcef490e 100644 --- a/svx/source/form/fmshimp.cxx +++ b/svx/source/form/fmshimp.cxx @@ -112,6 +112,7 @@ #include #include #include +#include #include #include @@ -373,6 +374,7 @@ sal_Bool IsSearchableControl( const ::com::sun::star::uno::Reference< ::com::sun //------------------------------------------------------------------------------ sal_Bool FmXBoundFormFieldIterator::ShouldStepInto(const Reference< XInterface>& _rContainer) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXBoundFormFieldIterator::ShouldStepInto" ); if (_rContainer == m_xStartingPoint) // would be quite stupid to step over the root .... return sal_True; @@ -383,6 +385,7 @@ sal_Bool FmXBoundFormFieldIterator::ShouldStepInto(const Reference< XInterface>& //------------------------------------------------------------------------------ sal_Bool FmXBoundFormFieldIterator::ShouldHandleElement(const Reference< XInterface>& _rElement) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXBoundFormFieldIterator::ShouldHandleElement" ); if (!_rElement.is()) // NULL element return sal_False; @@ -514,6 +517,7 @@ FmXFormShell::FmXFormShell( FmFormShell& _rShell, SfxViewFrame* _pViewFrame ) ,m_bPreparedClose( sal_False ) ,m_bFirstActivation( sal_True ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::FmXFormShell" ); DBG_CTOR(FmXFormShell,NULL); m_aMarkTimer.SetTimeout(100); m_aMarkTimer.SetTimeoutHdl(LINK(this,FmXFormShell,OnTimeOut)); @@ -546,6 +550,7 @@ FmXFormShell::~FmXFormShell() //------------------------------------------------------------------ Reference< XModel > FmXFormShell::getContextDocument() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getContextDocument" ); Reference< XModel > xModel; // determine the type of document we live in @@ -567,12 +572,14 @@ Reference< XModel > FmXFormShell::getContextDocument() const //------------------------------------------------------------------ bool FmXFormShell::isEnhancedForm() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::isEnhancedForm" ); return getDocumentType() == eEnhancedForm; } //------------------------------------------------------------------ bool FmXFormShell::impl_checkDisposed() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::impl_checkDisposed" ); if ( !m_pShell ) { OSL_ENSURE( false, "FmXFormShell::impl_checkDisposed: already disposed!" ); @@ -584,6 +591,7 @@ bool FmXFormShell::impl_checkDisposed() const //------------------------------------------------------------------ ::svxform::DocumentType FmXFormShell::getDocumentType() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getDocumentType" ); if ( m_eDocumentType != eUnknownDocumentType ) return m_eDocumentType; @@ -604,6 +612,7 @@ bool FmXFormShell::impl_checkDisposed() const //------------------------------------------------------------------ bool FmXFormShell::IsReadonlyDoc() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::IsReadonlyDoc" ); if ( impl_checkDisposed() ) return true; @@ -616,16 +625,19 @@ bool FmXFormShell::IsReadonlyDoc() const //------------------------------------------------------------------ Any SAL_CALL FmXFormShell::queryInterface( const Type& type) throw ( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::queryInterface" ); return FmXFormShell_BASE::queryInterface(type); } //------------------------------------------------------------------------------ Sequence< Type > SAL_CALL FmXFormShell::getTypes( ) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getTypes" ); return FmXFormShell_BASE::getTypes(); } //------------------------------------------------------------------------------ Sequence< sal_Int8 > SAL_CALL FmXFormShell::getImplementationId() throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getImplementationId" ); static ::cppu::OImplementationId* pId = 0; if (! pId) { @@ -642,6 +654,7 @@ Sequence< sal_Int8 > SAL_CALL FmXFormShell::getImplementationId() throw(RuntimeE //------------------------------------------------------------------------------ void SAL_CALL FmXFormShell::disposing(const EventObject& e) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::disposing" ); impl_checkDisposed(); if (m_xActiveController == e.Source) @@ -680,6 +693,7 @@ void SAL_CALL FmXFormShell::disposing(const EventObject& e) throw( RuntimeExcept //------------------------------------------------------------------------------ void SAL_CALL FmXFormShell::propertyChange(const PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::propertyChange" ); if ( impl_checkDisposed() ) return; @@ -716,6 +730,7 @@ void SAL_CALL FmXFormShell::propertyChange(const PropertyChangeEvent& evt) throw //------------------------------------------------------------------------------ void FmXFormShell::invalidateFeatures( const ::std::vector< sal_Int32 >& _rFeatures ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::invalidateFeatures" ); if ( impl_checkDisposed() ) return; @@ -745,6 +760,7 @@ void FmXFormShell::invalidateFeatures( const ::std::vector< sal_Int32 >& _rFeatu //------------------------------------------------------------------------------ void SAL_CALL FmXFormShell::formActivated(const EventObject& rEvent) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::formActivated" ); if ( impl_checkDisposed() ) return; @@ -756,6 +772,7 @@ void SAL_CALL FmXFormShell::formActivated(const EventObject& rEvent) throw( Runt //------------------------------------------------------------------------------ void SAL_CALL FmXFormShell::formDeactivated(const EventObject& rEvent) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::formDeactivated" ); if ( impl_checkDisposed() ) return; @@ -766,6 +783,7 @@ void SAL_CALL FmXFormShell::formDeactivated(const EventObject& rEvent) throw( Ru //------------------------------------------------------------------------------ void FmXFormShell::disposing() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::disposing" ); OSL_TRACE( "--- FmXFormShell::disposing : %p, ........, ........\n", this ); impl_checkDisposed(); @@ -854,6 +872,7 @@ void FmXFormShell::disposing() //------------------------------------------------------------------------------ void FmXFormShell::UpdateSlot( sal_Int16 _nId ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::UpdateSlot" ); if ( impl_checkDisposed() ) return; @@ -875,6 +894,7 @@ void FmXFormShell::UpdateSlot( sal_Int16 _nId ) //------------------------------------------------------------------------------ void FmXFormShell::InvalidateSlot( sal_Int16 nId, sal_Bool bWithId ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::InvalidateSlot" ); if ( impl_checkDisposed() ) return; @@ -895,6 +915,7 @@ void FmXFormShell::InvalidateSlot( sal_Int16 nId, sal_Bool bWithId ) //------------------------------------------------------------------------------ void FmXFormShell::LockSlotInvalidation(sal_Bool bLock) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::LockSlotInvalidation" ); if ( impl_checkDisposed() ) return; @@ -941,6 +962,7 @@ IMPL_LINK(FmXFormShell, OnInvalidateSlots, void*, EMPTYARG) //------------------------------------------------------------------------------ void FmXFormShell::ForceUpdateSelection(sal_Bool bAllowInvalidation) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ForceUpdateSelection" ); if ( impl_checkDisposed() ) return; @@ -962,6 +984,7 @@ void FmXFormShell::ForceUpdateSelection(sal_Bool bAllowInvalidation) //------------------------------------------------------------------------------ PopupMenu* FmXFormShell::GetConversionMenu() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::GetConversionMenu" ); const StyleSettings& rSettings = Application::GetSettings().GetStyleSettings(); BOOL bIsHiContrastMode = rSettings.GetMenuColor().IsDark(); @@ -980,6 +1003,7 @@ PopupMenu* FmXFormShell::GetConversionMenu() //------------------------------------------------------------------------------ bool FmXFormShell::isControlConversionSlot( sal_uInt16 nSlotId ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::isControlConversionSlot" ); for ( size_t i = 0; i < sizeof( nConvertSlots ) / sizeof( nConvertSlots[0] ); ++i ) if (nConvertSlots[i] == nSlotId) return true; @@ -989,6 +1013,7 @@ bool FmXFormShell::isControlConversionSlot( sal_uInt16 nSlotId ) //------------------------------------------------------------------------------ bool FmXFormShell::executeControlConversionSlot( sal_uInt16 _nSlotId ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::executeControlConversionSlot" ); OSL_PRECOND( canConvertCurrentSelectionToControl( _nSlotId ), "FmXFormShell::executeControlConversionSlot: illegal call!" ); InterfaceBag::const_iterator aSelectedElement = m_aCurrentSelection.begin(); if ( aSelectedElement == m_aCurrentSelection.end() ) @@ -1000,6 +1025,7 @@ bool FmXFormShell::executeControlConversionSlot( sal_uInt16 _nSlotId ) //------------------------------------------------------------------------------ bool FmXFormShell::executeControlConversionSlot( const Reference< XFormComponent >& _rxObject, sal_uInt16 _nSlotId ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::executeControlConversionSlot" ); if ( impl_checkDisposed() ) return false; @@ -1200,6 +1226,7 @@ bool FmXFormShell::executeControlConversionSlot( const Reference< XFormComponent //------------------------------------------------------------------------------ bool FmXFormShell::canConvertCurrentSelectionToControl( sal_Int16 nConversionSlot ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::canConvertCurrentSelectionToControl" ); if ( m_aCurrentSelection.empty() ) return false; @@ -1238,6 +1265,7 @@ bool FmXFormShell::canConvertCurrentSelectionToControl( sal_Int16 nConversionSlo //------------------------------------------------------------------------------ void FmXFormShell::checkControlConversionSlotsForCurrentSelection( Menu& rMenu ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::checkControlConversionSlotsForCurrentSelection" ); for (sal_Int16 i=0; i disable rMenu.EnableItem( rMenu.GetItemId(i), canConvertCurrentSelectionToControl( rMenu.GetItemId( i ) ) ); @@ -1246,6 +1274,7 @@ void FmXFormShell::checkControlConversionSlotsForCurrentSelection( Menu& rMenu ) //------------------------------------------------------------------------------ void FmXFormShell::LoopGrids(sal_Int16 nWhat) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::LoopGrids" ); if ( impl_checkDisposed() ) return; @@ -1315,6 +1344,7 @@ void FmXFormShell::LoopGrids(sal_Int16 nWhat) //------------------------------------------------------------------------------ Reference< XControlContainer > FmXFormShell::getControlContainerForView() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getControlContainerForView" ); if ( impl_checkDisposed() ) return NULL; @@ -1332,6 +1362,7 @@ Reference< XControlContainer > FmXFormShell::getControlContainerForView() //------------------------------------------------------------------------------ void FmXFormShell::ExecuteTabOrderDialog( const Reference< XTabControllerModel >& _rxForForm ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ExecuteTabOrderDialog" ); if ( impl_checkDisposed() ) return; @@ -1380,6 +1411,7 @@ void FmXFormShell::ExecuteTabOrderDialog( const Reference< XTabControllerModel > //------------------------------------------------------------------------------ void FmXFormShell::ExecuteSearch() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ExecuteSearch" ); if ( impl_checkDisposed() ) return; @@ -1523,6 +1555,7 @@ void FmXFormShell::ExecuteSearch() //------------------------------------------------------------------------------ sal_Bool FmXFormShell::GetY2KState(sal_uInt16& n) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::GetY2KState" ); if ( impl_checkDisposed() ) return sal_False; @@ -1562,6 +1595,7 @@ sal_Bool FmXFormShell::GetY2KState(sal_uInt16& n) //------------------------------------------------------------------------------ void FmXFormShell::SetY2KState(sal_uInt16 n) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetY2KState" ); if ( impl_checkDisposed() ) return; @@ -1636,6 +1670,7 @@ void FmXFormShell::SetY2KState(sal_uInt16 n) //------------------------------------------------------------------------------ void FmXFormShell::CloseExternalFormViewer() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::CloseExternalFormViewer" ); if ( impl_checkDisposed() ) return; @@ -1657,6 +1692,7 @@ void FmXFormShell::CloseExternalFormViewer() //------------------------------------------------------------------------------ Reference< XResultSet> FmXFormShell::getInternalForm(const Reference< XResultSet>& _xForm) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getInternalForm" ); if ( impl_checkDisposed() ) return NULL; @@ -1672,6 +1708,7 @@ Reference< XResultSet> FmXFormShell::getInternalForm(const Reference< XResultSet //------------------------------------------------------------------------------ Reference< XForm> FmXFormShell::getInternalForm(const Reference< XForm>& _xForm) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getInternalForm" ); if ( impl_checkDisposed() ) return NULL; @@ -1700,6 +1737,7 @@ namespace //------------------------------------------------------------------------------ bool FmXFormShell::IsFormSlotEnabled( sal_Int32 _nSlot, FeatureState* _pCompleteState ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::IsFormSlotEnabled" ); const ::svx::ControllerFeatures& rController = lcl_isNavigationRelevant( _nSlot ) ? getNavControllerFeatures() @@ -1715,6 +1753,7 @@ bool FmXFormShell::IsFormSlotEnabled( sal_Int32 _nSlot, FeatureState* _pComplete //------------------------------------------------------------------------------ void FmXFormShell::ExecuteFormSlot( sal_Int32 _nSlot ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ExecuteFormSlot" ); const ::svx::ControllerFeatures& rController = lcl_isNavigationRelevant( _nSlot ) ? getNavControllerFeatures() @@ -1750,6 +1789,7 @@ void FmXFormShell::ExecuteFormSlot( sal_Int32 _nSlot ) //------------------------------------------------------------------------------ void FmXFormShell::impl_switchActiveControllerListening( const bool _bListen ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::impl_switchActiveControllerListening" ); Reference< XComponent> xComp( m_xActiveController, UNO_QUERY ); if ( !xComp.is() ) return; @@ -1763,6 +1803,7 @@ void FmXFormShell::impl_switchActiveControllerListening( const bool _bListen ) //------------------------------------------------------------------------------ void FmXFormShell::setActiveController( const Reference< XFormController>& xController, sal_Bool _bNoSaveOldContent ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::setActiveController" ); if ( impl_checkDisposed() ) return; @@ -1879,12 +1920,14 @@ void FmXFormShell::setActiveController( const Reference< XFormController>& xCont //------------------------------------------------------------------------------ void FmXFormShell::getCurrentSelection( InterfaceBag& /* [out] */ _rSelection ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::getCurrentSelection" ); _rSelection = m_aCurrentSelection; } //------------------------------------------------------------------------------ bool FmXFormShell::setCurrentSelectionFromMark( const SdrMarkList& _rMarkList ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::setCurrentSelectionFromMark" ); m_aLastKnownMarkedControls.clear(); if ( ( _rMarkList.GetMarkCount() > 0 ) && isControlList( _rMarkList ) ) @@ -1896,12 +1939,14 @@ bool FmXFormShell::setCurrentSelectionFromMark( const SdrMarkList& _rMarkList ) //------------------------------------------------------------------------------ bool FmXFormShell::selectLastMarkedControls() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::selectLastMarkedControls" ); return setCurrentSelection( m_aLastKnownMarkedControls ); } //------------------------------------------------------------------------------ bool FmXFormShell::setCurrentSelection( const InterfaceBag& _rSelection ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::setCurrentSelection" ); if ( impl_checkDisposed() ) return false; @@ -1983,12 +2028,14 @@ bool FmXFormShell::setCurrentSelection( const InterfaceBag& _rSelection ) //------------------------------------------------------------------------------ bool FmXFormShell::isSolelySelected( const Reference< XInterface >& _rxObject ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::isSolelySelected" ); return ( m_aCurrentSelection.size() == 1 ) && ( *m_aCurrentSelection.begin() == _rxObject ); } //------------------------------------------------------------------------------ void FmXFormShell::forgetCurrentForm() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::forgetCurrentForm" ); if ( !m_xCurrentForm.is() ) return; @@ -2003,6 +2050,7 @@ void FmXFormShell::forgetCurrentForm() //------------------------------------------------------------------------------ void FmXFormShell::impl_updateCurrentForm( const Reference< XForm >& _rxNewCurForm ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::impl_updateCurrentForm" ); if ( impl_checkDisposed() ) return; @@ -2021,6 +2069,7 @@ void FmXFormShell::impl_updateCurrentForm( const Reference< XForm >& _rxNewCurFo //------------------------------------------------------------------------------ void FmXFormShell::startListening() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::startListening" ); if ( impl_checkDisposed() ) return; @@ -2100,6 +2149,7 @@ void FmXFormShell::startListening() //------------------------------------------------------------------------------ void FmXFormShell::stopListening() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::stopListening" ); if ( impl_checkDisposed() ) return; @@ -2123,6 +2173,7 @@ void FmXFormShell::stopListening() //------------------------------------------------------------------------------ void FmXFormShell::ShowSelectionProperties( sal_Bool bShow ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ShowSelectionProperties" ); if ( impl_checkDisposed() ) return; @@ -2448,6 +2499,7 @@ IMPL_LINK(FmXFormShell, OnSearchContextRequest, FmSearchContext*, pfmscContextIn //------------------------------------------------------------------------------ void FmXFormShell::elementInserted(const ContainerEvent& evt) throw(::com::sun::star::uno::RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::elementInserted" ); if ( impl_checkDisposed() ) return; @@ -2461,6 +2513,7 @@ void FmXFormShell::elementInserted(const ContainerEvent& evt) throw(::com::sun:: //------------------------------------------------------------------------------ void FmXFormShell::elementReplaced(const ContainerEvent& evt) throw(::com::sun::star::uno::RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::elementReplaced" ); if ( impl_checkDisposed() ) return; @@ -2474,6 +2527,7 @@ void FmXFormShell::elementReplaced(const ContainerEvent& evt) throw(::com::sun:: //------------------------------------------------------------------------------ void FmXFormShell::elementRemoved(const ContainerEvent& evt) throw(::com::sun::star::uno::RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::elementRemoved" ); if ( impl_checkDisposed() ) return; @@ -2486,6 +2540,7 @@ void FmXFormShell::elementRemoved(const ContainerEvent& evt) throw(::com::sun::s //------------------------------------------------------------------------------ void FmXFormShell::UpdateForms( sal_Bool _bInvalidate ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::UpdateForms" ); if ( impl_checkDisposed() ) return; @@ -2509,29 +2564,34 @@ void FmXFormShell::UpdateForms( sal_Bool _bInvalidate ) } //------------------------------------------------------------------------------ -void FmXFormShell::AddElement(const Reference< XInterface>& Element) +void FmXFormShell::AddElement(const Reference< XInterface>& _xElement) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::AddElement" ); if ( impl_checkDisposed() ) return; - + impl_AddElement_nothrow(_xElement); +} +// ----------------------------------------------------------------------------- +void FmXFormShell::impl_AddElement_nothrow(const Reference< XInterface>& Element) +{ // am Container horchen - Reference< XIndexContainer> xContainer(Element, UNO_QUERY); + const Reference< XIndexContainer> xContainer(Element, UNO_QUERY); if (xContainer.is()) { - sal_uInt32 nCount = xContainer->getCount(); + const sal_uInt32 nCount = xContainer->getCount(); Reference< XInterface> xElement; - for (sal_uInt32 i = 0; i < nCount; i++) + for (sal_uInt32 i = 0; i < nCount; ++i) { - xContainer->getByIndex(i) >>= xElement; - AddElement(xElement); + xElement.set(xContainer->getByIndex(i),UNO_QUERY); + impl_AddElement_nothrow(xElement); } - Reference< XContainer> xCont(Element, UNO_QUERY); + const Reference< XContainer> xCont(Element, UNO_QUERY); if (xCont.is()) xCont->addContainerListener(this); } - Reference< ::com::sun::star::view::XSelectionSupplier> xSelSupplier(Element, UNO_QUERY); + const Reference< ::com::sun::star::view::XSelectionSupplier> xSelSupplier(Element, UNO_QUERY); if (xSelSupplier.is()) xSelSupplier->addSelectionChangeListener(this); } @@ -2539,27 +2599,32 @@ void FmXFormShell::AddElement(const Reference< XInterface>& Element) //------------------------------------------------------------------------------ void FmXFormShell::RemoveElement(const Reference< XInterface>& Element) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::RemoveElement" ); if ( impl_checkDisposed() ) return; - - Reference< ::com::sun::star::view::XSelectionSupplier> xSelSupplier(Element, UNO_QUERY); + impl_RemoveElement_nothrow(Element); +} +//------------------------------------------------------------------------------ +void FmXFormShell::impl_RemoveElement_nothrow(const Reference< XInterface>& Element) +{ + const Reference< ::com::sun::star::view::XSelectionSupplier> xSelSupplier(Element, UNO_QUERY); if (xSelSupplier.is()) xSelSupplier->removeSelectionChangeListener(this); // Verbindung zu Kindern aufheben - Reference< XIndexContainer> xContainer(Element, UNO_QUERY); + const Reference< XIndexContainer> xContainer(Element, UNO_QUERY); if (xContainer.is()) { - Reference< XContainer> xCont(Element, UNO_QUERY); + const Reference< XContainer> xCont(Element, UNO_QUERY); if (xCont.is()) xCont->removeContainerListener(this); - sal_uInt32 nCount = xContainer->getCount(); + const sal_uInt32 nCount = xContainer->getCount(); Reference< XInterface> xElement; for (sal_uInt32 i = 0; i < nCount; i++) { - xContainer->getByIndex(i) >>= xElement; - RemoveElement(xElement); + xElement.set(xContainer->getByIndex(i),UNO_QUERY); + impl_RemoveElement_nothrow(xElement); } } @@ -2571,6 +2636,7 @@ void FmXFormShell::RemoveElement(const Reference< XInterface>& Element) //------------------------------------------------------------------------------ void FmXFormShell::selectionChanged(const EventObject& rEvent) throw(::com::sun::star::uno::RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::selectionChanged" ); if ( impl_checkDisposed() ) return; @@ -2612,6 +2678,7 @@ IMPL_LINK(FmXFormShell, OnTimeOut, void*, /*EMPTYTAG*/) //------------------------------------------------------------------------ void FmXFormShell::SetSelectionDelayed() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetSelectionDelayed" ); if ( impl_checkDisposed() ) return; @@ -2622,6 +2689,7 @@ void FmXFormShell::SetSelectionDelayed() //------------------------------------------------------------------------ void FmXFormShell::SetSelection(const SdrMarkList& rMarkList) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetSelection" ); if ( impl_checkDisposed() ) return; @@ -2632,6 +2700,7 @@ void FmXFormShell::SetSelection(const SdrMarkList& rMarkList) //------------------------------------------------------------------------ void FmXFormShell::DetermineSelection(const SdrMarkList& rMarkList) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::DetermineSelection" ); if ( setCurrentSelectionFromMark( rMarkList ) && IsPropBrwOpen() ) ShowSelectionProperties( sal_True ); } @@ -2639,6 +2708,7 @@ void FmXFormShell::DetermineSelection(const SdrMarkList& rMarkList) //------------------------------------------------------------------------------ sal_Bool FmXFormShell::IsPropBrwOpen() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::IsPropBrwOpen" ); if ( impl_checkDisposed() ) return sal_False; @@ -2675,6 +2745,7 @@ public: //------------------------------------------------------------------------------ void FmXFormShell::SetDesignMode(sal_Bool bDesign) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetDesignMode" ); if ( impl_checkDisposed() ) return; @@ -2761,6 +2832,7 @@ void FmXFormShell::SetDesignMode(sal_Bool bDesign) //------------------------------------------------------------------------------ Reference< XControl> FmXFormShell::GetControlFromModel(const Reference< XControlModel>& xModel) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::GetControlFromModel" ); if ( impl_checkDisposed() ) return NULL; @@ -2782,6 +2854,7 @@ Reference< XControl> FmXFormShell::GetControlFromModel(const Reference< XControl void FmXFormShell::impl_collectFormSearchContexts_nothrow( const Reference< XInterface>& _rxStartingPoint, const ::rtl::OUString& _rCurrentLevelPrefix, FmFormArray& _out_rForms, ::std::vector< String >& _out_rNames ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::impl_collectFormSearchContexts_nothrow" ); try { Reference< XIndexAccess> xContainer( _rxStartingPoint, UNO_QUERY ); @@ -2836,6 +2909,7 @@ void FmXFormShell::impl_collectFormSearchContexts_nothrow( const Reference< XInt //------------------------------------------------------------------------------ void FmXFormShell::startFiltering() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::startFiltering" ); if ( impl_checkDisposed() ) return; @@ -2902,6 +2976,7 @@ void saveFilter(const Reference< XFormController>& _rxController) //------------------------------------------------------------------------------ void FmXFormShell::stopFiltering(sal_Bool bSave) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::stopFiltering" ); if ( impl_checkDisposed() ) return; @@ -3040,6 +3115,7 @@ void clearFilter(const Reference< XFormController>& _rxController) //------------------------------------------------------------------------------ void FmXFormShell::clearFilter() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::clearFilter" ); if ( impl_checkDisposed() ) return; @@ -3070,6 +3146,7 @@ void FmXFormShell::clearFilter() //------------------------------------------------------------------------------ void FmXFormShell::setControlLocks() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::setControlLocks" ); if ( impl_checkDisposed() ) return; @@ -3117,6 +3194,7 @@ void FmXFormShell::setControlLocks() //------------------------------------------------------------------------------ void FmXFormShell::restoreControlLocks() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::restoreControlLocks" ); if ( impl_checkDisposed() ) return; @@ -3170,6 +3248,7 @@ void FmXFormShell::restoreControlLocks() //------------------------------------------------------------------------------ void FmXFormShell::DoAsyncCursorAction(const Reference< XFormController>& _xController, CURSOR_ACTION _eWhat) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::DoAsyncCursorAction" ); if ( impl_checkDisposed() ) return; @@ -3180,6 +3259,7 @@ void FmXFormShell::DoAsyncCursorAction(const Reference< XFormController>& _xCont //------------------------------------------------------------------------------ void FmXFormShell::DoAsyncCursorAction(const Reference< XResultSet>& _xForm, CURSOR_ACTION _eWhat) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::DoAsyncCursorAction" ); if ( impl_checkDisposed() ) return; @@ -3227,6 +3307,7 @@ void FmXFormShell::DoAsyncCursorAction(const Reference< XResultSet>& _xForm, CUR //------------------------------------------------------------------------------ sal_Bool FmXFormShell::HasPendingCursorAction(const Reference< XResultSet>& _xForm) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::HasPendingCursorAction" ); if ( impl_checkDisposed() ) return sal_False; @@ -3243,6 +3324,7 @@ sal_Bool FmXFormShell::HasPendingCursorAction(const Reference< XResultSet>& _xFo //------------------------------------------------------------------------------ sal_Bool FmXFormShell::HasPendingCursorAction(const Reference< XFormController>& xController) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::HasPendingCursorAction" ); if ( impl_checkDisposed() ) return sal_False; @@ -3255,6 +3337,7 @@ sal_Bool FmXFormShell::HasPendingCursorAction(const Reference< XFormController>& //------------------------------------------------------------------------------ sal_Bool FmXFormShell::HasAnyPendingCursorAction() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::HasAnyPendingCursorAction" ); ::osl::MutexGuard aGuard( const_cast< FmXFormShell* >( this )->m_aAsyncSafety ); for ( CursorActions::const_iterator aIter = m_aCursorActions.begin(); aIter != m_aCursorActions.end(); ++aIter ) @@ -3268,6 +3351,7 @@ sal_Bool FmXFormShell::HasAnyPendingCursorAction() const //------------------------------------------------------------------------------ void FmXFormShell::CancelAnyPendingCursorAction() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::CancelAnyPendingCursorAction" ); if ( impl_checkDisposed() ) return; @@ -3368,6 +3452,7 @@ IMPL_LINK(FmXFormShell, OnCursorActionDoneMainThread, FmCursorActionThread*, pTh //------------------------------------------------------------------------------ void FmXFormShell::CreateExternalView() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::CreateExternalView" ); if ( impl_checkDisposed() ) return; @@ -3801,6 +3886,7 @@ void FmXFormShell::CreateExternalView() //------------------------------------------------------------------------ void FmXFormShell::implAdjustConfigCache() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::implAdjustConfigCache" ); // get (cache) the wizard usage flag Sequence< ::rtl::OUString > aNames(1); aNames[0] = ::rtl::OUString::createFromAscii("FormControlPilotsEnabled"); @@ -3812,6 +3898,7 @@ void FmXFormShell::implAdjustConfigCache() //------------------------------------------------------------------------ void FmXFormShell::Notify( const com::sun::star::uno::Sequence< rtl::OUString >& _rPropertyNames) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::Notify" ); if ( impl_checkDisposed() ) return; @@ -3828,6 +3915,7 @@ void FmXFormShell::Notify( const com::sun::star::uno::Sequence< rtl::OUString >& //------------------------------------------------------------------------ void FmXFormShell::SetWizardUsing(sal_Bool _bUseThem) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetWizardUsing" ); m_bUseWizards = _bUseThem; Sequence< ::rtl::OUString > aNames(1); @@ -3840,6 +3928,7 @@ void FmXFormShell::SetWizardUsing(sal_Bool _bUseThem) //------------------------------------------------------------------------ void FmXFormShell::viewDeactivated( FmFormView& _rCurrentView, sal_Bool _bDeactivateController /* = sal_True */ ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::viewDeactivated" ); OSL_TRACE( "--- FmXFormShell::viewDeactivated: %p, %p, ........\n", this, &_rCurrentView ); if ( _rCurrentView.GetImpl() && !_rCurrentView.IsDesignMode() ) @@ -3913,6 +4002,7 @@ IMPL_LINK( FmXFormShell, OnFormsCreated, FmFormPage*, /*_pPage*/ ) //------------------------------------------------------------------------ void FmXFormShell::viewActivated( FmFormView& _rCurrentView, sal_Bool _bSyncAction /* = sal_False */ ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::viewActivated" ); OSL_TRACE( "--- FmXFormShell::viewActivated : %p, %p, ........\n", this, &_rCurrentView ); FmFormPage* pPage = _rCurrentView.GetCurPage(); @@ -3963,6 +4053,7 @@ void FmXFormShell::viewActivated( FmFormView& _rCurrentView, sal_Bool _bSyncActi //------------------------------------------------------------------------------ void FmXFormShell::impl_defaultCurrentForm_nothrow() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::impl_defaultCurrentForm_nothrow" ); if ( impl_checkDisposed() ) return; @@ -3993,6 +4084,7 @@ void FmXFormShell::impl_defaultCurrentForm_nothrow() //------------------------------------------------------------------------------ void FmXFormShell::smartControlReset( const Reference< XIndexAccess >& _rxModels ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::smartControlReset" ); if (!_rxModels.is()) { DBG_ERROR("FmXFormShell::smartControlReset: invalid container!"); @@ -4062,6 +4154,7 @@ IMPL_LINK( FmXFormShell, OnLoadForms, FmFormPage*, /*_pPage*/ ) //------------------------------------------------------------------------ void FmXFormShell::loadForms( FmFormPage* _pPage, const sal_uInt16 _nBehaviour /* FORMS_LOAD | FORMS_SYNC */ ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::loadForms" ); DBG_ASSERT( ( _nBehaviour & ( FORMS_ASYNC | FORMS_UNLOAD ) ) != ( FORMS_ASYNC | FORMS_UNLOAD ), "FmXFormShell::loadForms: async loading not supported - this will heavily fail!" ); @@ -4139,35 +4232,41 @@ void FmXFormShell::loadForms( FmFormPage* _pPage, const sal_uInt16 _nBehaviour / //------------------------------------------------------------------------ void FmXFormShell::ExecuteTextAttribute( SfxRequest& _rReq ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ExecuteTextAttribute" ); m_pTextShell->ExecuteTextAttribute( _rReq ); } //------------------------------------------------------------------------ void FmXFormShell::GetTextAttributeState( SfxItemSet& _rSet ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::GetTextAttributeState" ); m_pTextShell->GetTextAttributeState( _rSet ); } //------------------------------------------------------------------------ bool FmXFormShell::IsActiveControl( bool _bCountRichTextOnly ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::IsActiveControl" ); return m_pTextShell->IsActiveControl( _bCountRichTextOnly ); } //------------------------------------------------------------------------ void FmXFormShell::ForgetActiveControl() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::ForgetActiveControl" ); m_pTextShell->ForgetActiveControl(); } //------------------------------------------------------------------------ void FmXFormShell::SetControlActivationHandler( const Link& _rHdl ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::SetControlActivationHandler" ); m_pTextShell->SetControlActivationHandler( _rHdl ); } //------------------------------------------------------------------------ void FmXFormShell::handleShowPropertiesRequest() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::handleShowPropertiesRequest" ); if ( onlyControlsAreMarked() ) ShowSelectionProperties( sal_True ); } @@ -4175,6 +4274,7 @@ void FmXFormShell::handleShowPropertiesRequest() //------------------------------------------------------------------------ void FmXFormShell::handleMouseButtonDown( const SdrViewEvent& _rViewEvent ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::handleMouseButtonDown" ); // catch simple double clicks if ( ( _rViewEvent.nMouseClicks == 2 ) && ( _rViewEvent.nMouseCode == MOUSE_LEFT ) ) { @@ -4261,6 +4361,7 @@ ControlConversionMenuController::ControlConversionMenuController( sal_uInt16 _nI //------------------------------------------------------------------------------ ControlConversionMenuController::~ControlConversionMenuController() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "ControlConversionMenuController::~ControlConversionMenuController" ); m_pMainMenu->SetPopupMenu(SID_FM_CHANGECONTROLTYPE, NULL); delete m_pConversionMenu; } @@ -4322,6 +4423,7 @@ FmCursorActionThread::FmCursorActionThread(const Reference< XResultSet>& _xDataS ,m_bTerminated(sal_False) ,m_bRunFailed(sal_False) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmCursorActionThread::FmCursorActionThread" ); DBG_ASSERT(m_xDataSource.is() && Reference< XCancellable>(m_xDataSource, UNO_QUERY).is(), "FmCursorActionThread::FmCursorActionThread : invalid cursor !"); } diff --git a/svx/source/form/fmtools.cxx b/svx/source/form/fmtools.cxx index 6a3bdcde51..652c868c69 100644 --- a/svx/source/form/fmtools.cxx +++ b/svx/source/form/fmtools.cxx @@ -107,6 +107,7 @@ #include #include #include +#include namespace svxform { @@ -158,6 +159,7 @@ namespace // ------------------------------------------------------------------------------ void displayException(const Any& _rExcept, Window* _pParent) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "fmtools::displayException" ); // check whether we need to display it if ( !lcl_shouldDisplayError( _rExcept ) ) return; @@ -213,6 +215,7 @@ void displayException(const ::com::sun::star::sdb::SQLErrorEvent& _rEvent, Windo //------------------------------------------------------------------------------ Reference< XInterface > cloneUsingProperties(const Reference< ::com::sun::star::io::XPersistObject>& _xObj) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "fmtools::cloneUsingProperties" ); if (!_xObj.is()) return Reference< XInterface >(); @@ -276,6 +279,7 @@ Reference< XInterface > cloneUsingProperties(const Reference< ::com::sun::star:: //------------------------------------------------------------------------------ sal_Bool searchElement(const Reference< ::com::sun::star::container::XIndexAccess>& xCont, const Reference< XInterface >& xElement) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "fmtools::searchElement" ); if (!xCont.is() || !xElement.is()) return sal_False; @@ -308,6 +312,7 @@ sal_Bool searchElement(const Reference< ::com::sun::star::container::XIndexAcces //------------------------------------------------------------------------------ sal_Int32 getElementPos(const Reference< ::com::sun::star::container::XIndexAccess>& xCont, const Reference< XInterface >& xElement) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "fmtools::getElementPos" ); sal_Int32 nIndex = -1; if (!xCont.is()) return nIndex; @@ -323,8 +328,7 @@ sal_Int32 getElementPos(const Reference< ::com::sun::star::container::XIndexAcce { try { - Reference< XInterface > xCurrent; - xCont->getByIndex( nIndex ) >>= xCurrent; + Reference< XInterface > xCurrent(xCont->getByIndex( nIndex ),UNO_QUERY); DBG_ASSERT( xCurrent.get() == Reference< XInterface >( xCurrent, UNO_QUERY ).get(), "getElementPos: container element not normalized!" ); if ( xNormalized.get() == xCurrent.get() ) @@ -343,6 +347,7 @@ sal_Int32 getElementPos(const Reference< ::com::sun::star::container::XIndexAcce //------------------------------------------------------------------ String getFormComponentAccessPath(const Reference< XInterface >& _xElement, Reference< XInterface >& _rTopLevelElement) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "fmtools::getFormComponentAccessPath" ); Reference< ::com::sun::star::form::XFormComponent> xChild(_xElement, UNO_QUERY); Reference< ::com::sun::star::container::XIndexAccess> xParent; if (xChild.is()) @@ -385,6 +390,7 @@ String getFormComponentAccessPath(const Reference< XInterface >& _xElement) //------------------------------------------------------------------------------ Reference< XInterface > getElementFromAccessPath(const Reference< ::com::sun::star::container::XIndexAccess>& _xParent, const String& _rRelativePath) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "fmtools::getElementFromAccessPath" ); if (!_xParent.is()) return Reference< XInterface >(); Reference< ::com::sun::star::container::XIndexAccess> xContainer(_xParent); @@ -428,6 +434,7 @@ _Optlink //------------------------------------------------------------------------------ sal_Int32 findPos(const ::rtl::OUString& aStr, const Sequence< ::rtl::OUString>& rList) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "fmtools::findPos" ); const ::rtl::OUString* pStrList = rList.getConstArray(); ::rtl::OUString* pResult = (::rtl::OUString*) bsearch(&aStr, (void*)pStrList, rList.getLength(), sizeof(::rtl::OUString), &NameCompare); @@ -441,6 +448,7 @@ sal_Int32 findPos(const ::rtl::OUString& aStr, const Sequence< ::rtl::OUString>& //------------------------------------------------------------------ Reference< ::com::sun::star::frame::XModel> getXModel(const Reference< XInterface >& xIface) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "fmtools::getXModel" ); Reference< ::com::sun::star::frame::XModel> xModel(xIface, UNO_QUERY); if (xModel.is()) return xModel; @@ -460,6 +468,7 @@ Reference< ::com::sun::star::frame::XModel> getXModel(const Reference< XInterfac //------------------------------------------------------------------ ::rtl::OUString getLabelName(const Reference< ::com::sun::star::beans::XPropertySet>& xControlModel) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "fmtools::getLabelName" ); if (!xControlModel.is()) return ::rtl::OUString(); @@ -617,6 +626,7 @@ void FmXDisposeMultiplexer::dispose() //------------------------------------------------------------------------------ sal_Int16 getControlTypeByObject(const Reference< ::com::sun::star::lang::XServiceInfo>& _rxObject) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "fmtools::getControlTypeByObject" ); // ask for the persistent service name Reference< ::com::sun::star::io::XPersistObject> xPersistence(_rxObject, UNO_QUERY); DBG_ASSERT(xPersistence.is(), "::getControlTypeByObject : argument shold be an ::com::sun::star::io::XPersistObject !"); @@ -721,6 +731,7 @@ sal_Int16 getControlTypeByObject(const Reference< ::com::sun::star::lang::XServi //------------------------------------------------------------------------------ Sequence< ::rtl::OUString> getEventMethods(const Type& type) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "fmtools::getEventMethods" ); typelib_InterfaceTypeDescription *pType=0; type.getDescription( (typelib_TypeDescription**)&pType); @@ -752,6 +763,7 @@ Sequence< ::rtl::OUString> getEventMethods(const Type& type) void TransferEventScripts(const Reference< ::com::sun::star::awt::XControlModel>& xModel, const Reference< ::com::sun::star::awt::XControl>& xControl, const Sequence< ::com::sun::star::script::ScriptEventDescriptor>& rTransferIfAvailable) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "fmtools::TransferEventScripts" ); // first check if we have a XEventAttacherManager for the model Reference< ::com::sun::star::container::XChild> xModelChild(xModel, UNO_QUERY); if (!xModelChild.is()) @@ -849,6 +861,7 @@ void TransferEventScripts(const Reference< ::com::sun::star::awt::XControlModel> //------------------------------------------------------------------------------ sal_Int16 GridView2ModelPos(const Reference< ::com::sun::star::container::XIndexAccess>& rColumns, sal_Int16 nViewPos) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "fmtools::GridView2ModelPos" ); try { if (rColumns.is()) @@ -1056,6 +1069,7 @@ void FmXDispatchInterceptorImpl::disposing() //------------------------------------------------------------------------------ sal_Bool isLoadable( const Reference< XInterface >& _rxLoadable ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "fmtools::isLoadable" ); // determines whether a form should be loaded or not // if there is no datasource or connection there is no reason to load a form Reference< XPropertySet > xSet( _rxLoadable, UNO_QUERY ); @@ -1093,6 +1107,7 @@ sal_Bool isLoadable( const Reference< XInterface >& _rxLoadable ) //------------------------------------------------------------------------------ void setConnection(const Reference< ::com::sun::star::sdbc::XRowSet>& _rxRowSet, const Reference< ::com::sun::star::sdbc::XConnection>& _rxConn) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "fmtools::setConnection" ); Reference< ::com::sun::star::beans::XPropertySet> xRowSetProps(_rxRowSet, UNO_QUERY); if (xRowSetProps.is()) { @@ -1111,6 +1126,7 @@ void setConnection(const Reference< ::com::sun::star::sdbc::XRowSet>& _rxRowSet, //------------------------------------------------------------------------------ sal_Bool isRowSetAlive(const Reference< XInterface >& _rxRowSet) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "fmtools::isRowSetAlive" ); sal_Bool bIsAlive = sal_False; Reference< ::com::sun::star::sdbcx::XColumnsSupplier> xSupplyCols(_rxRowSet, UNO_QUERY); Reference< ::com::sun::star::container::XIndexAccess> xCols; diff --git a/svx/source/form/fmundo.cxx b/svx/source/form/fmundo.cxx index 38261ad613..482da6ab7d 100644 --- a/svx/source/form/fmundo.cxx +++ b/svx/source/form/fmundo.cxx @@ -52,6 +52,7 @@ #ifndef _SVX_FMRESIDS_HRC #include "fmresids.hrc" #endif +#include #include #include "fmpgeimp.hxx" #include "dbtoolsclient.hxx" @@ -127,6 +128,7 @@ FmXUndoEnvironment::FmXUndoEnvironment(FmFormModel& _rModel) ,bReadOnly( sal_False ) ,m_bDisposed( false ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::FmXUndoEnvironment" ); DBG_CTOR(FmXUndoEnvironment,NULL); } @@ -141,6 +143,7 @@ FmXUndoEnvironment::~FmXUndoEnvironment() //------------------------------------------------------------------------------ void FmXUndoEnvironment::dispose() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::dispose" ); OSL_ENSURE( !m_bDisposed, "FmXUndoEnvironment::dispose: disposed twice?" ); if ( !m_bDisposed ) return; @@ -189,6 +192,7 @@ void FmXUndoEnvironment::dispose() //------------------------------------------------------------------------------ void FmXUndoEnvironment::ModeChanged() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::ModeChanged" ); OSL_PRECOND( rModel.GetObjectShell(), "FmXUndoEnvironment::ModeChanged: no object shell anymore!" ); if ( !rModel.GetObjectShell() ) return; @@ -232,6 +236,7 @@ void FmXUndoEnvironment::ModeChanged() //------------------------------------------------------------------------------ void FmXUndoEnvironment::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::Notify" ); if (rHint.ISA(SdrHint)) { SdrHint* pSdrHint = (SdrHint*)&rHint; @@ -281,6 +286,7 @@ void FmXUndoEnvironment::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint ) //------------------------------------------------------------------ void FmXUndoEnvironment::Inserted(SdrObject* pObj) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::Inserted" ); if (pObj->GetObjInventor() == FmFormInventor) { FmFormObj* pFormObj = PTR_CAST(FmFormObj, pObj); @@ -297,6 +303,7 @@ void FmXUndoEnvironment::Inserted(SdrObject* pObj) //------------------------------------------------------------------------------ void FmXUndoEnvironment::Inserted(FmFormObj* pObj) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::Inserted" ); DBG_ASSERT( pObj, "FmXUndoEnvironment::Inserted: invalid object!" ); if ( !pObj ) return; @@ -354,6 +361,7 @@ void FmXUndoEnvironment::Inserted(FmFormObj* pObj) //------------------------------------------------------------------ void FmXUndoEnvironment::Removed(SdrObject* pObj) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::Removed" ); if ( pObj->IsVirtualObj() ) // for virtual objects, we've already been notified of the removal of the master // object, which is sufficient here @@ -375,13 +383,13 @@ void FmXUndoEnvironment::Removed(SdrObject* pObj) //------------------------------------------------------------------------------ void FmXUndoEnvironment::Removed(FmFormObj* pObj) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::Removed" ); DBG_ASSERT( pObj, "FmXUndoEnvironment::Removed: invalid object!" ); if ( !pObj ) return; // ist das Control noch einer Form zugeordnet - Reference< XInterface > xModel(pObj->GetUnoControlModel(), UNO_QUERY); - Reference< XFormComponent > xContent(xModel, UNO_QUERY); + Reference< XFormComponent > xContent(pObj->GetUnoControlModel(), UNO_QUERY); if (xContent.is()) { // das Object wird aus einer Liste herausgenommen @@ -395,7 +403,7 @@ void FmXUndoEnvironment::Removed(FmFormObj* pObj) { Reference< XIndexAccess > xIndexAccess((XIndexContainer*)xForm.get()); // Feststellen an welcher Position sich das Kind befunden hat - sal_Int32 nPos = getElementPos(xIndexAccess, xContent); + const sal_Int32 nPos = getElementPos(xIndexAccess, xContent); if (nPos >= 0) { Sequence< ScriptEventDescriptor > aEvts; @@ -422,6 +430,7 @@ void FmXUndoEnvironment::Removed(FmFormObj* pObj) //------------------------------------------------------------------------------ void SAL_CALL FmXUndoEnvironment::disposing(const EventObject& e) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::disposing" ); // check if it's an object we have cached informations about if (m_pPropertySetCache) { @@ -440,6 +449,7 @@ void SAL_CALL FmXUndoEnvironment::disposing(const EventObject& e) throw( Runtime //------------------------------------------------------------------------------ void SAL_CALL FmXUndoEnvironment::propertyChange(const PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::propertyChange" ); ::osl::ClearableMutexGuard aGuard( m_aMutex ); if (!IsLocked()) @@ -635,6 +645,7 @@ void SAL_CALL FmXUndoEnvironment::propertyChange(const PropertyChangeEvent& evt) //------------------------------------------------------------------------------ void SAL_CALL FmXUndoEnvironment::elementInserted(const ContainerEvent& evt) throw(::com::sun::star::uno::RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::elementInserted" ); ::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() ); ::osl::MutexGuard aGuard( m_aMutex ); @@ -650,6 +661,7 @@ void SAL_CALL FmXUndoEnvironment::elementInserted(const ContainerEvent& evt) thr //------------------------------------------------------------------------------ void FmXUndoEnvironment::implSetModified() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::implSetModified" ); if ( !IsLocked() && rModel.GetObjectShell() ) { rModel.GetObjectShell()->SetModified( sal_True ); @@ -659,6 +671,7 @@ void FmXUndoEnvironment::implSetModified() //------------------------------------------------------------------------------ void SAL_CALL FmXUndoEnvironment::elementReplaced(const ContainerEvent& evt) throw(::com::sun::star::uno::RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::elementReplaced" ); ::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() ); ::osl::MutexGuard aGuard( m_aMutex ); @@ -676,6 +689,7 @@ void SAL_CALL FmXUndoEnvironment::elementReplaced(const ContainerEvent& evt) thr //------------------------------------------------------------------------------ void SAL_CALL FmXUndoEnvironment::elementRemoved(const ContainerEvent& evt) throw(::com::sun::star::uno::RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::elementRemoved" ); ::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() ); ::osl::MutexGuard aGuard( m_aMutex ); @@ -689,12 +703,14 @@ void SAL_CALL FmXUndoEnvironment::elementRemoved(const ContainerEvent& evt) thro //------------------------------------------------------------------------------ void SAL_CALL FmXUndoEnvironment::modified( const EventObject& /*aEvent*/ ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::modified" ); implSetModified(); } //------------------------------------------------------------------------------ void FmXUndoEnvironment::AddForms(const Reference< XNameContainer > & rForms) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::AddForms" ); Lock(); Reference< XInterface > xInt(rForms, UNO_QUERY); AddElement(xInt); @@ -704,6 +720,7 @@ void FmXUndoEnvironment::AddForms(const Reference< XNameContainer > & rForms) //------------------------------------------------------------------------------ void FmXUndoEnvironment::RemoveForms(const Reference< XNameContainer > & rForms) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::RemoveForms" ); Lock(); Reference< XInterface > xInt(rForms, UNO_QUERY); RemoveElement(xInt); @@ -713,6 +730,7 @@ void FmXUndoEnvironment::RemoveForms(const Reference< XNameContainer > & rForms) //------------------------------------------------------------------------------ void FmXUndoEnvironment::TogglePropertyListening(const Reference< XInterface > & Element) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::TogglePropertyListening" ); // am Container horchen Reference< XIndexContainer > xContainer(Element, UNO_QUERY); if (xContainer.is()) @@ -740,6 +758,7 @@ void FmXUndoEnvironment::TogglePropertyListening(const Reference< XInterface > & //------------------------------------------------------------------------------ void FmXUndoEnvironment::switchListening( const Reference< XIndexContainer >& _rxContainer, bool _bStartListening ) SAL_THROW(()) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::switchListening" ); OSL_PRECOND( _rxContainer.is(), "FmXUndoEnvironment::switchListening: invalid container!" ); if ( !_rxContainer.is() ) return; @@ -789,6 +808,7 @@ void FmXUndoEnvironment::switchListening( const Reference< XIndexContainer >& _r //------------------------------------------------------------------------------ void FmXUndoEnvironment::switchListening( const Reference< XInterface >& _rxObject, bool _bStartListening ) SAL_THROW(()) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::switchListening" ); OSL_PRECOND( _rxObject.is(), "FmXUndoEnvironment::switchListening: how should I listen at a NULL object?" ); try @@ -823,6 +843,7 @@ void FmXUndoEnvironment::switchListening( const Reference< XInterface >& _rxObje //------------------------------------------------------------------------------ void FmXUndoEnvironment::AddElement(const Reference< XInterface >& _rxElement ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::AddElement" ); OSL_ENSURE( !m_bDisposed, "FmXUndoEnvironment::AddElement: not when I'm already disposed!" ); // am Container horchen @@ -836,6 +857,7 @@ void FmXUndoEnvironment::AddElement(const Reference< XInterface >& _rxElement ) //------------------------------------------------------------------------------ void FmXUndoEnvironment::RemoveElement(const Reference< XInterface >& _rxElement) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXUndoEnvironment::RemoveElement" ); if ( m_bDisposed ) return; @@ -870,6 +892,7 @@ FmUndoPropertyAction::FmUndoPropertyAction(FmFormModel& rNewMod, const PropertyC ,aNewValue(evt.NewValue) ,aOldValue(evt.OldValue) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmUndoPropertyAction::FmUndoPropertyAction" ); if (rNewMod.GetObjectShell()) rNewMod.GetObjectShell()->SetModified(sal_True); if(static_STR_UNDO_PROPERTY.Len() == 0) @@ -880,6 +903,7 @@ FmUndoPropertyAction::FmUndoPropertyAction(FmFormModel& rNewMod, const PropertyC //------------------------------------------------------------------------------ void FmUndoPropertyAction::Undo() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmUndoPropertyAction::Undo" ); FmXUndoEnvironment& rEnv = ((FmFormModel&)rMod).GetUndoEnv(); if (xObj.is() && !rEnv.IsLocked()) @@ -900,6 +924,7 @@ void FmUndoPropertyAction::Undo() //------------------------------------------------------------------------------ void FmUndoPropertyAction::Redo() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmUndoPropertyAction::Redo" ); FmXUndoEnvironment& rEnv = ((FmFormModel&)rMod).GetUndoEnv(); if (xObj.is() && !rEnv.IsLocked()) @@ -920,6 +945,7 @@ void FmUndoPropertyAction::Redo() //------------------------------------------------------------------------------ String FmUndoPropertyAction::GetComment() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmUndoPropertyAction::GetComment" ); String aStr(static_STR_UNDO_PROPERTY); aStr.SearchAndReplace( '#', aPropertyName ); @@ -939,6 +965,7 @@ FmUndoContainerAction::FmUndoContainerAction(FmFormModel& _rMod, ,m_nIndex( nIdx ) ,m_eAction( _eAction ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmUndoContainerAction::FmUndoContainerAction" ); OSL_ENSURE( nIdx >= 0, "FmUndoContainerAction::FmUndoContainerAction: invalid index!" ); // some old code suggested this could be a valid argument. However, this code was // buggy, and it *seemed* that nobody used it - so it was removed. @@ -984,6 +1011,7 @@ FmUndoContainerAction::~FmUndoContainerAction() //------------------------------------------------------------------------------ void FmUndoContainerAction::implReInsert( ) SAL_THROW( ( Exception ) ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmUndoContainerAction::implReInsert" ); if ( m_xContainer->getCount() >= m_nIndex ) { // insert the element @@ -1013,6 +1041,7 @@ void FmUndoContainerAction::implReInsert( ) SAL_THROW( ( Exception ) ) //------------------------------------------------------------------------------ void FmUndoContainerAction::implReRemove( ) SAL_THROW( ( Exception ) ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmUndoContainerAction::implReRemove" ); Reference< XInterface > xElement; if ( ( m_nIndex >= 0 ) && ( m_nIndex < m_xContainer->getCount() ) ) m_xContainer->getByIndex( m_nIndex ) >>= xElement; @@ -1041,6 +1070,7 @@ void FmUndoContainerAction::implReRemove( ) SAL_THROW( ( Exception ) ) //------------------------------------------------------------------------------ void FmUndoContainerAction::Undo() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmUndoContainerAction::Undo" ); FmXUndoEnvironment& rEnv = static_cast< FmFormModel& >( rMod ).GetUndoEnv(); if ( m_xContainer.is() && !rEnv.IsLocked() && m_xElement.is() ) @@ -1070,6 +1100,7 @@ void FmUndoContainerAction::Undo() //------------------------------------------------------------------------------ void FmUndoContainerAction::Redo() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmUndoContainerAction::Redo" ); FmXUndoEnvironment& rEnv = static_cast< FmFormModel& >( rMod ).GetUndoEnv(); if ( m_xContainer.is() && !rEnv.IsLocked() && m_xElement.is() ) { @@ -1101,6 +1132,7 @@ FmUndoModelReplaceAction::FmUndoModelReplaceAction(FmFormModel& _rMod, SdrUnoObj ,m_xReplaced(_xReplaced) ,m_pObject(_pObject) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmUndoModelReplaceAction::FmUndoModelReplaceAction" ); } //------------------------------------------------------------------------------ @@ -1119,6 +1151,7 @@ FmUndoModelReplaceAction::~FmUndoModelReplaceAction() //------------------------------------------------------------------------------ void FmUndoModelReplaceAction::Undo() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmUndoModelReplaceAction::Undo" ); try { Reference< XControlModel > xCurrentModel( m_pObject->GetUnoControlModel() ); @@ -1158,5 +1191,6 @@ void FmUndoModelReplaceAction::Undo() //------------------------------------------------------------------------------ String FmUndoModelReplaceAction::GetComment() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmUndoModelReplaceAction::GetComment" ); return SVX_RES(RID_STR_UNDO_MODEL_REPLACE); } diff --git a/svx/source/form/fmvwimp.cxx b/svx/source/form/fmvwimp.cxx index a82064d6b6..a55785f1ab 100644 --- a/svx/source/form/fmvwimp.cxx +++ b/svx/source/form/fmvwimp.cxx @@ -94,6 +94,7 @@ #include #include #include +#include #include @@ -164,6 +165,7 @@ FmXPageViewWinRec::FmXPageViewWinRec( const ::comphelper::ComponentContext& _rCo m_pViewImpl( _pViewImpl ), m_pWindow( dynamic_cast< Window* >( &_rWindow.GetPaintWindow().GetOutputDevice() ) ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::FmXPageViewWinRec" ); DBG_CTOR(FmXPageViewWinRec,NULL); // create an XFormController for every form @@ -197,6 +199,7 @@ FmXPageViewWinRec::~FmXPageViewWinRec() //------------------------------------------------------------------ void FmXPageViewWinRec::dispose() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::dispose" ); for ( ::std::vector< Reference< XFormController > >::const_iterator i = m_aControllerList.begin(); i != m_aControllerList.end(); ++i @@ -232,12 +235,14 @@ void FmXPageViewWinRec::dispose() //------------------------------------------------------------------------------ sal_Bool SAL_CALL FmXPageViewWinRec::hasElements(void) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::hasElements" ); return getCount() != 0; } //------------------------------------------------------------------------------ Type SAL_CALL FmXPageViewWinRec::getElementType(void) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::getElementType" ); return ::getCppuType((const Reference< XFormController>*)0); } @@ -245,6 +250,7 @@ Type SAL_CALL FmXPageViewWinRec::getElementType(void) throw( RuntimeException ) //------------------------------------------------------------------------------ Reference< XEnumeration > SAL_CALL FmXPageViewWinRec::createEnumeration(void) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::createEnumeration" ); return new ::comphelper::OEnumerationByIndex(this); } @@ -252,12 +258,14 @@ Reference< XEnumeration > SAL_CALL FmXPageViewWinRec::createEnumeration(void) t //------------------------------------------------------------------------------ sal_Int32 SAL_CALL FmXPageViewWinRec::getCount(void) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::getCount" ); return m_aControllerList.size(); } //------------------------------------------------------------------------------ Any SAL_CALL FmXPageViewWinRec::getByIndex(sal_Int32 nIndex) throw( IndexOutOfBoundsException, WrappedTargetException, RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::getByIndex" ); if (nIndex < 0 || nIndex >= getCount()) throw IndexOutOfBoundsException(); @@ -294,6 +302,7 @@ Reference< XFormController > getControllerSearchChilds( const Reference< XIndex //------------------------------------------------------------------------ Reference< XFormController > FmXPageViewWinRec::getController( const Reference< XForm > & xForm ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::getController" ); Reference< XTabControllerModel > xModel(xForm, UNO_QUERY); for (::std::vector< Reference< XFormController > >::const_iterator i = m_aControllerList.begin(); i != m_aControllerList.end(); i++) @@ -312,6 +321,7 @@ Reference< XFormController > FmXPageViewWinRec::getController( const Reference< //------------------------------------------------------------------------ void FmXPageViewWinRec::setController(const Reference< XForm > & xForm, FmXFormController* _pParent ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::setController" ); DBG_ASSERT( xForm.is(), "FmXPageViewWinRec::setController: there should be a form!" ); Reference< XIndexAccess > xFormCps(xForm, UNO_QUERY); if (!xFormCps.is()) @@ -378,6 +388,7 @@ void FmXPageViewWinRec::setController(const Reference< XForm > & xForm, FmXForm //------------------------------------------------------------------------ void FmXPageViewWinRec::updateTabOrder( const Reference< XForm >& _rxForm ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXPageViewWinRec::updateTabOrder" ); OSL_PRECOND( _rxForm.is(), "FmXPageViewWinRec::updateTabOrder: illegal argument!" ); if ( !_rxForm.is() ) return; @@ -428,11 +439,13 @@ FmXFormView::FmXFormView(const ::comphelper::ComponentContext& _rContext, FmForm ,m_bFirstActivation( true ) ,m_isTabOrderUpdateSuspended( false ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::FmXFormView" ); } //------------------------------------------------------------------------ void FmXFormView::cancelEvents() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::cancelEvents" ); if ( m_nActivationEvent ) { Application::RemoveUserEvent( m_nActivationEvent ); @@ -461,6 +474,7 @@ void FmXFormView::cancelEvents() //------------------------------------------------------------------------ void FmXFormView::notifyViewDying( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::notifyViewDying" ); DBG_ASSERT( m_pView, "FmXFormView::notifyViewDying: my view already died!" ); m_pView = NULL; cancelEvents(); @@ -481,6 +495,7 @@ FmXFormView::~FmXFormView() //------------------------------------------------------------------------------ void SAL_CALL FmXFormView::disposing(const EventObject& Source) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::disposing" ); if ( m_xWindow.is() && Source.Source == m_xWindow ) removeGridWindowListening(); } @@ -489,6 +504,7 @@ void SAL_CALL FmXFormView::disposing(const EventObject& Source) throw( RuntimeEx //------------------------------------------------------------------------------ void SAL_CALL FmXFormView::formActivated(const EventObject& rEvent) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::formActivated" ); if ( m_pView && m_pView->GetFormShell() && m_pView->GetFormShell()->GetImpl() ) m_pView->GetFormShell()->GetImpl()->formActivated( rEvent ); } @@ -496,6 +512,7 @@ void SAL_CALL FmXFormView::formActivated(const EventObject& rEvent) throw( Runti //------------------------------------------------------------------------------ void SAL_CALL FmXFormView::formDeactivated(const EventObject& rEvent) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::formDeactivated" ); if ( m_pView && m_pView->GetFormShell() && m_pView->GetFormShell()->GetImpl() ) m_pView->GetFormShell()->GetImpl()->formDeactivated( rEvent ); } @@ -504,6 +521,7 @@ void SAL_CALL FmXFormView::formDeactivated(const EventObject& rEvent) throw( Run //------------------------------------------------------------------------------ void SAL_CALL FmXFormView::elementInserted(const ContainerEvent& evt) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::elementInserted" ); try { Reference< XControlContainer > xControlContainer( evt.Source, UNO_QUERY_THROW ); @@ -534,17 +552,20 @@ void SAL_CALL FmXFormView::elementInserted(const ContainerEvent& evt) throw( Run //------------------------------------------------------------------------------ void SAL_CALL FmXFormView::elementReplaced(const ContainerEvent& evt) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::elementReplaced" ); elementInserted(evt); } //------------------------------------------------------------------------------ void SAL_CALL FmXFormView::elementRemoved(const ContainerEvent& /*evt*/) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::elementRemoved" ); } //------------------------------------------------------------------------------ FmWinRecList::const_iterator FmXFormView::findWindow( const Reference< XControlContainer >& _rxCC ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::findWindow" ); for (FmWinRecList::const_iterator i = m_aWinList.begin(); i != m_aWinList.end(); i++) { @@ -557,6 +578,7 @@ FmWinRecList::const_iterator FmXFormView::findWindow( const Reference< XControlC //------------------------------------------------------------------------------ FmWinRecList::iterator FmXFormView::findWindow( const Reference< XControlContainer >& _rxCC ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::findWindow" ); for (FmWinRecList::iterator i = m_aWinList.begin(); i != m_aWinList.end(); i++) { @@ -569,6 +591,7 @@ FmWinRecList::iterator FmXFormView::findWindow( const Reference< XControlContain //------------------------------------------------------------------------------ void FmXFormView::addWindow(const SdrPageWindow& rWindow) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::addWindow" ); FmFormPage* pFormPage = PTR_CAST( FmFormPage, rWindow.GetPageView().GetPage() ); if ( !pFormPage ) return; @@ -591,6 +614,7 @@ void FmXFormView::addWindow(const SdrPageWindow& rWindow) //------------------------------------------------------------------------------ void FmXFormView::removeWindow( const Reference< XControlContainer >& _rxCC ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::removeWindow" ); // Wird gerufen, wenn // - in den Design-Modus geschaltet wird // - ein Window geloescht wird, waehrend man im Design-Modus ist @@ -613,6 +637,7 @@ void FmXFormView::removeWindow( const Reference< XControlContainer >& _rxCC ) //------------------------------------------------------------------------------ void FmXFormView::displayAsyncErrorMessage( const SQLErrorEvent& _rEvent ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::displayAsyncErrorMessage" ); DBG_ASSERT( 0 == m_nErrorMessageEvent, "FmXFormView::displayAsyncErrorMessage: not too fast, please!" ); // This should not happen - usually, the PostUserEvent is faster than any possible user // interaction which could trigger a new error. If it happens, we need a queue for the events. @@ -631,6 +656,7 @@ IMPL_LINK(FmXFormView, OnDelayedErrorMessage, void*, /*EMPTYTAG*/) //------------------------------------------------------------------------------ void FmXFormView::onFirstViewActivation( const FmFormModel* _pDocModel ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::onFirstViewActivation" ); if ( _pDocModel && _pDocModel->GetAutoControlFocus() ) m_nAutoFocusEvent = Application::PostUserEvent( LINK( this, FmXFormView, OnAutoFocus ) ); } @@ -638,6 +664,7 @@ void FmXFormView::onFirstViewActivation( const FmFormModel* _pDocModel ) //------------------------------------------------------------------------------ void FmXFormView::suspendTabOrderUpdate() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::suspendTabOrderUpdate" ); OSL_ENSURE( !m_isTabOrderUpdateSuspended, "FmXFormView::suspendTabOrderUpdate: nesting not allowed!" ); m_isTabOrderUpdateSuspended = true; } @@ -645,6 +672,7 @@ void FmXFormView::suspendTabOrderUpdate() //------------------------------------------------------------------------------ void FmXFormView::resumeTabOrderUpdate() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::resumeTabOrderUpdate" ); OSL_ENSURE( m_isTabOrderUpdateSuspended, "FmXFormView::resumeTabOrderUpdate: not suspended!" ); m_isTabOrderUpdateSuspended = false; @@ -729,6 +757,7 @@ IMPL_LINK(FmXFormView, OnActivate, void*, /*EMPTYTAG*/) //------------------------------------------------------------------------------ void FmXFormView::Activate(sal_Bool bSync) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::Activate" ); if (m_nActivationEvent) { Application::RemoveUserEvent(m_nActivationEvent); @@ -746,6 +775,7 @@ void FmXFormView::Activate(sal_Bool bSync) //------------------------------------------------------------------------------ void FmXFormView::Deactivate(BOOL bDeactivateController) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::Deactivate" ); if (m_nActivationEvent) { Application::RemoveUserEvent(m_nActivationEvent); @@ -760,11 +790,13 @@ void FmXFormView::Deactivate(BOOL bDeactivateController) //------------------------------------------------------------------------------ FmFormShell* FmXFormView::GetFormShell() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::GetFormShell" ); return m_pView ? m_pView->GetFormShell() : NULL; } // ----------------------------------------------------------------------------- void FmXFormView::AutoFocus( sal_Bool _bSync ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::AutoFocus" ); if (m_nAutoFocusEvent) Application::RemoveUserEvent(m_nAutoFocusEvent); @@ -857,6 +889,7 @@ namespace // ----------------------------------------------------------------------------- Reference< XFormController > FmXFormView::getFormController( const Reference< XForm >& _rxForm, const OutputDevice& _rDevice ) const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::getFormController" ); Reference< XFormController > xController; for ( FmWinRecList::const_iterator rec = m_aWinList.begin(); rec != m_aWinList.end(); ++rec ) @@ -958,6 +991,7 @@ namespace // ----------------------------------------------------------------------------- void FmXFormView::onCreatedFormObject( FmFormObj& _rFormObject ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::onCreatedFormObject" ); FmFormShell* pShell = m_pView ? m_pView->GetFormShell() : NULL; FmXFormShell* pShellImpl = pShell ? pShell->GetImpl() : NULL; OSL_ENSURE( pShellImpl, "FmXFormView::onCreatedFormObject: no form shell!" ); @@ -1094,6 +1128,7 @@ namespace // ----------------------------------------------------------------------------- SdrObject* FmXFormView::implCreateFieldControl( const ::svx::ODataAccessDescriptor& _rColumnDescriptor ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::implCreateFieldControl" ); // not if we're in design mode if ( !m_pView->IsDesignMode() ) return NULL; @@ -1325,6 +1360,7 @@ SdrObject* FmXFormView::implCreateFieldControl( const ::svx::ODataAccessDescript // ----------------------------------------------------------------------------- SdrObject* FmXFormView::implCreateXFormsControl( const ::svx::OXFormsDescriptor &_rDesc ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::implCreateXFormsControl" ); // not if we're in design mode if ( !m_pView->IsDesignMode() ) return NULL; @@ -1460,6 +1496,7 @@ bool FmXFormView::createControlLabelPair( OutputDevice& _rOutDev, sal_Int32 _nXO const Reference< XDataSource >& _rxDataSource, const ::rtl::OUString& _rDataSourceName, const ::rtl::OUString& _rCommand, const sal_Int32 _nCommandType ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::createControlLabelPair" ); if ( !createControlLabelPair( m_aContext, _rOutDev, _nXOffsetMM, _nYOffsetMM, _rxField, _rxNumberFormats, _nControlObjectID, _rFieldPostfix, FmFormInventor, OBJ_FM_FIXEDTEXT, NULL, NULL, NULL, _rpLabel, _rpControl ) @@ -1487,6 +1524,7 @@ bool FmXFormView::createControlLabelPair( const ::comphelper::ComponentContext& const ::rtl::OUString& _rFieldPostfix, UINT32 _nInventor, UINT16 _nLabelObjectID, SdrPage* _pLabelPage, SdrPage* _pControlPage, SdrModel* _pModel, SdrUnoObj*& _rpLabel, SdrUnoObj*& _rpControl) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::createControlLabelPair" ); sal_Int32 nDataType = 0; ::rtl::OUString sFieldName; Any aFieldName; @@ -1644,6 +1682,7 @@ void FmXFormView::ObjectRemoveListener::Notify( SfxBroadcaster& /*rBC*/, const S //------------------------------------------------------------------------------ void FmXFormView::ObjectRemovedInAliveMode( const SdrObject* pObject ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::ObjectRemovedInAliveMode" ); // wenn das entfernte Objekt in meiner MarkList, die ich mir beim Umschalten in den Alive-Mode gemerkt habe, steht, // muss ich es jetzt da rausnehmen, da ich sonst beim Zurueckschalten versuche, die Markierung wieder zu setzen // (interesanterweise geht das nur bei gruppierten Objekten schief (beim Zugriff auf deren ObjList GPF), nicht bei einzelnen) @@ -1666,6 +1705,7 @@ void FmXFormView::ObjectRemovedInAliveMode( const SdrObject* pObject ) //------------------------------------------------------------------------------ void FmXFormView::stopMarkListWatching() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::stopMarkListWatching" ); if ( m_pWatchStoredList ) { m_pWatchStoredList->EndListeningAll(); @@ -1677,6 +1717,7 @@ void FmXFormView::stopMarkListWatching() //------------------------------------------------------------------------------ void FmXFormView::startMarkListWatching() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::startMarkListWatching" ); if ( !m_pWatchStoredList ) { m_pWatchStoredList = new ObjectRemoveListener( this ); @@ -1693,6 +1734,7 @@ void FmXFormView::startMarkListWatching() //------------------------------------------------------------------------------ void FmXFormView::saveMarkList( sal_Bool _bSmartUnmark ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::saveMarkList" ); if ( m_pView ) { m_aMark = m_pView->GetMarkedObjectList(); @@ -1751,6 +1793,7 @@ static sal_Bool lcl_hasObject( SdrObjListIter& rIter, SdrObject* pObj ) //------------------------------------------------------------------------------ void FmXFormView::restoreMarkList( SdrMarkList& _rRestoredMarkList ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::restoreMarkList" ); if ( !m_pView ) return; @@ -1838,6 +1881,7 @@ void FmXFormView::restoreMarkList( SdrMarkList& _rRestoredMarkList ) // ----------------------------------------------------------------------------- void SAL_CALL FmXFormView::focusGained( const FocusEvent& /*e*/ ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::focusGained" ); if ( m_xWindow.is() && m_pView ) { m_pView->SetMoveOutside( TRUE, FmFormView::ImplAccess() ); @@ -1846,6 +1890,7 @@ void SAL_CALL FmXFormView::focusGained( const FocusEvent& /*e*/ ) throw (Runtime // ----------------------------------------------------------------------------- void SAL_CALL FmXFormView::focusLost( const FocusEvent& /*e*/ ) throw (RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::focusLost" ); // when switch the focus outside the office the mark didn't change // so we can not remove us as focus listener if ( m_xWindow.is() && m_pView ) @@ -1856,6 +1901,7 @@ void SAL_CALL FmXFormView::focusLost( const FocusEvent& /*e*/ ) throw (RuntimeEx // ----------------------------------------------------------------------------- void FmXFormView::removeGridWindowListening() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::removeGridWindowListening" ); if ( m_xWindow.is() ) { m_xWindow->removeFocusListener(this); @@ -1870,6 +1916,7 @@ void FmXFormView::removeGridWindowListening() // ----------------------------------------------------------------------------- DocumentType FmXFormView::impl_getDocumentType() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormView::impl_getDocumentType" ); if ( GetFormShell() && GetFormShell()->GetImpl() ) return GetFormShell()->GetImpl()->getDocumentType(); return eUnknownDocumentType; diff --git a/svx/source/form/navigatortree.cxx b/svx/source/form/navigatortree.cxx index 936adb60c9..39d27ad983 100644 --- a/svx/source/form/navigatortree.cxx +++ b/svx/source/form/navigatortree.cxx @@ -63,6 +63,7 @@ #include //CHINA001 #include //CHINA001 +#include //............................................................................ namespace svxform { @@ -200,6 +201,7 @@ namespace svxform ,m_bInitialUpdate(sal_True) ,m_bKeyboardCut( sal_False ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::NavigatorTree" ); SetHelpId( HID_FORM_NAVIGATOR ); m_aNavigatorImages = ImageList( SVX_RES( RID_SVXIMGLIST_FMEXPL ) ); @@ -250,12 +252,14 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTree::Clear() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::Clear" ); m_pNavModel->Clear(); } //------------------------------------------------------------------------ void NavigatorTree::UpdateContent( FmFormShell* pFormShell ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::UpdateContent" ); if (m_bInitialUpdate) { GrabFocus(); @@ -291,6 +295,7 @@ namespace svxform //------------------------------------------------------------------------------ sal_Bool NavigatorTree::implAllowExchange( sal_Int8 _nAction, sal_Bool* _pHasNonHidden ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::implAllowExchange" ); SvLBoxEntry* pCurEntry = GetCurEntry(); if (!pCurEntry) return sal_False; @@ -326,6 +331,7 @@ namespace svxform //------------------------------------------------------------------------------ sal_Bool NavigatorTree::implPrepareExchange( sal_Int8 _nAction ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::implPrepareExchange" ); sal_Int32 i; EndSelection(); @@ -362,6 +368,7 @@ namespace svxform //------------------------------------------------------------------------------ void NavigatorTree::StartDrag( sal_Int8 /*nAction*/, const ::Point& /*rPosPixel*/ ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::StartDrag" ); EndSelection(); if ( !implPrepareExchange( DND_ACTION_COPYMOVE ) ) @@ -375,6 +382,7 @@ namespace svxform //------------------------------------------------------------------------------ void NavigatorTree::Command( const CommandEvent& rEvt ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::Command" ); sal_Bool bHandled = sal_False; switch( rEvt.GetCommand() ) { @@ -419,7 +427,7 @@ namespace svxform sal_Bool bSingleSelection = (m_arrCurrentSelection.Count() == 1); - DBG_ASSERT( (m_arrCurrentSelection.Count() > 0) | m_bRootSelected, "keine Eintraege selektiert" ); + DBG_ASSERT( (m_arrCurrentSelection.Count() > 0) || m_bRootSelected, "keine Eintraege selektiert" ); // solte nicht passieren, da ich oben bei der IsSelected-Abfrage auf jeden Fall einen selektiert haette, // wenn das vorher nicht der Fall gewesen waere @@ -605,6 +613,7 @@ namespace svxform //------------------------------------------------------------------------ sal_Bool NavigatorTree::IsDeleteAllowed() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::IsDeleteAllowed" ); ////////////////////////////////////////////////////////////////////// // Haben wir eine Form... SvLBoxEntry* pCurEntry = GetCurEntry(); @@ -619,6 +628,7 @@ namespace svxform //------------------------------------------------------------------------ SvLBoxEntry* NavigatorTree::FindEntry( FmEntryData* pEntryData ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::FindEntry" ); if( !pEntryData ) return NULL; SvLBoxEntry* pCurEntry = First(); FmEntryData* pCurEntryData; @@ -637,6 +647,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTree::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::Notify" ); if( rHint.ISA(FmNavRemovedHint) ) { FmNavRemovedHint* pRemovedHint = (FmNavRemovedHint*)&rHint; @@ -707,6 +718,7 @@ namespace svxform //------------------------------------------------------------------------ SvLBoxEntry* NavigatorTree::Insert( FmEntryData* pEntryData, ULONG nRelPos ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::Insert" ); ////////////////////////////////////////////////////////////////////// // Aktuellen Eintrag einfuegen SvLBoxEntry* pParentEntry = FindEntry( pEntryData->GetParent() ); @@ -750,6 +762,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTree::Remove( FmEntryData* pEntryData ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::Remove" ); if( !pEntryData ) return; @@ -786,6 +799,7 @@ namespace svxform //------------------------------------------------------------------------ sal_Bool NavigatorTree::IsFormEntry( SvLBoxEntry* pEntry ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::IsFormEntry" ); FmEntryData* pEntryData = (FmEntryData*)pEntry->GetUserData(); return !pEntryData || pEntryData->ISA(FmFormData); } @@ -793,6 +807,7 @@ namespace svxform //------------------------------------------------------------------------ sal_Bool NavigatorTree::IsFormComponentEntry( SvLBoxEntry* pEntry ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::IsFormComponentEntry" ); FmEntryData* pEntryData = (FmEntryData*)pEntry->GetUserData(); return pEntryData && pEntryData->ISA(FmControlData); } @@ -800,6 +815,7 @@ namespace svxform //------------------------------------------------------------------------ sal_Bool NavigatorTree::implAcceptPaste( ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::implAcceptPaste" ); SvLBoxEntry* pFirstSelected = FirstSelected(); if ( !pFirstSelected || NextSelected( pFirstSelected ) ) // no selected entry, or at least two selected entries @@ -815,12 +831,14 @@ namespace svxform //------------------------------------------------------------------------ sal_Int8 NavigatorTree::implAcceptDataTransfer( const DataFlavorExVector& _rFlavors, sal_Int8 _nAction, const ::Point& _rDropPos, sal_Bool _bDnD ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::implAcceptDataTransfer" ); return implAcceptDataTransfer( _rFlavors, _nAction, GetEntry( _rDropPos ), _bDnD ); } //------------------------------------------------------------------------ sal_Int8 NavigatorTree::implAcceptDataTransfer( const DataFlavorExVector& _rFlavors, sal_Int8 _nAction, SvLBoxEntry* _pTargetEntry, sal_Bool _bDnD ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::implAcceptDataTransfer" ); // no target -> no drop if (!_pTargetEntry) return DND_ACTION_NONE; @@ -960,6 +978,7 @@ namespace svxform //------------------------------------------------------------------------ sal_Int8 NavigatorTree::AcceptDrop( const AcceptDropEvent& rEvt ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::AcceptDrop" ); ::Point aDropPos = rEvt.maPosPixel; // kuemmern wir uns erst mal um moeglich DropActions (Scrollen und Aufklappen) @@ -1015,12 +1034,14 @@ namespace svxform //------------------------------------------------------------------------ sal_Int8 NavigatorTree::implExecuteDataTransfer( const OControlTransferData& _rData, sal_Int8 _nAction, const ::Point& _rDropPos, sal_Bool _bDnD ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::implExecuteDataTransfer" ); return implExecuteDataTransfer( _rData, _nAction, GetEntry( _rDropPos ), _bDnD ); } //------------------------------------------------------------------------ sal_Int8 NavigatorTree::implExecuteDataTransfer( const OControlTransferData& _rData, sal_Int8 _nAction, SvLBoxEntry* _pTargetEntry, sal_Bool _bDnD ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::implExecuteDataTransfer" ); const DataFlavorExVector& rDataFlavors = _rData.GetDataFlavorExVector(); if ( DND_ACTION_NONE == implAcceptDataTransfer( rDataFlavors, _nAction, _pTargetEntry, _bDnD ) ) @@ -1272,6 +1293,7 @@ namespace svxform //------------------------------------------------------------------------ sal_Int8 NavigatorTree::ExecuteDrop( const ExecuteDropEvent& rEvt ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::ExecuteDrop" ); sal_Int8 nResult( DND_ACTION_NONE ); if ( m_aControlExchange.isDragSource() ) @@ -1288,6 +1310,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTree::doPaste() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::doPaste" ); try { if ( m_aControlExchange.isClipboardOwner() ) @@ -1315,6 +1338,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTree::doCopy() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::doCopy" ); if ( implPrepareExchange( DND_ACTION_COPY ) ) { m_aControlExchange.setClipboardListener( LINK( this, NavigatorTree, OnClipboardAction ) ); @@ -1325,6 +1349,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTree::ModelHasRemoved( SvListEntry* _pEntry ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::ModelHasRemoved" ); SvLBoxEntry* pTypedEntry = static_cast< SvLBoxEntry* >( _pEntry ); if ( doingKeyboardCut() ) m_aCutEntries.erase( pTypedEntry ); @@ -1343,6 +1368,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTree::doCut() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::doCut" ); if ( implPrepareExchange( DND_ACTION_MOVE ) ) { m_aControlExchange.setClipboardListener( LINK( this, NavigatorTree, OnClipboardAction ) ); @@ -1366,6 +1392,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTree::KeyInput(const ::KeyEvent& rKEvt) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::KeyInput" ); const KeyCode& rCode = rKEvt.GetKeyCode(); // delete? @@ -1401,6 +1428,7 @@ namespace svxform //------------------------------------------------------------------------ sal_Bool NavigatorTree::EditingEntry( SvLBoxEntry* pEntry, Selection& rSelection ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::EditingEntry" ); if (!SvTreeListBox::EditingEntry( pEntry, rSelection )) return sal_False; @@ -1411,6 +1439,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTree::NewForm( SvLBoxEntry* pParentEntry ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::NewForm" ); ////////////////////////////////////////////////////////////////////// // ParentFormData holen if( !IsFormEntry(pParentEntry) ) @@ -1472,6 +1501,7 @@ namespace svxform //------------------------------------------------------------------------ FmControlData* NavigatorTree::NewControl( const ::rtl::OUString& rServiceName, SvLBoxEntry* pParentEntry, sal_Bool bEditName ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::NewControl" ); ////////////////////////////////////////////////////////////////////// // ParentForm holen if (!GetNavModel()->GetFormShell()) @@ -1520,6 +1550,7 @@ namespace svxform //------------------------------------------------------------------------ ::rtl::OUString NavigatorTree::GenerateName( FmEntryData* pEntryData ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::GenerateName" ); const sal_uInt16 nMaxCount = 99; ::rtl::OUString aNewName; @@ -1555,6 +1586,7 @@ namespace svxform //------------------------------------------------------------------------ sal_Bool NavigatorTree::EditedEntry( SvLBoxEntry* pEntry, const XubString& rNewText ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::EditedEntry" ); if (EditingCanceled()) return sal_True; @@ -1674,6 +1706,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTree::ShowSelectionProperties(sal_Bool bForce) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::ShowSelectionProperties" ); // zuerst brauche ich die FormShell FmFormShell* pFormShell = GetNavModel()->GetFormShell(); if (!pFormShell) @@ -1718,7 +1751,7 @@ namespace svxform for ( sal_Int32 i = 0; i < m_nFormsSelected; ++i ) { FmFormData* pFormData = (FmFormData*)m_arrCurrentSelection.GetObject((USHORT)i)->GetUserData(); - aSelection.insert( Reference< XInterface >( pFormData->GetPropertySet(), UNO_QUERY ) ); + aSelection.insert( pFormData->GetPropertySet().get() ); } } else @@ -1728,7 +1761,7 @@ namespace svxform for ( sal_Int32 i = 0; i < m_nHiddenControls; ++i ) { FmEntryData* pEntryData = (FmEntryData*)m_arrCurrentSelection.GetObject((USHORT)i)->GetUserData(); - aSelection.insert( Reference< XInterface >( pEntryData->GetPropertySet(), UNO_QUERY ) ); + aSelection.insert( pEntryData->GetPropertySet().get() ); } } else if (m_nHiddenControls == 0) @@ -1756,6 +1789,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTree::DeleteSelection() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::DeleteSelection" ); // die Root darf ich natuerlich nicht mitloeschen sal_Bool bRootSelected = IsSelected(m_pRootEntry); ULONG nSelectedEntries = GetSelectionCount(); @@ -1892,6 +1926,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTree::CollectSelectionData(SELDATA_ITEMS sdiHow) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::CollectSelectionData" ); DBG_ASSERT(sdiHow != SDI_DIRTY, "NavigatorTree::CollectSelectionData : ever thought about your parameter ? DIRTY ?"); if (sdiHow == m_sdiState) return; @@ -1966,6 +2001,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTree::SynchronizeSelection(FmEntryDataArray& arredToSelect) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::SynchronizeSelection" ); LockSelectionHandling(); if (arredToSelect.Count() == 0) { @@ -2029,6 +2065,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTree::SynchronizeSelection() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::SynchronizeSelection" ); // Shell und View FmFormShell* pFormShell = GetNavModel()->GetFormShell(); if(!pFormShell) return; @@ -2042,6 +2079,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTree::SynchronizeMarkList() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::SynchronizeMarkList" ); // die Shell werde ich brauchen ... FmFormShell* pFormShell = GetNavModel()->GetFormShell(); if (!pFormShell) return; @@ -2110,6 +2148,7 @@ namespace svxform //------------------------------------------------------------------------ sal_Bool NavigatorTree::IsHiddenControl(FmEntryData* pEntryData) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::IsHiddenControl" ); if (pEntryData == NULL) return sal_False; Reference< XPropertySet > xProperties( pEntryData->GetPropertySet() ); @@ -2124,6 +2163,7 @@ namespace svxform //------------------------------------------------------------------------ sal_Bool NavigatorTree::Select( SvLBoxEntry* pEntry, sal_Bool bSelect ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::Select" ); if (bSelect == IsSelected(pEntry)) // das passiert manchmal, ich glaube, die Basisklasse geht zu sehr auf Nummer sicher ;) return sal_True; @@ -2133,48 +2173,99 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTree::UnmarkAllViewObj() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::UnmarkAllViewObj" ); FmFormShell* pFormShell = GetNavModel()->GetFormShell(); if( !pFormShell ) return; FmFormView* pFormView = pFormShell->GetFormView(); pFormView->UnMarkAll(); } - //------------------------------------------------------------------------ - void NavigatorTree::MarkViewObj( FmFormData* pFormData, sal_Bool bMark, sal_Bool bDeep ) + void NavigatorTree::MarkViewObj(FmFormData* pFormData, sal_Bool bMark, sal_Bool bDeep ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::MarkViewObjects" ); + FmFormShell* pFormShell = GetNavModel()->GetFormShell(); + if( !pFormShell ) + return; + + // first collect all sdrobjects + ::std::set< Reference< XFormComponent > > aObjects; + CollectObjects(pFormData,bDeep,aObjects); + ////////////////////////////////////////////////////////////////////// - // Alle Controls der Form markieren + // In der Page das entsprechende SdrObj finden und selektieren + FmFormView* pFormView = pFormShell->GetFormView(); + SdrPageView* pPageView = pFormView->GetSdrPageView(); + SdrPage* pPage = pPageView->GetPage(); + //FmFormPage* pFormPage = dynamic_cast< FmFormPage* >( pPage ); + + SdrObjListIter aIter( *pPage ); + while ( aIter.IsMore() ) + { + SdrObject* pSdrObject = aIter.Next(); + FmFormObj* pFormObject = FmFormObj::GetFormObject( pSdrObject ); + if ( !pFormObject ) + continue; + + Reference< XFormComponent > xControlModel( pFormObject->GetUnoControlModel(),UNO_QUERY ); + if ( xControlModel.is() && aObjects.find(xControlModel) != aObjects.end() && bMark != pFormView->IsObjMarked( pSdrObject ) ) + { + // unfortunately, the writer doesn't like marking an already-marked object, again, so reset the mark first + pFormView->MarkObj( pSdrObject, pPageView, !bMark, sal_False ); + } + } // while ( aIter.IsMore() ) + if ( bMark ) + { + // make the mark visible + ::Rectangle aMarkRect( pFormView->GetAllMarkedRect()); + for ( sal_uInt32 i = 0; i < pFormView->PaintWindowCount(); ++i ) + { + SdrPaintWindow* pPaintWindow = pFormView->GetPaintWindow( i ); + OutputDevice& rOutDev = pPaintWindow->GetOutputDevice(); + if ( OUTDEV_WINDOW == rOutDev.GetOutDevType() ) + { + pFormView->MakeVisible( aMarkRect, (Window&)rOutDev ); + } + } // for ( sal_uInt32 i = 0; i < pFormView->PaintWindowCount(); ++i ) + } + } + //------------------------------------------------------------------------ + void NavigatorTree::CollectObjects(FmFormData* pFormData, sal_Bool bDeep, ::std::set< Reference< XFormComponent > >& _rObjects) + { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::MarkViewObjects" ); FmEntryDataList* pChildList = pFormData->GetChildList(); FmEntryData* pEntryData; FmControlData* pControlData; - - for( sal_uInt32 i=0; iCount(); i++ ) + for( sal_uInt32 i=0; i < pChildList->Count(); ++i ) { pEntryData = pChildList->GetObject(i); if( pEntryData->ISA(FmControlData) ) { pControlData = (FmControlData*)pEntryData; - MarkViewObj( pControlData, (i==pChildList->Count()-1), bMark ); - } else if (bDeep && (pEntryData->ISA(FmFormData))) - MarkViewObj((FmFormData*)pEntryData, bMark, bDeep); - } + _rObjects.insert(pControlData->GetFormComponent()); + } // if( pEntryData->ISA(FmControlData) ) + else if (bDeep && (pEntryData->ISA(FmFormData))) + CollectObjects((FmFormData*)pEntryData,bDeep,_rObjects); + } // for( sal_uInt32 i=0; iCount(); i++ ) } - //------------------------------------------------------------------------ void NavigatorTree::MarkViewObj( FmControlData* pControlData, sal_Bool bMarkHandles, sal_Bool bMark) { - if( !pControlData ) return; + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTree::MarkViewObj" ); + if( !pControlData ) + return; FmFormShell* pFormShell = GetNavModel()->GetFormShell(); - if( !pFormShell ) return; + if( !pFormShell ) + return; ////////////////////////////////////////////////////////////////////// // In der Page das entsprechende SdrObj finden und selektieren - Reference< XFormComponent > xFormComponent( pControlData->GetFormComponent()); FmFormView* pFormView = pFormShell->GetFormView(); + Reference< XFormComponent > xFormComponent( pControlData->GetFormComponent()); SdrPageView* pPageView = pFormView->GetSdrPageView(); SdrPage* pPage = pPageView->GetPage(); + bool bPaint = false; SdrObjListIter aIter( *pPage ); while ( aIter.IsMore() ) { @@ -2195,6 +2286,11 @@ namespace svxform if ( !bMarkHandles || !bMark ) continue; + bPaint = true; + + } // while ( aIter.IsMore() ) + if ( bPaint ) + { // make the mark visible ::Rectangle aMarkRect( pFormView->GetAllMarkedRect()); for ( sal_uInt32 i = 0; i < pFormView->PaintWindowCount(); ++i ) @@ -2205,7 +2301,7 @@ namespace svxform { pFormView->MakeVisible( aMarkRect, (Window&)rOutDev ); } - } + } // for ( sal_uInt32 i = 0; i < pFormView->PaintWindowCount(); ++i ) } } diff --git a/svx/source/form/navigatortreemodel.cxx b/svx/source/form/navigatortreemodel.cxx index 00241c588e..63e7592cfd 100644 --- a/svx/source/form/navigatortreemodel.cxx +++ b/svx/source/form/navigatortreemodel.cxx @@ -49,6 +49,7 @@ #include "fmobj.hxx" #include #include +#include #include //............................................................................ @@ -74,18 +75,21 @@ namespace svxform ,m_nLocks(0) ,m_bCanUndo(sal_True) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "OFormComponentObserver::OFormComponentObserver" ); } // XPropertyChangeListener //------------------------------------------------------------------------ void SAL_CALL OFormComponentObserver::disposing(const EventObject& Source) throw( RuntimeException ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "OFormComponentObserver::disposing" ); Remove( Source.Source ); } //------------------------------------------------------------------------ void SAL_CALL OFormComponentObserver::propertyChange(const PropertyChangeEvent& evt) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "OFormComponentObserver::propertyChange" ); if( !m_pNavModel ) return; if( evt.PropertyName != FM_PROP_NAME ) return; @@ -111,6 +115,7 @@ namespace svxform //------------------------------------------------------------------------------ void SAL_CALL OFormComponentObserver::elementInserted(const ContainerEvent& evt) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "OFormComponentObserver::elementInserted" ); if (IsLocked() || !m_pNavModel) return; @@ -127,6 +132,7 @@ namespace svxform //------------------------------------------------------------------------------ void OFormComponentObserver::Insert(const Reference< XInterface > & xIface, sal_Int32 nIndex) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "OFormComponentObserver::Insert" ); Reference< XForm > xForm(xIface, UNO_QUERY); if (xForm.is()) { @@ -150,6 +156,7 @@ namespace svxform //------------------------------------------------------------------------------ void SAL_CALL OFormComponentObserver::elementReplaced(const ContainerEvent& evt) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "OFormComponentObserver::elementReplaced" ); if (IsLocked() || !m_pNavModel) return; @@ -181,6 +188,7 @@ namespace svxform //------------------------------------------------------------------------------ void OFormComponentObserver::Remove( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxElement ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "OFormComponentObserver::Remove" ); if (IsLocked() || !m_pNavModel) return; @@ -198,6 +206,7 @@ namespace svxform //------------------------------------------------------------------------------ void SAL_CALL OFormComponentObserver::elementRemoved(const ContainerEvent& evt) throw(RuntimeException) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "OFormComponentObserver::elementRemoved" ); Reference< XInterface > xElement; evt.Element >>= xElement; Remove( xElement ); @@ -215,6 +224,7 @@ namespace svxform ,m_aNormalImages( _rNormalImages ) ,m_aHCImages( _rHCImages ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::NavigatorTreeModel" ); m_pPropChangeList = new OFormComponentObserver(this); m_pPropChangeList->acquire(); m_pRootList = new FmEntryDataList(); @@ -245,6 +255,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTreeModel::SetModified( sal_Bool bMod ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::SetModified" ); if( !m_pFormShell ) return; SfxObjectShell* pObjShell = m_pFormShell->GetFormModel()->GetObjectShell(); if( !pObjShell ) return; @@ -254,6 +265,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTreeModel::Clear() { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::Clear" ); Reference< XNameContainer > xForms( GetForms()); Reference< XContainer > xContainer(xForms, UNO_QUERY); if (xContainer.is()) @@ -280,6 +292,7 @@ namespace svxform //------------------------------------------------------------------------ Reference< XNameContainer > NavigatorTreeModel::GetForms() const { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::GetForms" ); if( !m_pFormShell || !m_pFormShell->GetCurPage()) return NULL; else @@ -289,6 +302,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTreeModel::Insert(FmEntryData* pEntry, ULONG nRelPos, sal_Bool bAlterModel) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::Insert" ); if (IsListening(*m_pFormModel)) EndListening(*m_pFormModel); @@ -380,6 +394,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTreeModel::Remove(FmEntryData* pEntry, sal_Bool bAlterModel) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::Remove" ); ////////////////////////////////////////////////////////////////////// // Form und Parent holen if (!pEntry || !m_pFormModel) @@ -456,6 +471,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTreeModel::RemoveForm(FmFormData* pFormData) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::RemoveForm" ); ////////////////////////////////////////////////////////////////////// // Form und Parent holen if (!pFormData || !m_pFormModel) @@ -489,6 +505,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTreeModel::RemoveFormComponent(FmControlData* pControlData) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::RemoveFormComponent" ); ////////////////////////////////////////////////////////////////////// // Control und Parent holen if (!pControlData) @@ -504,6 +521,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTreeModel::ClearBranch( FmFormData* pParentData ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::ClearBranch" ); ////////////////////////////////////////////////////////////////////// // Alle Eintraege dieses Zweiges loeschen FmEntryDataList* pChildList = pParentData->GetChildList(); @@ -522,6 +540,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTreeModel::FillBranch( FmFormData* pFormData ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::FillBranch" ); ////////////////////////////////////////////////////////////// // Forms aus der Root einfuegen if( pFormData == NULL ) @@ -587,6 +606,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTreeModel::InsertForm(const Reference< XForm > & xForm, sal_uInt32 nRelPos) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::InsertForm" ); FmFormData* pFormData = (FmFormData*)FindData( xForm, GetRootList() ); if (pFormData) return; @@ -606,6 +626,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTreeModel::InsertFormComponent(const Reference< XFormComponent > & xComp, sal_uInt32 nRelPos) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::InsertFormComponent" ); ////////////////////////////////////////////////////////// // ParentData setzen Reference< XInterface > xIFace( xComp->getParent()); @@ -635,6 +656,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTreeModel::ReplaceFormComponent(const Reference< XFormComponent > & xOld, const Reference< XFormComponent > & xNew) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::ReplaceFormComponent" ); FmEntryData* pData = FindData(xOld, GetRootList(), sal_True); DBG_ASSERT(pData && pData->ISA(FmControlData), "NavigatorTreeModel::ReplaceFormComponent : invalid argument !"); ((FmControlData*)pData)->ModelReplaced( xNew, m_aNormalImages, m_aHCImages ); @@ -646,6 +668,7 @@ namespace svxform //------------------------------------------------------------------------ FmEntryData* NavigatorTreeModel::FindData(const Reference< XInterface > & xElement, FmEntryDataList* pDataList, sal_Bool bRecurs) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::FindData" ); // normalize Reference< XInterface > xIFace( xElement, UNO_QUERY ); @@ -667,6 +690,7 @@ namespace svxform //------------------------------------------------------------------------ FmEntryData* NavigatorTreeModel::FindData( const ::rtl::OUString& rText, FmFormData* pParentData, sal_Bool bRecurs ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::FindData" ); FmEntryDataList* pDataList; if( !pParentData ) pDataList = GetRootList(); @@ -699,6 +723,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTreeModel::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::Notify" ); if( rHint.ISA(SdrHint) ) { SdrHint* pSdrHint = (SdrHint*)&rHint; @@ -729,6 +754,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTreeModel::InsertSdrObj( const SdrObject* pObj ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::InsertSdrObj" ); const FmFormObj* pFormObject = FmFormObj::GetFormObject( pObj ); if ( pFormObject ) { @@ -756,6 +782,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTreeModel::RemoveSdrObj( const SdrObject* pObj ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::RemoveSdrObj" ); const FmFormObj* pFormObject = FmFormObj::GetFormObject( pObj ); if ( pFormObject ) { @@ -781,6 +808,7 @@ namespace svxform sal_Bool NavigatorTreeModel::InsertFormComponent(FmNavRequestSelectHint& rHint, SdrObject* pObject) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::InsertFormComponent" ); if ( pObject->ISA(SdrObjGroup) ) { // rekursiv absteigen const SdrObjList *pChilds = ((SdrObjGroup*)pObject)->GetSubList(); @@ -819,6 +847,7 @@ namespace svxform void NavigatorTreeModel::BroadcastMarkedObjects(const SdrMarkList& mlMarked) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::BroadcastMarkedObjects" ); // gehen wir durch alle markierten Objekte und suchen wir die raus, mit denen ich was anfangen kann FmNavRequestSelectHint rshRequestSelection; sal_Bool bIsMixedSelection = sal_False; @@ -841,6 +870,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTreeModel::UpdateContent( const Reference< XNameContainer > & xForms ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::UpdateContent" ); ////////////////////////////////////////////////////////////////////// // Model von der Root aufwaerts neu fuellen Clear(); @@ -865,6 +895,7 @@ namespace svxform //------------------------------------------------------------------------ void NavigatorTreeModel::UpdateContent( FmFormShell* pShell ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::UpdateContent" ); ////////////////////////////////////////////////////////////////////// // Wenn Shell sich nicht veraendert hat, nichts machen FmFormPage* pNewPage = pShell ? pShell->GetCurPage() : NULL; @@ -906,6 +937,7 @@ namespace svxform //------------------------------------------------------------------------ Reference< XIndexContainer > NavigatorTreeModel::GetFormComponents( FmFormData* pFormData ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::GetFormComponents" ); ////////////////////////////////////////////////////////////////////// // Von der Form Components holen if (pFormData) @@ -917,6 +949,7 @@ namespace svxform //------------------------------------------------------------------------ sal_Bool NavigatorTreeModel::CheckEntry( FmEntryData* pEntryData ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::CheckEntry" ); ////////////////////////////////////////////////////////////////////// // Nur Forms duerfen auf Doppeldeutigkeit untersucht werden if( !pEntryData->ISA(FmFormData) ) return sal_True; @@ -963,6 +996,7 @@ namespace svxform //------------------------------------------------------------------------ sal_Bool NavigatorTreeModel::Rename( FmEntryData* pEntryData, const ::rtl::OUString& rNewText ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::Rename" ); ////////////////////////////////////////////////////////////////////// // Wenn Name schon vorhanden, Fehlermeldung pEntryData->SetText( rNewText ); @@ -998,6 +1032,7 @@ namespace svxform //------------------------------------------------------------------------ sal_Bool NavigatorTreeModel::IsNameAlreadyDefined( const ::rtl::OUString& rName, FmFormData* pParentData ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::IsNameAlreadyDefined" ); ////////////////////////////////////////////////////////////////////// // Form in der Root if( !pParentData ) @@ -1021,6 +1056,7 @@ namespace svxform //------------------------------------------------------------------------ SdrObject* NavigatorTreeModel::GetSdrObj( FmControlData* pControlData ) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::GetSdrObj" ); if (!pControlData || !m_pFormShell) return NULL; @@ -1041,6 +1077,7 @@ namespace svxform //------------------------------------------------------------------ SdrObject* NavigatorTreeModel::Search(SdrObjListIter& rIter, const Reference< XFormComponent > & xComp) { + RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "NavigatorTreeModel::Search" ); while (rIter.IsMore()) { SdrObject* pObj = rIter.Next(); diff --git a/svx/source/inc/fmctrler.hxx b/svx/source/inc/fmctrler.hxx index cfe5049e59..6407ca78fd 100644 --- a/svx/source/inc/fmctrler.hxx +++ b/svx/source/inc/fmctrler.hxx @@ -596,6 +596,9 @@ protected: ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl > locateControl( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >& _rxModel ) SAL_THROW(()); + // set the text for all filters + void impl_setTextOnAllFilter_throw(); + // in filter mode we do not listen for changes sal_Bool isListeningForChanges() const {return m_bDBConnection && !m_bFiltering && !isLocked();} void addChild(FmXFormController* pChild); diff --git a/svx/source/inc/fmexpl.hxx b/svx/source/inc/fmexpl.hxx index a4599f1a6f..ba49c7b897 100644 --- a/svx/source/inc/fmexpl.hxx +++ b/svx/source/inc/fmexpl.hxx @@ -491,6 +491,8 @@ namespace svxform void SynchronizeMarkList(); // umgekehrte Richtung von SynchronizeMarkList : markiert in der ::com::sun::star::sdbcx::View alle der aktuellen Selektion entsprechenden Controls + void CollectObjects(FmFormData* pFormData, sal_Bool bDeep, ::std::set< ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent > >& _rObjects); + // im Select aktualisiere ich normalerweise die Marklist der zugehoerigen ::com::sun::star::sdbcx::View, mit folgenden Funktionen // kann ich das Locking dieses Verhaltens steuern void LockSelectionHandling() { ++m_nSelectLock; } diff --git a/svx/source/inc/fmpgeimp.hxx b/svx/source/inc/fmpgeimp.hxx index 5cf46310d6..55ffaeac3e 100644 --- a/svx/source/inc/fmpgeimp.hxx +++ b/svx/source/inc/fmpgeimp.hxx @@ -43,6 +43,7 @@ #include #include "svx/svxdllapi.h" +#include class SvStream; class FmFormObj; @@ -66,6 +67,7 @@ DECLARE_LIST(FmObjectList, FmFormObj*) class SVX_DLLPRIVATE FmFormPageImpl { + ::std::map< ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent >,SdrObject* > m_aComponentMap; ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm> xCurrentForm; ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer> m_xForms; FmFormPage* pPage; @@ -73,6 +75,7 @@ class SVX_DLLPRIVATE FmFormPageImpl sal_Bool m_bFirstActivation; bool m_bAttemptedFormCreation; + bool m_bInFind; protected: void Init(); diff --git a/svx/source/inc/fmshimp.hxx b/svx/source/inc/fmshimp.hxx index 33f8685b29..c4194eba49 100644 --- a/svx/source/inc/fmshimp.hxx +++ b/svx/source/inc/fmshimp.hxx @@ -551,6 +551,14 @@ private: */ void impl_switchActiveControllerListening( const bool _bListen ); + /** add an element + */ + void impl_AddElement_nothrow(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& Element); + + /** remove an element + */ + void impl_RemoveElement_nothrow(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& Element); + // --------------------------------------------------- // asyncronous cursor actions/navigation slot handling diff --git a/xmloff/inc/xexptran.hxx b/xmloff/inc/xexptran.hxx index c36f303c97..f795ff9b8c 100644 --- a/xmloff/inc/xexptran.hxx +++ b/xmloff/inc/xexptran.hxx @@ -83,7 +83,7 @@ public: void AddSkewY(double fNew); void AddMatrix(const ::basegfx::B2DHomMatrix& rNew); - bool NeedsAction() const { return 0L != maList.size(); } + bool NeedsAction() const { return !maList.empty(); } void GetFullTransform(::basegfx::B2DHomMatrix& rFullTrans); const rtl::OUString& GetExportString(const SvXMLUnitConverter& rConv); void SetString(const rtl::OUString& rNew, const SvXMLUnitConverter& rConv); @@ -111,7 +111,7 @@ public: void AddMatrix(const ::basegfx::B3DHomMatrix& rNew); void AddHomogenMatrix(const com::sun::star::drawing::HomogenMatrix& xHomMat); - bool NeedsAction() const { return 0L != maList.size(); } + bool NeedsAction() const { return !maList.empty(); } void GetFullTransform(::basegfx::B3DHomMatrix& rFullTrans); bool GetFullHomogenTransform(com::sun::star::drawing::HomogenMatrix& xHomMat); const rtl::OUString& GetExportString(const SvXMLUnitConverter& rConv); diff --git a/xmloff/inc/xmloff/controlpropertyhdl.hxx b/xmloff/inc/xmloff/controlpropertyhdl.hxx index 7574932a81..971d25090f 100644 --- a/xmloff/inc/xmloff/controlpropertyhdl.hxx +++ b/xmloff/inc/xmloff/controlpropertyhdl.hxx @@ -47,7 +47,7 @@ namespace xmloff //......................................................................... class IFormsExportContext; - class IFormsImportContext; + class OFormLayerXMLImport_Impl; //===================================================================== //= ORotationAngleHandler diff --git a/xmloff/source/chart/SchXMLExport.cxx b/xmloff/source/chart/SchXMLExport.cxx index a503feb205..9576fc4f91 100644 --- a/xmloff/source/chart/SchXMLExport.cxx +++ b/xmloff/source/chart/SchXMLExport.cxx @@ -1662,7 +1662,7 @@ void SchXMLExportHelper::exportPlotArea( aPropertyStates.clear(); aPropertyStates = mxExpPropMapper->Filter( xStockPropSet ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { if( bExportContent ) { @@ -1684,7 +1684,7 @@ void SchXMLExportHelper::exportPlotArea( aPropertyStates.clear(); aPropertyStates = mxExpPropMapper->Filter( xStockPropSet ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { if( bExportContent ) { @@ -1706,7 +1706,7 @@ void SchXMLExportHelper::exportPlotArea( aPropertyStates.clear(); aPropertyStates = mxExpPropMapper->Filter( xStockPropSet ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { if( bExportContent ) { @@ -1738,7 +1738,7 @@ void SchXMLExportHelper::exportPlotArea( { aPropertyStates = mxExpPropMapper->Filter( xWallPropSet ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { // write element if( bExportContent ) @@ -1766,7 +1766,7 @@ void SchXMLExportHelper::exportPlotArea( { aPropertyStates = mxExpPropMapper->Filter( xFloorPropSet ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { // write element if( bExportContent ) @@ -2674,7 +2674,7 @@ void SchXMLExportHelper::exportSeries( { aPropertyStates = mxExpPropMapper->Filter( xStatProp ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { // write element if( bExportContent ) @@ -2735,7 +2735,7 @@ void SchXMLExportHelper::exportSeries( aPropertyStates = mxExpPropMapper->Filter( xStatProp ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { // write element if( bExportContent ) @@ -3090,7 +3090,7 @@ void SchXMLExportHelper::exportDataPoints( } aPropertyStates = mxExpPropMapper->Filter( xPropSet ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { if( bExportContent ) { @@ -3154,7 +3154,7 @@ void SchXMLExportHelper::exportDataPoints( } aPropertyStates = mxExpPropMapper->Filter( xPropSet ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { if( bExportContent ) { @@ -3324,13 +3324,13 @@ void SchXMLExportHelper::swapDataArray( Sequence< Sequence< double > >& rSequenc void SchXMLExportHelper::CollectAutoStyle( const std::vector< XMLPropertyState >& aStates ) { - if( aStates.size()) + if( !aStates.empty() ) maAutoStyleNameQueue.push( GetAutoStylePoolP().Add( XML_STYLE_FAMILY_SCH_CHART_ID, aStates )); } void SchXMLExportHelper::AddAutoStyleAttribute( const std::vector< XMLPropertyState >& aStates ) { - if( aStates.size()) + if( !aStates.empty() ) { DBG_ASSERT( ! maAutoStyleNameQueue.empty(), "Autostyle queue empty!" ); diff --git a/xmloff/source/chart/SchXMLImport.cxx b/xmloff/source/chart/SchXMLImport.cxx index e45d332302..1576bd263c 100644 --- a/xmloff/source/chart/SchXMLImport.cxx +++ b/xmloff/source/chart/SchXMLImport.cxx @@ -117,155 +117,23 @@ private: // element maps // ---------------------------------------- -static __FAR_DATA SvXMLTokenMapEntry aDocElemTokenMap[] = -{ - { XML_NAMESPACE_OFFICE, XML_AUTOMATIC_STYLES, XML_TOK_DOC_AUTOSTYLES }, - { XML_NAMESPACE_OFFICE, XML_STYLES, XML_TOK_DOC_STYLES }, - { XML_NAMESPACE_OFFICE, XML_META, XML_TOK_DOC_META }, - { XML_NAMESPACE_OFFICE, XML_BODY, XML_TOK_DOC_BODY }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aTableElemTokenMap[] = -{ - { XML_NAMESPACE_TABLE, XML_TABLE_HEADER_COLUMNS, XML_TOK_TABLE_HEADER_COLS }, - { XML_NAMESPACE_TABLE, XML_TABLE_COLUMNS, XML_TOK_TABLE_COLUMNS }, - { XML_NAMESPACE_TABLE, XML_TABLE_COLUMN, XML_TOK_TABLE_COLUMN }, - { XML_NAMESPACE_TABLE, XML_TABLE_HEADER_ROWS, XML_TOK_TABLE_HEADER_ROWS }, - { XML_NAMESPACE_TABLE, XML_TABLE_ROWS, XML_TOK_TABLE_ROWS }, - { XML_NAMESPACE_TABLE, XML_TABLE_ROW, XML_TOK_TABLE_ROW }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aChartElemTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_PLOT_AREA, XML_TOK_CHART_PLOT_AREA }, - { XML_NAMESPACE_CHART, XML_TITLE, XML_TOK_CHART_TITLE }, - { XML_NAMESPACE_CHART, XML_SUBTITLE, XML_TOK_CHART_SUBTITLE }, - { XML_NAMESPACE_CHART, XML_LEGEND, XML_TOK_CHART_LEGEND }, - { XML_NAMESPACE_TABLE, XML_TABLE, XML_TOK_CHART_TABLE }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aPlotAreaElemTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_AXIS, XML_TOK_PA_AXIS }, - { XML_NAMESPACE_CHART, XML_SERIES, XML_TOK_PA_SERIES }, - { XML_NAMESPACE_CHART, XML_WALL, XML_TOK_PA_WALL }, - { XML_NAMESPACE_CHART, XML_FLOOR, XML_TOK_PA_FLOOR }, - { XML_NAMESPACE_DR3D, XML_LIGHT, XML_TOK_PA_LIGHT_SOURCE }, - { XML_NAMESPACE_CHART, XML_STOCK_GAIN_MARKER, XML_TOK_PA_STOCK_GAIN }, - { XML_NAMESPACE_CHART, XML_STOCK_LOSS_MARKER, XML_TOK_PA_STOCK_LOSS }, - { XML_NAMESPACE_CHART, XML_STOCK_RANGE_LINE, XML_TOK_PA_STOCK_RANGE }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aSeriesElemTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_DATA_POINT, XML_TOK_SERIES_DATA_POINT }, - { XML_NAMESPACE_CHART, XML_DOMAIN, XML_TOK_SERIES_DOMAIN }, - { XML_NAMESPACE_CHART, XML_MEAN_VALUE, XML_TOK_SERIES_MEAN_VALUE_LINE }, - { XML_NAMESPACE_CHART, XML_REGRESSION_CURVE, XML_TOK_SERIES_REGRESSION_CURVE }, - { XML_NAMESPACE_CHART, XML_ERROR_INDICATOR, XML_TOK_SERIES_ERROR_INDICATOR }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aAxisElemTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_TITLE, XML_TOK_AXIS_TITLE }, - { XML_NAMESPACE_CHART, XML_CATEGORIES, XML_TOK_AXIS_CATEGORIES }, - { XML_NAMESPACE_CHART, XML_GRID, XML_TOK_AXIS_GRID }, - XML_TOKEN_MAP_END -}; // ---------------------------------------- // attribute maps // ---------------------------------------- -static __FAR_DATA SvXMLTokenMapEntry aChartAttrTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_CLASS, XML_TOK_CHART_CLASS }, - { XML_NAMESPACE_SVG, XML_WIDTH, XML_TOK_CHART_WIDTH }, - { XML_NAMESPACE_SVG, XML_HEIGHT, XML_TOK_CHART_HEIGHT }, - { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_CHART_STYLE_NAME }, - { XML_NAMESPACE_CHART, XML_COLUMN_MAPPING, XML_TOK_CHART_COL_MAPPING }, - { XML_NAMESPACE_CHART, XML_ROW_MAPPING, XML_TOK_CHART_ROW_MAPPING }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aPlotAreaAttrTokenMap[] = -{ - { XML_NAMESPACE_SVG, XML_X, XML_TOK_PA_X }, - { XML_NAMESPACE_SVG, XML_Y, XML_TOK_PA_Y }, - { XML_NAMESPACE_SVG, XML_WIDTH, XML_TOK_PA_WIDTH }, - { XML_NAMESPACE_SVG, XML_HEIGHT, XML_TOK_PA_HEIGHT }, - { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_PA_STYLE_NAME }, - { XML_NAMESPACE_TABLE, XML_CELL_RANGE_ADDRESS, XML_TOK_PA_CHART_ADDRESS }, - { XML_NAMESPACE_CHART, XML_DATA_SOURCE_HAS_LABELS, XML_TOK_PA_DS_HAS_LABELS }, - { XML_NAMESPACE_DR3D, XML_TRANSFORM, XML_TOK_PA_TRANSFORM }, - { XML_NAMESPACE_DR3D, XML_VRP, XML_TOK_PA_VRP }, - { XML_NAMESPACE_DR3D, XML_VPN, XML_TOK_PA_VPN }, - { XML_NAMESPACE_DR3D, XML_VUP, XML_TOK_PA_VUP }, - { XML_NAMESPACE_DR3D, XML_PROJECTION, XML_TOK_PA_PROJECTION }, - { XML_NAMESPACE_DR3D, XML_DISTANCE, XML_TOK_PA_DISTANCE }, - { XML_NAMESPACE_DR3D, XML_FOCAL_LENGTH, XML_TOK_PA_FOCAL_LENGTH }, - { XML_NAMESPACE_DR3D, XML_SHADOW_SLANT, XML_TOK_PA_SHADOW_SLANT }, - { XML_NAMESPACE_DR3D, XML_SHADE_MODE, XML_TOK_PA_SHADE_MODE }, - { XML_NAMESPACE_DR3D, XML_AMBIENT_COLOR, XML_TOK_PA_AMBIENT_COLOR }, - { XML_NAMESPACE_DR3D, XML_LIGHTING_MODE, XML_TOK_PA_LIGHTING_MODE }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aAxisAttrTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_DIMENSION, XML_TOK_AXIS_DIMENSION }, - { XML_NAMESPACE_CHART, XML_NAME, XML_TOK_AXIS_NAME }, - { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_AXIS_STYLE_NAME }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aLegendAttrTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_LEGEND_POSITION, XML_TOK_LEGEND_POSITION }, - { XML_NAMESPACE_SVG, XML_X, XML_TOK_LEGEND_X }, - { XML_NAMESPACE_SVG, XML_Y, XML_TOK_LEGEND_Y }, - { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_LEGEND_STYLE_NAME }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aAutoStyleAttrTokenMap[] = -{ - { XML_NAMESPACE_STYLE, XML_FAMILY, XML_TOK_AS_FAMILY }, - { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_AS_NAME }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aCellAttrTokenMap[] = -{ - { XML_NAMESPACE_OFFICE, XML_VALUE_TYPE, XML_TOK_CELL_VAL_TYPE }, - { XML_NAMESPACE_OFFICE, XML_VALUE, XML_TOK_CELL_VALUE }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aSeriesAttrTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_VALUES_CELL_RANGE_ADDRESS, XML_TOK_SERIES_CELL_RANGE }, - { XML_NAMESPACE_CHART, XML_LABEL_CELL_ADDRESS, XML_TOK_SERIES_LABEL_ADDRESS }, - { XML_NAMESPACE_CHART, XML_ATTACHED_AXIS, XML_TOK_SERIES_ATTACHED_AXIS }, - { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_SERIES_STYLE_NAME }, - { XML_NAMESPACE_CHART, XML_CLASS, XML_TOK_SERIES_CHART_CLASS }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aRegressionEquationAttrTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_REGEQ_STYLE_NAME }, - { XML_NAMESPACE_CHART, XML_DISPLAY_EQUATION, XML_TOK_REGEQ_DISPLAY_EQUATION }, - { XML_NAMESPACE_CHART, XML_DISPLAY_R_SQUARE, XML_TOK_REGEQ_DISPLAY_R_SQUARE }, - { XML_NAMESPACE_SVG, XML_X, XML_TOK_REGEQ_POS_X }, - { XML_NAMESPACE_SVG, XML_Y, XML_TOK_REGEQ_POS_Y }, - XML_TOKEN_MAP_END -}; // ======================================== @@ -352,42 +220,121 @@ SvXMLImportContext* SchXMLImportHelper::CreateChartContext( const SvXMLTokenMap& SchXMLImportHelper::GetDocElemTokenMap() { if( ! mpChartDocElemTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aDocElemTokenMap[] = + { + { XML_NAMESPACE_OFFICE, XML_AUTOMATIC_STYLES, XML_TOK_DOC_AUTOSTYLES }, + { XML_NAMESPACE_OFFICE, XML_STYLES, XML_TOK_DOC_STYLES }, + { XML_NAMESPACE_OFFICE, XML_META, XML_TOK_DOC_META }, + { XML_NAMESPACE_OFFICE, XML_BODY, XML_TOK_DOC_BODY }, + XML_TOKEN_MAP_END + }; + mpChartDocElemTokenMap = new SvXMLTokenMap( aDocElemTokenMap ); + } // if( ! mpChartDocElemTokenMap ) + return *mpChartDocElemTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetTableElemTokenMap() { if( ! mpTableElemTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aTableElemTokenMap[] = + { + { XML_NAMESPACE_TABLE, XML_TABLE_HEADER_COLUMNS, XML_TOK_TABLE_HEADER_COLS }, + { XML_NAMESPACE_TABLE, XML_TABLE_COLUMNS, XML_TOK_TABLE_COLUMNS }, + { XML_NAMESPACE_TABLE, XML_TABLE_COLUMN, XML_TOK_TABLE_COLUMN }, + { XML_NAMESPACE_TABLE, XML_TABLE_HEADER_ROWS, XML_TOK_TABLE_HEADER_ROWS }, + { XML_NAMESPACE_TABLE, XML_TABLE_ROWS, XML_TOK_TABLE_ROWS }, + { XML_NAMESPACE_TABLE, XML_TABLE_ROW, XML_TOK_TABLE_ROW }, + XML_TOKEN_MAP_END + }; + mpTableElemTokenMap = new SvXMLTokenMap( aTableElemTokenMap ); + } // if( ! mpTableElemTokenMap ) + return *mpTableElemTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetChartElemTokenMap() { if( ! mpChartElemTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aChartElemTokenMap[] = + { + { XML_NAMESPACE_CHART, XML_PLOT_AREA, XML_TOK_CHART_PLOT_AREA }, + { XML_NAMESPACE_CHART, XML_TITLE, XML_TOK_CHART_TITLE }, + { XML_NAMESPACE_CHART, XML_SUBTITLE, XML_TOK_CHART_SUBTITLE }, + { XML_NAMESPACE_CHART, XML_LEGEND, XML_TOK_CHART_LEGEND }, + { XML_NAMESPACE_TABLE, XML_TABLE, XML_TOK_CHART_TABLE }, + XML_TOKEN_MAP_END + }; + mpChartElemTokenMap = new SvXMLTokenMap( aChartElemTokenMap ); + } // if( ! mpChartElemTokenMap ) + return *mpChartElemTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetPlotAreaElemTokenMap() { if( ! mpPlotAreaElemTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aPlotAreaElemTokenMap[] = +{ + { XML_NAMESPACE_CHART, XML_AXIS, XML_TOK_PA_AXIS }, + { XML_NAMESPACE_CHART, XML_SERIES, XML_TOK_PA_SERIES }, + { XML_NAMESPACE_CHART, XML_WALL, XML_TOK_PA_WALL }, + { XML_NAMESPACE_CHART, XML_FLOOR, XML_TOK_PA_FLOOR }, + { XML_NAMESPACE_DR3D, XML_LIGHT, XML_TOK_PA_LIGHT_SOURCE }, + { XML_NAMESPACE_CHART, XML_STOCK_GAIN_MARKER, XML_TOK_PA_STOCK_GAIN }, + { XML_NAMESPACE_CHART, XML_STOCK_LOSS_MARKER, XML_TOK_PA_STOCK_LOSS }, + { XML_NAMESPACE_CHART, XML_STOCK_RANGE_LINE, XML_TOK_PA_STOCK_RANGE }, + XML_TOKEN_MAP_END +}; + mpPlotAreaElemTokenMap = new SvXMLTokenMap( aPlotAreaElemTokenMap ); + } // if( ! mpPlotAreaElemTokenMap ) + return *mpPlotAreaElemTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetSeriesElemTokenMap() { if( ! mpSeriesElemTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aSeriesElemTokenMap[] = +{ + { XML_NAMESPACE_CHART, XML_DATA_POINT, XML_TOK_SERIES_DATA_POINT }, + { XML_NAMESPACE_CHART, XML_DOMAIN, XML_TOK_SERIES_DOMAIN }, + { XML_NAMESPACE_CHART, XML_MEAN_VALUE, XML_TOK_SERIES_MEAN_VALUE_LINE }, + { XML_NAMESPACE_CHART, XML_REGRESSION_CURVE, XML_TOK_SERIES_REGRESSION_CURVE }, + { XML_NAMESPACE_CHART, XML_ERROR_INDICATOR, XML_TOK_SERIES_ERROR_INDICATOR }, + XML_TOKEN_MAP_END +}; + mpSeriesElemTokenMap = new SvXMLTokenMap( aSeriesElemTokenMap ); + } // if( ! mpSeriesElemTokenMap ) + return *mpSeriesElemTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetAxisElemTokenMap() { if( ! mpAxisElemTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aAxisElemTokenMap[] = +{ + { XML_NAMESPACE_CHART, XML_TITLE, XML_TOK_AXIS_TITLE }, + { XML_NAMESPACE_CHART, XML_CATEGORIES, XML_TOK_AXIS_CATEGORIES }, + { XML_NAMESPACE_CHART, XML_GRID, XML_TOK_AXIS_GRID }, + XML_TOKEN_MAP_END +}; + mpAxisElemTokenMap = new SvXMLTokenMap( aAxisElemTokenMap ); + } // if( ! mpAxisElemTokenMap ) + return *mpAxisElemTokenMap; } @@ -396,56 +343,165 @@ const SvXMLTokenMap& SchXMLImportHelper::GetAxisElemTokenMap() const SvXMLTokenMap& SchXMLImportHelper::GetChartAttrTokenMap() { if( ! mpChartAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aChartAttrTokenMap[] = +{ + { XML_NAMESPACE_CHART, XML_CLASS, XML_TOK_CHART_CLASS }, + { XML_NAMESPACE_SVG, XML_WIDTH, XML_TOK_CHART_WIDTH }, + { XML_NAMESPACE_SVG, XML_HEIGHT, XML_TOK_CHART_HEIGHT }, + { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_CHART_STYLE_NAME }, + { XML_NAMESPACE_CHART, XML_COLUMN_MAPPING, XML_TOK_CHART_COL_MAPPING }, + { XML_NAMESPACE_CHART, XML_ROW_MAPPING, XML_TOK_CHART_ROW_MAPPING }, + XML_TOKEN_MAP_END +}; + mpChartAttrTokenMap = new SvXMLTokenMap( aChartAttrTokenMap ); + } // if( ! mpChartAttrTokenMap ) + return *mpChartAttrTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetPlotAreaAttrTokenMap() { if( ! mpPlotAreaAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aPlotAreaAttrTokenMap[] = +{ + { XML_NAMESPACE_SVG, XML_X, XML_TOK_PA_X }, + { XML_NAMESPACE_SVG, XML_Y, XML_TOK_PA_Y }, + { XML_NAMESPACE_SVG, XML_WIDTH, XML_TOK_PA_WIDTH }, + { XML_NAMESPACE_SVG, XML_HEIGHT, XML_TOK_PA_HEIGHT }, + { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_PA_STYLE_NAME }, + { XML_NAMESPACE_TABLE, XML_CELL_RANGE_ADDRESS, XML_TOK_PA_CHART_ADDRESS }, + { XML_NAMESPACE_CHART, XML_DATA_SOURCE_HAS_LABELS, XML_TOK_PA_DS_HAS_LABELS }, + { XML_NAMESPACE_DR3D, XML_TRANSFORM, XML_TOK_PA_TRANSFORM }, + { XML_NAMESPACE_DR3D, XML_VRP, XML_TOK_PA_VRP }, + { XML_NAMESPACE_DR3D, XML_VPN, XML_TOK_PA_VPN }, + { XML_NAMESPACE_DR3D, XML_VUP, XML_TOK_PA_VUP }, + { XML_NAMESPACE_DR3D, XML_PROJECTION, XML_TOK_PA_PROJECTION }, + { XML_NAMESPACE_DR3D, XML_DISTANCE, XML_TOK_PA_DISTANCE }, + { XML_NAMESPACE_DR3D, XML_FOCAL_LENGTH, XML_TOK_PA_FOCAL_LENGTH }, + { XML_NAMESPACE_DR3D, XML_SHADOW_SLANT, XML_TOK_PA_SHADOW_SLANT }, + { XML_NAMESPACE_DR3D, XML_SHADE_MODE, XML_TOK_PA_SHADE_MODE }, + { XML_NAMESPACE_DR3D, XML_AMBIENT_COLOR, XML_TOK_PA_AMBIENT_COLOR }, + { XML_NAMESPACE_DR3D, XML_LIGHTING_MODE, XML_TOK_PA_LIGHTING_MODE }, + XML_TOKEN_MAP_END +}; + mpPlotAreaAttrTokenMap = new SvXMLTokenMap( aPlotAreaAttrTokenMap ); + } // if( ! mpPlotAreaAttrTokenMap ) + return *mpPlotAreaAttrTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetAxisAttrTokenMap() { if( ! mpAxisAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aAxisAttrTokenMap[] = +{ + { XML_NAMESPACE_CHART, XML_DIMENSION, XML_TOK_AXIS_DIMENSION }, + { XML_NAMESPACE_CHART, XML_NAME, XML_TOK_AXIS_NAME }, + { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_AXIS_STYLE_NAME }, + XML_TOKEN_MAP_END +}; + mpAxisAttrTokenMap = new SvXMLTokenMap( aAxisAttrTokenMap ); + } // if( ! mpAxisAttrTokenMap ) + return *mpAxisAttrTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetLegendAttrTokenMap() { if( ! mpLegendAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aLegendAttrTokenMap[] = +{ + { XML_NAMESPACE_CHART, XML_LEGEND_POSITION, XML_TOK_LEGEND_POSITION }, + { XML_NAMESPACE_SVG, XML_X, XML_TOK_LEGEND_X }, + { XML_NAMESPACE_SVG, XML_Y, XML_TOK_LEGEND_Y }, + { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_LEGEND_STYLE_NAME }, + XML_TOKEN_MAP_END +}; + mpLegendAttrTokenMap = new SvXMLTokenMap( aLegendAttrTokenMap ); + } // if( ! mpLegendAttrTokenMap ) + return *mpLegendAttrTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetAutoStyleAttrTokenMap() { if( ! mpAutoStyleAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aAutoStyleAttrTokenMap[] = +{ + { XML_NAMESPACE_STYLE, XML_FAMILY, XML_TOK_AS_FAMILY }, + { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_AS_NAME }, + XML_TOKEN_MAP_END +}; + mpAutoStyleAttrTokenMap = new SvXMLTokenMap( aAutoStyleAttrTokenMap ); + } // if( ! mpAutoStyleAttrTokenMap ) + return *mpAutoStyleAttrTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetCellAttrTokenMap() { if( ! mpCellAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aCellAttrTokenMap[] = +{ + { XML_NAMESPACE_OFFICE, XML_VALUE_TYPE, XML_TOK_CELL_VAL_TYPE }, + { XML_NAMESPACE_OFFICE, XML_VALUE, XML_TOK_CELL_VALUE }, + XML_TOKEN_MAP_END +}; + mpCellAttrTokenMap = new SvXMLTokenMap( aCellAttrTokenMap ); + } // if( ! mpCellAttrTokenMap ) + return *mpCellAttrTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetSeriesAttrTokenMap() { if( ! mpSeriesAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aSeriesAttrTokenMap[] = +{ + { XML_NAMESPACE_CHART, XML_VALUES_CELL_RANGE_ADDRESS, XML_TOK_SERIES_CELL_RANGE }, + { XML_NAMESPACE_CHART, XML_LABEL_CELL_ADDRESS, XML_TOK_SERIES_LABEL_ADDRESS }, + { XML_NAMESPACE_CHART, XML_ATTACHED_AXIS, XML_TOK_SERIES_ATTACHED_AXIS }, + { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_SERIES_STYLE_NAME }, + { XML_NAMESPACE_CHART, XML_CLASS, XML_TOK_SERIES_CHART_CLASS }, + XML_TOKEN_MAP_END +}; + mpSeriesAttrTokenMap = new SvXMLTokenMap( aSeriesAttrTokenMap ); + } // if( ! mpSeriesAttrTokenMap ) + return *mpSeriesAttrTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetRegEquationAttrTokenMap() { if( ! mpRegEquationAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aRegressionEquationAttrTokenMap[] = +{ + { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_REGEQ_STYLE_NAME }, + { XML_NAMESPACE_CHART, XML_DISPLAY_EQUATION, XML_TOK_REGEQ_DISPLAY_EQUATION }, + { XML_NAMESPACE_CHART, XML_DISPLAY_R_SQUARE, XML_TOK_REGEQ_DISPLAY_R_SQUARE }, + { XML_NAMESPACE_SVG, XML_X, XML_TOK_REGEQ_POS_X }, + { XML_NAMESPACE_SVG, XML_Y, XML_TOK_REGEQ_POS_Y }, + XML_TOKEN_MAP_END +}; + mpRegEquationAttrTokenMap = new SvXMLTokenMap( aRegressionEquationAttrTokenMap ); + } // if( ! mpRegEquationAttrTokenMap ) + return *mpRegEquationAttrTokenMap; } diff --git a/xmloff/source/chart/SchXMLSeries2Context.cxx b/xmloff/source/chart/SchXMLSeries2Context.cxx index 6ab7988251..42dacf4920 100644 --- a/xmloff/source/chart/SchXMLSeries2Context.cxx +++ b/xmloff/source/chart/SchXMLSeries2Context.cxx @@ -533,7 +533,7 @@ void SchXMLSeries2Context::EndElement() maSeriesChartTypeName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.chart2.ScatterChartType")) ) { bCreateXValues = true; - if( maDomainAddresses.size() > 0 ) + if( !maDomainAddresses.empty() ) { aXValuesRange = maDomainAddresses.front(); bHasOwnDomains = true; diff --git a/xmloff/source/core/attrlist.cxx b/xmloff/source/core/attrlist.cxx index 67ba0455de..86de77e4e9 100644 --- a/xmloff/source/core/attrlist.cxx +++ b/xmloff/source/core/attrlist.cxx @@ -120,11 +120,7 @@ SvXMLAttributeList::SvXMLAttributeList( const uno::Reference< OUString SAL_CALL SvXMLAttributeList::getNameByIndex(sal_Int16 i) throw( ::com::sun::star::uno::RuntimeException ) { - if( static_cast< SvXMLAttributeList_Impl::size_type >( i ) - < m_pImpl->vecAttribute.size() ) { - return m_pImpl->vecAttribute[i].sName; - } - return OUString(); + return ( static_cast< SvXMLAttributeList_Impl::size_type >( i ) < m_pImpl->vecAttribute.size() ) ? m_pImpl->vecAttribute[i].sName : OUString(); } @@ -135,12 +131,7 @@ OUString SAL_CALL SvXMLAttributeList::getTypeByIndex(sal_Int16) throw( ::com::su OUString SAL_CALL SvXMLAttributeList::getValueByIndex(sal_Int16 i) throw( ::com::sun::star::uno::RuntimeException ) { - if( static_cast< SvXMLAttributeList_Impl::size_type >( i ) - < m_pImpl->vecAttribute.size() ) { - return m_pImpl->vecAttribute[i].sValue; - } - return OUString(); - + return ( static_cast< SvXMLAttributeList_Impl::size_type >( i ) < m_pImpl->vecAttribute.size() ) ? m_pImpl->vecAttribute[i].sValue : OUString(); } OUString SAL_CALL SvXMLAttributeList::getTypeByName( const OUString& ) throw( ::com::sun::star::uno::RuntimeException ) diff --git a/xmloff/source/core/xmlexp.cxx b/xmloff/source/core/xmlexp.cxx index 1aee3bfa02..8068012230 100644 --- a/xmloff/source/core/xmlexp.cxx +++ b/xmloff/source/core/xmlexp.cxx @@ -1046,19 +1046,20 @@ void SvXMLExport::ImplExportStyles( sal_Bool ) } // transfer style names (+ families) TO other components (if appropriate) - OUString sStyleNames( RTL_CONSTASCII_USTRINGPARAM("StyleNames") ); - OUString sStyleFamilies( RTL_CONSTASCII_USTRINGPARAM("StyleFamilies") ); - if( ( ( mnExportFlags & EXPORT_CONTENT ) == 0 ) - && mxExportInfo.is() - && mxExportInfo->getPropertySetInfo()->hasPropertyByName( sStyleNames ) - && mxExportInfo->getPropertySetInfo()->hasPropertyByName( sStyleFamilies ) ) + if( ( ( mnExportFlags & EXPORT_CONTENT ) == 0 ) && mxExportInfo.is() ) { - Sequence aStyleFamilies; - Sequence aStyleNames; - mxAutoStylePool->GetRegisteredNames( aStyleFamilies, aStyleNames ); - mxExportInfo->setPropertyValue( sStyleNames, makeAny( aStyleNames ) ); - mxExportInfo->setPropertyValue( sStyleFamilies, - makeAny( aStyleFamilies ) ); + static OUString sStyleNames( RTL_CONSTASCII_USTRINGPARAM("StyleNames") ); + static OUString sStyleFamilies( RTL_CONSTASCII_USTRINGPARAM("StyleFamilies") ); + uno::Reference< beans::XPropertySetInfo > xPropertySetInfo = mxExportInfo->getPropertySetInfo(); + if ( xPropertySetInfo->hasPropertyByName( sStyleNames ) && xPropertySetInfo->hasPropertyByName( sStyleFamilies ) ) + { + Sequence aStyleFamilies; + Sequence aStyleNames; + mxAutoStylePool->GetRegisteredNames( aStyleFamilies, aStyleNames ); + mxExportInfo->setPropertyValue( sStyleNames, makeAny( aStyleNames ) ); + mxExportInfo->setPropertyValue( sStyleFamilies, + makeAny( aStyleFamilies ) ); + } } } diff --git a/xmloff/source/core/xmlictxt.cxx b/xmloff/source/core/xmlictxt.cxx index 82e3fcf809..d7fe067fe8 100644 --- a/xmloff/source/core/xmlictxt.cxx +++ b/xmloff/source/core/xmlictxt.cxx @@ -39,14 +39,15 @@ #include #include #include +#include using ::rtl::OUString; using ::rtl::OUStringBuffer; using namespace ::com::sun::star; +DBG_NAME(SvXMLImportContext) TYPEINIT0( SvXMLImportContext ); - SvXMLImportContext::SvXMLImportContext( SvXMLImport& rImp, USHORT nPrfx, const OUString& rLName ) : mrImport( rImp ), @@ -54,10 +55,14 @@ SvXMLImportContext::SvXMLImportContext( SvXMLImport& rImp, USHORT nPrfx, maLocalName( rLName ), mpRewindMap( 0 ) { + DBG_CTOR(SvXMLImportContext,NULL); + } SvXMLImportContext::~SvXMLImportContext() { + + DBG_DTOR(SvXMLImportContext,NULL); } SvXMLImportContext *SvXMLImportContext::CreateChildContext( USHORT nPrefix, diff --git a/xmloff/source/core/xmluconv.cxx b/xmloff/source/core/xmluconv.cxx index 910b4fd4eb..968cf5c6d2 100644 --- a/xmloff/source/core/xmluconv.cxx +++ b/xmloff/source/core/xmluconv.cxx @@ -40,6 +40,7 @@ #include #include #include +#include #ifndef _TOOLS_DATE_HXX #include @@ -203,7 +204,7 @@ sal_Bool SvXMLUnitConverter::convertMeasure( sal_Int32& rValue, double nVal = 0; sal_Int32 nPos = 0L; - sal_Int32 nLen = rString.getLength(); + const sal_Int32 nLen = rString.getLength(); // skip white space while( (nPos < nLen) && (rString[nPos] <= sal_Unicode(' ')) ) @@ -212,7 +213,7 @@ sal_Bool SvXMLUnitConverter::convertMeasure( sal_Int32& rValue, if( nPos < nLen && sal_Unicode('-') == rString[nPos] ) { bNeg = sal_True; - nPos++; + ++nPos; } // get number @@ -223,12 +224,12 @@ sal_Bool SvXMLUnitConverter::convertMeasure( sal_Int32& rValue, // TODO: check overflow! nVal *= 10; nVal += (rString[nPos] - sal_Unicode('0')); - nPos++; + ++nPos; } double nDiv = 1.; if( nPos < nLen && sal_Unicode('.') == rString[nPos] ) { - nPos++; + ++nPos; while( nPos < nLen && sal_Unicode('0') <= rString[nPos] && @@ -237,13 +238,13 @@ sal_Bool SvXMLUnitConverter::convertMeasure( sal_Int32& rValue, // TODO: check overflow! nDiv *= 10; nVal += ( ((double)(rString[nPos] - sal_Unicode('0'))) / nDiv ); - nPos++; + ++nPos; } } // skip white space while( (nPos < nLen) && (rString[nPos] <= sal_Unicode(' ')) ) - nPos++; + ++nPos; if( nPos < nLen ) { @@ -375,7 +376,7 @@ sal_Bool SvXMLUnitConverter::convertMeasure( sal_Int32& rValue, return sal_False; double nScale = 0.; - for( sal_uInt16 i= 0; i < 2; i++ ) + for( sal_uInt16 i= 0; i < 2; ++i ) { const sal_Char *pL = aCmpsL[i]; if( pL ) @@ -386,9 +387,9 @@ sal_Bool SvXMLUnitConverter::convertMeasure( sal_Int32& rValue, sal_Unicode c = rString[nPos]; if( c != *pL && c != *pU ) break; - pL++; - pU++; - nPos++; + ++pL; + ++pU; + ++nPos; } if( !*pL && (nPos == nLen || ' ' == rString[nPos]) ) { @@ -503,7 +504,7 @@ sal_Bool SvXMLUnitConverter::convertEnum( sal_uInt16& rEnum, rEnum = pMap->nValue; return sal_True; } - pMap++; + ++pMap; } return sal_False; @@ -523,7 +524,7 @@ sal_Bool SvXMLUnitConverter::convertEnum( rEnum = pMap->nValue; return sal_True; } - pMap++; + ++pMap; } return sal_False; } @@ -547,7 +548,7 @@ sal_Bool SvXMLUnitConverter::convertEnum( OUStringBuffer& rBuffer, pStr = pMap->pName; break; } - pMap++; + ++pMap; } if( NULL == pStr ) @@ -578,7 +579,7 @@ sal_Bool SvXMLUnitConverter::convertEnum( eTok = pMap->eToken; break; } - pMap++; + ++pMap; } // the map may have contained XML_TOKEN_INVALID @@ -658,37 +659,12 @@ sal_Bool SvXMLUnitConverter::convertNumber( sal_Int32& rValue, const OUString& rString, sal_Int32 nMin, sal_Int32 nMax ) { - sal_Bool bNeg = sal_False; rValue = 0; - - sal_Int32 nPos = 0L; - sal_Int32 nLen = rString.getLength(); - - // skip white space - while( (nPos < nLen) && (rString[nPos] <= sal_Unicode(' ')) ) - nPos++; - - if( nPos < nLen && sal_Unicode('-') == rString[nPos] ) - { - bNeg = sal_True; - nPos++; - } - - // get number - while( nPos < nLen && - sal_Unicode('0') <= rString[nPos] && - sal_Unicode('9') >= rString[nPos] ) - { - // TODO: check overflow! - rValue *= 10; - rValue += (rString[nPos] - sal_Unicode('0')); - nPos++; - } - - if( bNeg ) - rValue *= -1; - - return ( nPos == nLen && rValue >= nMin && rValue <= nMax ); + sal_Int64 nNumber = 0; + sal_Bool bRet = convertNumber64(nNumber,rString,nMin,nMax); + if ( bRet ) + rValue = static_cast(nNumber); + return bRet; } /** convert 64-bit number to string */ @@ -707,16 +683,16 @@ sal_Bool SvXMLUnitConverter::convertNumber64( sal_Int64& rValue, rValue = 0; sal_Int32 nPos = 0L; - sal_Int32 nLen = rString.getLength(); + const sal_Int32 nLen = rString.getLength(); // skip white space while( (nPos < nLen) && (rString[nPos] <= sal_Unicode(' ')) ) - nPos++; + ++nPos; if( nPos < nLen && sal_Unicode('-') == rString[nPos] ) { bNeg = sal_True; - nPos++; + ++nPos; } // get number @@ -727,7 +703,7 @@ sal_Bool SvXMLUnitConverter::convertNumber64( sal_Int64& rValue, // TODO: check overflow! rValue *= 10; rValue += (rString[nPos] - sal_Unicode('0')); - nPos++; + ++nPos; } if( bNeg ) @@ -800,7 +776,7 @@ sal_Bool SvXMLUnitConverter::convertDouble(double& rValue, if(eStatus == rtl_math_ConversionStatus_Ok) { OUStringBuffer sUnit; - double fFactor = SvXMLExportHelper::GetConversionFactor(sUnit, eCoreUnit, eSrcUnit); + const double fFactor = SvXMLExportHelper::GetConversionFactor(sUnit, eCoreUnit, eSrcUnit); if(fFactor != 1.0 && fFactor != 0.0) rValue /= fFactor; } @@ -822,15 +798,8 @@ sal_Bool SvXMLUnitConverter::setNullDate(const com::sun::star::uno::Reference xNumberFormatsSupplier (xModel, com::sun::star::uno::UNO_QUERY); if (xNumberFormatsSupplier.is()) { - com::sun::star::uno::Reference xPropertySet = xNumberFormatsSupplier->getNumberFormatSettings(); - if (xPropertySet.is() ) - { - com::sun::star::uno::Any aAnyNullDate = xPropertySet->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(XML_NULLDATE))); - if (aAnyNullDate >>= aNullDate) - { - return sal_True; - } - } + const com::sun::star::uno::Reference xPropertySet = xNumberFormatsSupplier->getNumberFormatSettings(); + return xPropertySet.is() && (xPropertySet->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(XML_NULLDATE))) >>= aNullDate); } return sal_False; } @@ -1194,104 +1163,24 @@ void SvXMLUnitConverter::convertDateTime( ::rtl::OUStringBuffer& rBuffer, sal_Bool SvXMLUnitConverter::convertDateTime( double& fDateTime, const ::rtl::OUString& rString, const com::sun::star::util::Date& aTempNullDate) { - sal_Bool bSuccess = sal_True; - - rtl::OUString aDateStr, aTimeStr, sDoubleStr; - sal_Int32 nPos = rString.indexOf( (sal_Unicode) 'T' ); - sal_Int32 nPos2 = rString.indexOf( (sal_Unicode) ',' ); - if (nPos2 < 0) - nPos2 = rString.indexOf( (sal_Unicode) '.' ); - if ( nPos >= 0 ) - { - aDateStr = rString.copy( 0, nPos ); - if ( nPos2 >= 0 ) - { - aTimeStr = rString.copy( nPos + 1, nPos2 - nPos - 1 ); - sDoubleStr = OUString(RTL_CONSTASCII_USTRINGPARAM("0.")); - sDoubleStr += rString.copy( nPos2 + 1 ); - } - else - { - aTimeStr = rString.copy(nPos + 1); - sDoubleStr = OUString(RTL_CONSTASCII_USTRINGPARAM("0.0")); - } - } - else - aDateStr = rString; // no separator: only date part - - sal_Int32 nYear = 1899; - sal_Int32 nMonth = 12; - sal_Int32 nDay = 30; - sal_Int32 nHour = 0; - sal_Int32 nMin = 0; - sal_Int32 nSec = 0; - - const sal_Unicode* pStr = aDateStr.getStr(); - sal_Int32 nDateTokens = 1; - while ( *pStr ) - { - if ( *pStr == '-' ) - nDateTokens++; - pStr++; - } - if ( nDateTokens > 3 || aDateStr.getLength() == 0 ) - bSuccess = sal_False; - else - { - sal_Int32 n = 0; - if ( !convertNumber( nYear, aDateStr.getToken( 0, '-', n ), 0, 9999 ) ) - bSuccess = sal_False; - if ( nDateTokens >= 2 ) - if ( !convertNumber( nMonth, aDateStr.getToken( 0, '-', n ), 0, 12 ) ) - bSuccess = sal_False; - if ( nDateTokens >= 3 ) - if ( !convertNumber( nDay, aDateStr.getToken( 0, '-', n ), 0, 31 ) ) - bSuccess = sal_False; - } - - if ( aTimeStr.getLength() > 0 ) // time is optional - { - pStr = aTimeStr.getStr(); - sal_Int32 nTimeTokens = 1; - while ( *pStr ) - { - if ( *pStr == ':' ) - nTimeTokens++; - pStr++; - } - if ( nTimeTokens > 3 ) - bSuccess = sal_False; - else - { - sal_Int32 n = 0; - if ( !convertNumber( nHour, aTimeStr.getToken( 0, ':', n ), 0, 23 ) ) - bSuccess = sal_False; - if ( nTimeTokens >= 2 ) - if ( !convertNumber( nMin, aTimeStr.getToken( 0, ':', n ), 0, 59 ) ) - bSuccess = sal_False; - if ( nTimeTokens >= 3 ) - if ( !convertNumber( nSec, aTimeStr.getToken( 0, ':', n ), 0, 59 ) ) - bSuccess = sal_False; - } - } + com::sun::star::util::DateTime aDateTime; + sal_Bool bSuccess = convertDateTime(aDateTime,rString); if (bSuccess) { double fTempDateTime = 0.0; - Date aTmpNullDate(aTempNullDate.Day, aTempNullDate.Month, aTempNullDate.Year); - Date aTempDate((sal_uInt16)nDay, (sal_uInt16)nMonth, (sal_uInt16)nYear); - sal_Int32 nTage = aTempDate - aTmpNullDate; + const Date aTmpNullDate(aTempNullDate.Day, aTempNullDate.Month, aTempNullDate.Year); + const Date aTempDate((sal_uInt16)aDateTime.Day, (sal_uInt16)aDateTime.Month, (sal_uInt16)aDateTime.Year); + const sal_Int32 nTage = aTempDate - aTmpNullDate; fTempDateTime = nTage; - double Hour = nHour; - double Min = nMin; - double Sec = nSec; - double Sec100 = 0.0; - double fFraction = sDoubleStr.toDouble(); + double Hour = aDateTime.Hours; + double Min = aDateTime.Minutes; + double Sec = aDateTime.Seconds; + double Sec100 = aDateTime.HundredthSeconds; fTempDateTime += Hour / 24; fTempDateTime += Min / (24 * 60); fTempDateTime += Sec / (24 * 60 * 60); - fTempDateTime += Sec100 / (24 * 60 * 60 * 60); - fTempDateTime += fFraction / (24 * 60 * 60); + fTempDateTime += Sec100 / (24 * 60 * 60 * 100); fDateTime = fTempDateTime; } return bSuccess; @@ -1510,36 +1399,43 @@ sal_Bool SvXMLTokenEnumerator::getNextToken( OUString& rToken ) } // --- - -/** convert string to ::basegfx::B3DVector */ -sal_Bool SvXMLUnitConverter::convertB3DVector( ::basegfx::B3DVector& rVector, const OUString& rValue ) +bool lcl_getPositions(const OUString& _sValue,OUString& _rContentX,OUString& _rContentY,OUString& _rContentZ) { - if(!rValue.getLength() || rValue[0] != '(') - return sal_False; + if(!_sValue.getLength() || _sValue[0] != '(') + return false; sal_Int32 nPos(1L); - sal_Int32 nFound = rValue.indexOf(sal_Unicode(' '), nPos); + sal_Int32 nFound = _sValue.indexOf(sal_Unicode(' '), nPos); if(nFound == -1 || nFound <= nPos) - return sal_False; + return false; - OUString aContentX = rValue.copy(nPos, nFound - nPos); + _rContentX = _sValue.copy(nPos, nFound - nPos); nPos = nFound + 1; - nFound = rValue.indexOf(sal_Unicode(' '), nPos); + nFound = _sValue.indexOf(sal_Unicode(' '), nPos); if(nFound == -1 || nFound <= nPos) - return sal_False; + return false; - OUString aContentY = rValue.copy(nPos, nFound - nPos); + _rContentY = _sValue.copy(nPos, nFound - nPos); nPos = nFound + 1; - nFound = rValue.indexOf(sal_Unicode(')'), nPos); + nFound = _sValue.indexOf(sal_Unicode(')'), nPos); if(nFound == -1 || nFound <= nPos) - return sal_False; + return false; - OUString aContentZ = rValue.copy(nPos, nFound - nPos); + _rContentZ = _sValue.copy(nPos, nFound - nPos); + return true; + +} +/** convert string to ::basegfx::B3DVector */ +sal_Bool SvXMLUnitConverter::convertB3DVector( ::basegfx::B3DVector& rVector, const OUString& rValue ) +{ + OUString aContentX,aContentY,aContentZ; + if ( !lcl_getPositions(rValue,aContentX,aContentY,aContentZ) ) + return sal_False; rtl_math_ConversionStatus eStatus; @@ -1578,33 +1474,10 @@ void SvXMLUnitConverter::convertB3DVector( OUStringBuffer &rBuffer, const ::base sal_Bool SvXMLUnitConverter::convertPosition3D( drawing::Position3D& rPosition, const OUString& rValue ) { - if(!rValue.getLength() || rValue[0] != '(') + OUString aContentX,aContentY,aContentZ; + if ( !lcl_getPositions(rValue,aContentX,aContentY,aContentZ) ) return sal_False; - sal_Int32 nPos(1L); - sal_Int32 nFound = rValue.indexOf(sal_Unicode(' '), nPos); - - if(nFound == -1 || nFound <= nPos) - return sal_False; - - OUString aContentX = rValue.copy(nPos, nFound - nPos); - - nPos = nFound + 1; - nFound = rValue.indexOf(sal_Unicode(' '), nPos); - - if(nFound == -1 || nFound <= nPos) - return sal_False; - - OUString aContentY = rValue.copy(nPos, nFound - nPos); - - nPos = nFound + 1; - nFound = rValue.indexOf(sal_Unicode(')'), nPos); - - if(nFound == -1 || nFound <= nPos) - return sal_False; - - OUString aContentZ = rValue.copy(nPos, nFound - nPos); - if ( !convertDouble( rPosition.PositionX, aContentX, sal_True ) ) return sal_False; if ( !convertDouble( rPosition.PositionY, aContentY, sal_True ) ) @@ -1937,18 +1810,15 @@ void SvXMLUnitConverter::convertPropertySet(uno::Sequence& if (xPropertySetInfo.is()) { uno::Sequence< beans::Property > aProps = xPropertySetInfo->getProperties(); - sal_Int32 nCount(aProps.getLength()); + const sal_Int32 nCount(aProps.getLength()); if (nCount) { rProps.realloc(nCount); beans::PropertyValue* pProps = rProps.getArray(); - if (pProps) + for (sal_Int32 i = 0; i < nCount; i++, ++pProps) { - for (sal_Int32 i = 0; i < nCount; i++, pProps++) - { - pProps->Name = aProps[i].Name; - pProps->Value = aProperties->getPropertyValue(aProps[i].Name); - } + pProps->Name = aProps[i].Name; + pProps->Value = aProperties->getPropertyValue(aProps[i].Name); } } } diff --git a/xmloff/source/draw/sdxmlimp.cxx b/xmloff/source/draw/sdxmlimp.cxx index 463c7d9c97..538dd65384 100644 --- a/xmloff/source/draw/sdxmlimp.cxx +++ b/xmloff/source/draw/sdxmlimp.cxx @@ -71,109 +71,15 @@ using namespace ::xmloff::token; ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry aDocElemTokenMap[] = -{ - { XML_NAMESPACE_OFFICE, XML_FONT_FACE_DECLS, XML_TOK_DOC_FONTDECLS }, - { XML_NAMESPACE_OFFICE, XML_STYLES, XML_TOK_DOC_STYLES }, - { XML_NAMESPACE_OFFICE, XML_AUTOMATIC_STYLES, XML_TOK_DOC_AUTOSTYLES }, - { XML_NAMESPACE_OFFICE, XML_MASTER_STYLES, XML_TOK_DOC_MASTERSTYLES }, - { XML_NAMESPACE_OFFICE, XML_META, XML_TOK_DOC_META }, - { XML_NAMESPACE_OFFICE, XML_SCRIPTS, XML_TOK_DOC_SCRIPT }, - { XML_NAMESPACE_OFFICE, XML_BODY, XML_TOK_DOC_BODY }, - { XML_NAMESPACE_OFFICE, XML_SETTINGS, XML_TOK_DOC_SETTINGS }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aBodyElemTokenMap[] = -{ - { XML_NAMESPACE_DRAW, XML_PAGE, XML_TOK_BODY_PAGE }, - { XML_NAMESPACE_PRESENTATION, XML_SETTINGS, XML_TOK_BODY_SETTINGS }, - { XML_NAMESPACE_PRESENTATION, XML_HEADER_DECL, XML_TOK_BODY_HEADER_DECL }, - { XML_NAMESPACE_PRESENTATION, XML_FOOTER_DECL, XML_TOK_BODY_FOOTER_DECL }, - { XML_NAMESPACE_PRESENTATION, XML_DATE_TIME_DECL,XML_TOK_BODY_DATE_TIME_DECL }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aStylesElemTokenMap[] = -{ - { XML_NAMESPACE_STYLE, XML_PAGE_LAYOUT, XML_TOK_STYLES_PAGE_MASTER }, - { XML_NAMESPACE_STYLE, XML_PRESENTATION_PAGE_LAYOUT, XML_TOK_STYLES_PRESENTATION_PAGE_LAYOUT }, - { XML_NAMESPACE_STYLE, XML_STYLE, XML_TOK_STYLES_STYLE }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aMasterPageElemTokenMap[] = -{ - { XML_NAMESPACE_STYLE, XML_STYLE, XML_TOK_MASTERPAGE_STYLE }, - { XML_NAMESPACE_PRESENTATION, XML_NOTES, XML_TOK_MASTERPAGE_NOTES }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aMasterPageAttrTokenMap[] = -{ - { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_MASTERPAGE_NAME }, - { XML_NAMESPACE_STYLE, XML_DISPLAY_NAME, XML_TOK_MASTERPAGE_DISPLAY_NAME }, - { XML_NAMESPACE_STYLE, XML_PAGE_LAYOUT_NAME, XML_TOK_MASTERPAGE_PAGE_MASTER_NAME }, - { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_MASTERPAGE_STYLE_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_PRESENTATION_PAGE_LAYOUT_NAME, XML_TOK_MASTERPAGE_PAGE_LAYOUT_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_USE_HEADER_NAME, XML_TOK_MASTERPAGE_USE_HEADER_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_USE_FOOTER_NAME, XML_TOK_MASTERPAGE_USE_FOOTER_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_USE_DATE_TIME_NAME, XML_TOK_MASTERPAGE_USE_DATE_TIME_NAME }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aPageMasterAttrTokenMap[] = -{ - { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_PAGEMASTER_NAME }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aPageMasterStyleAttrTokenMap[] = -{ - { XML_NAMESPACE_FO, XML_MARGIN_TOP, XML_TOK_PAGEMASTERSTYLE_MARGIN_TOP }, - { XML_NAMESPACE_FO, XML_MARGIN_BOTTOM, XML_TOK_PAGEMASTERSTYLE_MARGIN_BOTTOM }, - { XML_NAMESPACE_FO, XML_MARGIN_LEFT, XML_TOK_PAGEMASTERSTYLE_MARGIN_LEFT }, - { XML_NAMESPACE_FO, XML_MARGIN_RIGHT, XML_TOK_PAGEMASTERSTYLE_MARGIN_RIGHT }, - { XML_NAMESPACE_FO, XML_PAGE_WIDTH, XML_TOK_PAGEMASTERSTYLE_PAGE_WIDTH }, - { XML_NAMESPACE_FO, XML_PAGE_HEIGHT, XML_TOK_PAGEMASTERSTYLE_PAGE_HEIGHT }, - { XML_NAMESPACE_STYLE, XML_PRINT_ORIENTATION, XML_TOK_PAGEMASTERSTYLE_PAGE_ORIENTATION }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aDrawPageAttrTokenMap[] = -{ - { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_DRAWPAGE_NAME }, - { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_DRAWPAGE_STYLE_NAME }, - { XML_NAMESPACE_DRAW, XML_MASTER_PAGE_NAME, XML_TOK_DRAWPAGE_MASTER_PAGE_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_PRESENTATION_PAGE_LAYOUT_NAME, XML_TOK_DRAWPAGE_PAGE_LAYOUT_NAME }, - { XML_NAMESPACE_DRAW, XML_ID, XML_TOK_DRAWPAGE_ID }, - { XML_NAMESPACE_XML, XML_ID, XML_TOK_DRAWPAGE_ID }, - { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_DRAWPAGE_HREF }, - { XML_NAMESPACE_PRESENTATION, XML_USE_HEADER_NAME, XML_TOK_DRAWPAGE_USE_HEADER_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_USE_FOOTER_NAME, XML_TOK_DRAWPAGE_USE_FOOTER_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_USE_DATE_TIME_NAME, XML_TOK_DRAWPAGE_USE_DATE_TIME_NAME }, - - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aDrawPageElemTokenMap[] = -{ - { XML_NAMESPACE_PRESENTATION, XML_NOTES, XML_TOK_DRAWPAGE_NOTES }, - { XML_NAMESPACE_ANIMATION, XML_PAR, XML_TOK_DRAWPAGE_PAR }, - { XML_NAMESPACE_ANIMATION, XML_SEQ, XML_TOK_DRAWPAGE_SEQ }, - XML_TOKEN_MAP_END -}; - -static __FAR_DATA SvXMLTokenMapEntry aPresentationPlaceholderAttrTokenMap[] = -{ - { XML_NAMESPACE_PRESENTATION, XML_OBJECT, XML_TOK_PRESENTATIONPLACEHOLDER_OBJECTNAME }, - { XML_NAMESPACE_SVG, XML_X, XML_TOK_PRESENTATIONPLACEHOLDER_X }, - { XML_NAMESPACE_SVG, XML_Y, XML_TOK_PRESENTATIONPLACEHOLDER_Y }, - { XML_NAMESPACE_SVG, XML_WIDTH, XML_TOK_PRESENTATIONPLACEHOLDER_WIDTH }, - { XML_NAMESPACE_SVG, XML_HEIGHT, XML_TOK_PRESENTATIONPLACEHOLDER_HEIGHT }, - XML_TOKEN_MAP_END -}; ////////////////////////////////////////////////////////////////////////////// @@ -601,7 +507,23 @@ void SdXMLImport::SetProgress(sal_Int32 nProg) const SvXMLTokenMap& SdXMLImport::GetDocElemTokenMap() { if(!mpDocElemTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aDocElemTokenMap[] = +{ + { XML_NAMESPACE_OFFICE, XML_FONT_FACE_DECLS, XML_TOK_DOC_FONTDECLS }, + { XML_NAMESPACE_OFFICE, XML_STYLES, XML_TOK_DOC_STYLES }, + { XML_NAMESPACE_OFFICE, XML_AUTOMATIC_STYLES, XML_TOK_DOC_AUTOSTYLES }, + { XML_NAMESPACE_OFFICE, XML_MASTER_STYLES, XML_TOK_DOC_MASTERSTYLES }, + { XML_NAMESPACE_OFFICE, XML_META, XML_TOK_DOC_META }, + { XML_NAMESPACE_OFFICE, XML_SCRIPTS, XML_TOK_DOC_SCRIPT }, + { XML_NAMESPACE_OFFICE, XML_BODY, XML_TOK_DOC_BODY }, + { XML_NAMESPACE_OFFICE, XML_SETTINGS, XML_TOK_DOC_SETTINGS }, + XML_TOKEN_MAP_END +}; + mpDocElemTokenMap = new SvXMLTokenMap(aDocElemTokenMap); + } // if(!mpDocElemTokenMap) + return *mpDocElemTokenMap; } @@ -610,7 +532,21 @@ const SvXMLTokenMap& SdXMLImport::GetDocElemTokenMap() const SvXMLTokenMap& SdXMLImport::GetBodyElemTokenMap() { if(!mpBodyElemTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aBodyElemTokenMap[] = +{ + { XML_NAMESPACE_DRAW, XML_PAGE, XML_TOK_BODY_PAGE }, + { XML_NAMESPACE_PRESENTATION, XML_SETTINGS, XML_TOK_BODY_SETTINGS }, + { XML_NAMESPACE_PRESENTATION, XML_HEADER_DECL, XML_TOK_BODY_HEADER_DECL }, + { XML_NAMESPACE_PRESENTATION, XML_FOOTER_DECL, XML_TOK_BODY_FOOTER_DECL }, + { XML_NAMESPACE_PRESENTATION, XML_DATE_TIME_DECL,XML_TOK_BODY_DATE_TIME_DECL }, + + XML_TOKEN_MAP_END +}; + mpBodyElemTokenMap = new SvXMLTokenMap(aBodyElemTokenMap); + } // if(!mpBodyElemTokenMap) + return *mpBodyElemTokenMap; } @@ -619,7 +555,18 @@ const SvXMLTokenMap& SdXMLImport::GetBodyElemTokenMap() const SvXMLTokenMap& SdXMLImport::GetStylesElemTokenMap() { if(!mpStylesElemTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aStylesElemTokenMap[] = +{ + { XML_NAMESPACE_STYLE, XML_PAGE_LAYOUT, XML_TOK_STYLES_PAGE_MASTER }, + { XML_NAMESPACE_STYLE, XML_PRESENTATION_PAGE_LAYOUT, XML_TOK_STYLES_PRESENTATION_PAGE_LAYOUT }, + { XML_NAMESPACE_STYLE, XML_STYLE, XML_TOK_STYLES_STYLE }, + XML_TOKEN_MAP_END +}; + mpStylesElemTokenMap = new SvXMLTokenMap(aStylesElemTokenMap); + } // if(!mpStylesElemTokenMap) + return *mpStylesElemTokenMap; } @@ -628,7 +575,17 @@ const SvXMLTokenMap& SdXMLImport::GetStylesElemTokenMap() const SvXMLTokenMap& SdXMLImport::GetMasterPageElemTokenMap() { if(!mpMasterPageElemTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aMasterPageElemTokenMap[] = +{ + { XML_NAMESPACE_STYLE, XML_STYLE, XML_TOK_MASTERPAGE_STYLE }, + { XML_NAMESPACE_PRESENTATION, XML_NOTES, XML_TOK_MASTERPAGE_NOTES }, + XML_TOKEN_MAP_END +}; + mpMasterPageElemTokenMap = new SvXMLTokenMap(aMasterPageElemTokenMap); + } // if(!mpMasterPageElemTokenMap) + return *mpMasterPageElemTokenMap; } @@ -637,7 +594,23 @@ const SvXMLTokenMap& SdXMLImport::GetMasterPageElemTokenMap() const SvXMLTokenMap& SdXMLImport::GetMasterPageAttrTokenMap() { if(!mpMasterPageAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aMasterPageAttrTokenMap[] = +{ + { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_MASTERPAGE_NAME }, + { XML_NAMESPACE_STYLE, XML_DISPLAY_NAME, XML_TOK_MASTERPAGE_DISPLAY_NAME }, + { XML_NAMESPACE_STYLE, XML_PAGE_LAYOUT_NAME, XML_TOK_MASTERPAGE_PAGE_MASTER_NAME }, + { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_MASTERPAGE_STYLE_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_PRESENTATION_PAGE_LAYOUT_NAME, XML_TOK_MASTERPAGE_PAGE_LAYOUT_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_USE_HEADER_NAME, XML_TOK_MASTERPAGE_USE_HEADER_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_USE_FOOTER_NAME, XML_TOK_MASTERPAGE_USE_FOOTER_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_USE_DATE_TIME_NAME, XML_TOK_MASTERPAGE_USE_DATE_TIME_NAME }, + XML_TOKEN_MAP_END +}; + mpMasterPageAttrTokenMap = new SvXMLTokenMap(aMasterPageAttrTokenMap); + } // if(!mpMasterPageAttrTokenMap) + return *mpMasterPageAttrTokenMap; } @@ -646,7 +619,16 @@ const SvXMLTokenMap& SdXMLImport::GetMasterPageAttrTokenMap() const SvXMLTokenMap& SdXMLImport::GetPageMasterAttrTokenMap() { if(!mpPageMasterAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aPageMasterAttrTokenMap[] = +{ + { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_PAGEMASTER_NAME }, + XML_TOKEN_MAP_END +}; + mpPageMasterAttrTokenMap = new SvXMLTokenMap(aPageMasterAttrTokenMap); + } // if(!mpPageMasterAttrTokenMap) + return *mpPageMasterAttrTokenMap; } @@ -655,7 +637,22 @@ const SvXMLTokenMap& SdXMLImport::GetPageMasterAttrTokenMap() const SvXMLTokenMap& SdXMLImport::GetPageMasterStyleAttrTokenMap() { if(!mpPageMasterStyleAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aPageMasterStyleAttrTokenMap[] = +{ + { XML_NAMESPACE_FO, XML_MARGIN_TOP, XML_TOK_PAGEMASTERSTYLE_MARGIN_TOP }, + { XML_NAMESPACE_FO, XML_MARGIN_BOTTOM, XML_TOK_PAGEMASTERSTYLE_MARGIN_BOTTOM }, + { XML_NAMESPACE_FO, XML_MARGIN_LEFT, XML_TOK_PAGEMASTERSTYLE_MARGIN_LEFT }, + { XML_NAMESPACE_FO, XML_MARGIN_RIGHT, XML_TOK_PAGEMASTERSTYLE_MARGIN_RIGHT }, + { XML_NAMESPACE_FO, XML_PAGE_WIDTH, XML_TOK_PAGEMASTERSTYLE_PAGE_WIDTH }, + { XML_NAMESPACE_FO, XML_PAGE_HEIGHT, XML_TOK_PAGEMASTERSTYLE_PAGE_HEIGHT }, + { XML_NAMESPACE_STYLE, XML_PRINT_ORIENTATION, XML_TOK_PAGEMASTERSTYLE_PAGE_ORIENTATION }, + XML_TOKEN_MAP_END +}; + mpPageMasterStyleAttrTokenMap = new SvXMLTokenMap(aPageMasterStyleAttrTokenMap); + } // if(!mpPageMasterStyleAttrTokenMap) + return *mpPageMasterStyleAttrTokenMap; } @@ -664,7 +661,26 @@ const SvXMLTokenMap& SdXMLImport::GetPageMasterStyleAttrTokenMap() const SvXMLTokenMap& SdXMLImport::GetDrawPageAttrTokenMap() { if(!mpDrawPageAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aDrawPageAttrTokenMap[] = +{ + { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_DRAWPAGE_NAME }, + { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_DRAWPAGE_STYLE_NAME }, + { XML_NAMESPACE_DRAW, XML_MASTER_PAGE_NAME, XML_TOK_DRAWPAGE_MASTER_PAGE_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_PRESENTATION_PAGE_LAYOUT_NAME, XML_TOK_DRAWPAGE_PAGE_LAYOUT_NAME }, + { XML_NAMESPACE_DRAW, XML_ID, XML_TOK_DRAWPAGE_ID }, + { XML_NAMESPACE_XML, XML_ID, XML_TOK_DRAWPAGE_ID }, + { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_DRAWPAGE_HREF }, + { XML_NAMESPACE_PRESENTATION, XML_USE_HEADER_NAME, XML_TOK_DRAWPAGE_USE_HEADER_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_USE_FOOTER_NAME, XML_TOK_DRAWPAGE_USE_FOOTER_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_USE_DATE_TIME_NAME, XML_TOK_DRAWPAGE_USE_DATE_TIME_NAME }, + + XML_TOKEN_MAP_END +}; + mpDrawPageAttrTokenMap = new SvXMLTokenMap(aDrawPageAttrTokenMap); + } // if(!mpDrawPageAttrTokenMap) + return *mpDrawPageAttrTokenMap; } @@ -673,7 +689,18 @@ const SvXMLTokenMap& SdXMLImport::GetDrawPageAttrTokenMap() const SvXMLTokenMap& SdXMLImport::GetDrawPageElemTokenMap() { if(!mpDrawPageElemTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aDrawPageElemTokenMap[] = +{ + { XML_NAMESPACE_PRESENTATION, XML_NOTES, XML_TOK_DRAWPAGE_NOTES }, + { XML_NAMESPACE_ANIMATION, XML_PAR, XML_TOK_DRAWPAGE_PAR }, + { XML_NAMESPACE_ANIMATION, XML_SEQ, XML_TOK_DRAWPAGE_SEQ }, + XML_TOKEN_MAP_END +}; + mpDrawPageElemTokenMap = new SvXMLTokenMap(aDrawPageElemTokenMap); + } // if(!mpDrawPageElemTokenMap) + return *mpDrawPageElemTokenMap; } @@ -682,7 +709,20 @@ const SvXMLTokenMap& SdXMLImport::GetDrawPageElemTokenMap() const SvXMLTokenMap& SdXMLImport::GetPresentationPlaceholderAttrTokenMap() { if(!mpPresentationPlaceholderAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aPresentationPlaceholderAttrTokenMap[] = +{ + { XML_NAMESPACE_PRESENTATION, XML_OBJECT, XML_TOK_PRESENTATIONPLACEHOLDER_OBJECTNAME }, + { XML_NAMESPACE_SVG, XML_X, XML_TOK_PRESENTATIONPLACEHOLDER_X }, + { XML_NAMESPACE_SVG, XML_Y, XML_TOK_PRESENTATIONPLACEHOLDER_Y }, + { XML_NAMESPACE_SVG, XML_WIDTH, XML_TOK_PRESENTATIONPLACEHOLDER_WIDTH }, + { XML_NAMESPACE_SVG, XML_HEIGHT, XML_TOK_PRESENTATIONPLACEHOLDER_HEIGHT }, + XML_TOKEN_MAP_END +}; + mpPresentationPlaceholderAttrTokenMap = new SvXMLTokenMap(aPresentationPlaceholderAttrTokenMap); + } // if(!mpPresentationPlaceholderAttrTokenMap) + return *mpPresentationPlaceholderAttrTokenMap; } diff --git a/xmloff/source/draw/shapeimport.cxx b/xmloff/source/draw/shapeimport.cxx index b4e3787a77..e30a96065b 100644 --- a/xmloff/source/draw/shapeimport.cxx +++ b/xmloff/source/draw/shapeimport.cxx @@ -273,7 +273,13 @@ XMLShapeImportHelper::~XMLShapeImportHelper() ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry aGroupShapeElemTokenMap[] = + + +const SvXMLTokenMap& XMLShapeImportHelper::GetGroupShapeElemTokenMap() +{ + if(!mpGroupShapeElemTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aGroupShapeElemTokenMap[] = { { XML_NAMESPACE_DRAW, XML_G, XML_TOK_GROUP_GROUP }, { XML_NAMESPACE_DRAW, XML_RECT, XML_TOK_GROUP_RECT }, @@ -303,7 +309,17 @@ static __FAR_DATA SvXMLTokenMapEntry aGroupShapeElemTokenMap[] = XML_TOKEN_MAP_END }; -static __FAR_DATA SvXMLTokenMapEntry aFrameShapeElemTokenMap[] = + mpGroupShapeElemTokenMap = new SvXMLTokenMap(aGroupShapeElemTokenMap); + } // if(!mpGroupShapeElemTokenMap) + + return *mpGroupShapeElemTokenMap; +} + +const SvXMLTokenMap& XMLShapeImportHelper::GetFrameShapeElemTokenMap() +{ + if(!mpFrameShapeElemTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aFrameShapeElemTokenMap[] = { { XML_NAMESPACE_DRAW, XML_TEXT_BOX, XML_TOK_FRAME_TEXT_BOX }, { XML_NAMESPACE_DRAW, XML_IMAGE, XML_TOK_FRAME_IMAGE }, @@ -316,23 +332,20 @@ static __FAR_DATA SvXMLTokenMapEntry aFrameShapeElemTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetGroupShapeElemTokenMap() -{ - if(!mpGroupShapeElemTokenMap) - mpGroupShapeElemTokenMap = new SvXMLTokenMap(aGroupShapeElemTokenMap); - return *mpGroupShapeElemTokenMap; -} - -const SvXMLTokenMap& XMLShapeImportHelper::GetFrameShapeElemTokenMap() -{ - if(!mpFrameShapeElemTokenMap) mpFrameShapeElemTokenMap = new SvXMLTokenMap(aFrameShapeElemTokenMap); + } // if(!mpFrameShapeElemTokenMap) + return *mpFrameShapeElemTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry a3DSceneShapeElemTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::Get3DSceneShapeElemTokenMap() +{ + if(!mp3DSceneShapeElemTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry a3DSceneShapeElemTokenMap[] = { { XML_NAMESPACE_DR3D, XML_SCENE, XML_TOK_3DSCENE_3DSCENE }, { XML_NAMESPACE_DR3D, XML_CUBE, XML_TOK_3DSCENE_3DCUBE }, @@ -342,16 +355,20 @@ static __FAR_DATA SvXMLTokenMapEntry a3DSceneShapeElemTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::Get3DSceneShapeElemTokenMap() -{ - if(!mp3DSceneShapeElemTokenMap) mp3DSceneShapeElemTokenMap = new SvXMLTokenMap(a3DSceneShapeElemTokenMap); + } // if(!mp3DSceneShapeElemTokenMap) + return *mp3DSceneShapeElemTokenMap; } ////////////////////////////////////////////////////////////////////////////// /* -static __FAR_DATA SvXMLTokenMapEntry aShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetShapeAttrTokenMap() +{ + if(!mpShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aShapeAttrTokenMap[] = { { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_SHAPE_NAME }, { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_SHAPE_DRAWSTYLE_NAME_GRAPHICS }, @@ -363,80 +380,100 @@ static __FAR_DATA SvXMLTokenMapEntry aShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetShapeAttrTokenMap() -{ - if(!mpShapeAttrTokenMap) mpShapeAttrTokenMap = new SvXMLTokenMap(aShapeAttrTokenMap); + } + return *mpShapeAttrTokenMap; } */ ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry a3DObjectAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::Get3DObjectAttrTokenMap() +{ + if(!mp3DObjectAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry a3DObjectAttrTokenMap[] = { { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_3DOBJECT_DRAWSTYLE_NAME }, { XML_NAMESPACE_DR3D, XML_TRANSFORM, XML_TOK_3DOBJECT_TRANSFORM }, XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::Get3DObjectAttrTokenMap() -{ - if(!mp3DObjectAttrTokenMap) mp3DObjectAttrTokenMap = new SvXMLTokenMap(a3DObjectAttrTokenMap); + } // if(!mp3DObjectAttrTokenMap) + return *mp3DObjectAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry a3DPolygonBasedAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::Get3DPolygonBasedAttrTokenMap() +{ + if(!mp3DPolygonBasedAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry a3DPolygonBasedAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_VIEWBOX, XML_TOK_3DPOLYGONBASED_VIEWBOX }, { XML_NAMESPACE_SVG, XML_D, XML_TOK_3DPOLYGONBASED_D }, XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::Get3DPolygonBasedAttrTokenMap() -{ - if(!mp3DPolygonBasedAttrTokenMap) mp3DPolygonBasedAttrTokenMap = new SvXMLTokenMap(a3DPolygonBasedAttrTokenMap); + } // if(!mp3DPolygonBasedAttrTokenMap) + return *mp3DPolygonBasedAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry a3DCubeObjectAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::Get3DCubeObjectAttrTokenMap() +{ + if(!mp3DCubeObjectAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry a3DCubeObjectAttrTokenMap[] = { { XML_NAMESPACE_DR3D, XML_MIN_EDGE, XML_TOK_3DCUBEOBJ_MINEDGE }, { XML_NAMESPACE_DR3D, XML_MAX_EDGE, XML_TOK_3DCUBEOBJ_MAXEDGE }, XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::Get3DCubeObjectAttrTokenMap() -{ - if(!mp3DCubeObjectAttrTokenMap) mp3DCubeObjectAttrTokenMap = new SvXMLTokenMap(a3DCubeObjectAttrTokenMap); + } // if(!mp3DCubeObjectAttrTokenMap) + return *mp3DCubeObjectAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry a3DSphereObjectAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::Get3DSphereObjectAttrTokenMap() +{ + if(!mp3DSphereObjectAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry a3DSphereObjectAttrTokenMap[] = { { XML_NAMESPACE_DR3D, XML_CENTER, XML_TOK_3DSPHEREOBJ_CENTER }, { XML_NAMESPACE_DR3D, XML_SIZE, XML_TOK_3DSPHEREOBJ_SIZE }, XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::Get3DSphereObjectAttrTokenMap() -{ - if(!mp3DSphereObjectAttrTokenMap) mp3DSphereObjectAttrTokenMap = new SvXMLTokenMap(a3DSphereObjectAttrTokenMap); + } // if(!mp3DSphereObjectAttrTokenMap) + return *mp3DSphereObjectAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// /* -static __FAR_DATA SvXMLTokenMapEntry aRectShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetRectShapeAttrTokenMap() +{ + if(!mpRectShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aRectShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_X, XML_TOK_RECTSHAPE_X }, { XML_NAMESPACE_SVG, XML_Y, XML_TOK_RECTSHAPE_Y }, @@ -446,16 +483,20 @@ static __FAR_DATA SvXMLTokenMapEntry aRectShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetRectShapeAttrTokenMap() -{ - if(!mpRectShapeAttrTokenMap) mpRectShapeAttrTokenMap = new SvXMLTokenMap(aRectShapeAttrTokenMap); + } + return *mpRectShapeAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry aLineShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetLineShapeAttrTokenMap() +{ + if(!mpLineShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aLineShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_X1, XML_TOK_LINESHAPE_X1 }, { XML_NAMESPACE_SVG, XML_Y1, XML_TOK_LINESHAPE_Y1 }, @@ -464,16 +505,20 @@ static __FAR_DATA SvXMLTokenMapEntry aLineShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetLineShapeAttrTokenMap() -{ - if(!mpLineShapeAttrTokenMap) mpLineShapeAttrTokenMap = new SvXMLTokenMap(aLineShapeAttrTokenMap); + } + return *mpLineShapeAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry aEllipseShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetEllipseShapeAttrTokenMap() +{ + if(!mpEllipseShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aEllipseShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_RX, XML_TOK_ELLIPSESHAPE_RX }, { XML_NAMESPACE_SVG, XML_RY, XML_TOK_ELLIPSESHAPE_RY }, @@ -483,48 +528,60 @@ static __FAR_DATA SvXMLTokenMapEntry aEllipseShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetEllipseShapeAttrTokenMap() -{ - if(!mpEllipseShapeAttrTokenMap) mpEllipseShapeAttrTokenMap = new SvXMLTokenMap(aEllipseShapeAttrTokenMap); + } + return *mpEllipseShapeAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// */ -static __FAR_DATA SvXMLTokenMapEntry aPolygonShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetPolygonShapeAttrTokenMap() +{ + if(!mpPolygonShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aPolygonShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_VIEWBOX, XML_TOK_POLYGONSHAPE_VIEWBOX }, { XML_NAMESPACE_DRAW, XML_POINTS, XML_TOK_POLYGONSHAPE_POINTS }, XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetPolygonShapeAttrTokenMap() -{ - if(!mpPolygonShapeAttrTokenMap) mpPolygonShapeAttrTokenMap = new SvXMLTokenMap(aPolygonShapeAttrTokenMap); + } // if(!mpPolygonShapeAttrTokenMap) + return *mpPolygonShapeAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry aPathShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetPathShapeAttrTokenMap() +{ + if(!mpPathShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aPathShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_VIEWBOX, XML_TOK_PATHSHAPE_VIEWBOX }, { XML_NAMESPACE_SVG, XML_D, XML_TOK_PATHSHAPE_D }, XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetPathShapeAttrTokenMap() -{ - if(!mpPathShapeAttrTokenMap) mpPathShapeAttrTokenMap = new SvXMLTokenMap(aPathShapeAttrTokenMap); + } // if(!mpPathShapeAttrTokenMap) + return *mpPathShapeAttrTokenMap; } /* ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry aTextBoxShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetTextBoxShapeAttrTokenMap() +{ + if(!mpTextBoxShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aTextBoxShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_X, XML_TOK_TEXTBOXSHAPE_X }, { XML_NAMESPACE_SVG, XML_Y, XML_TOK_TEXTBOXSHAPE_Y }, @@ -533,16 +590,20 @@ static __FAR_DATA SvXMLTokenMapEntry aTextBoxShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetTextBoxShapeAttrTokenMap() -{ - if(!mpTextBoxShapeAttrTokenMap) mpTextBoxShapeAttrTokenMap = new SvXMLTokenMap(aTextBoxShapeAttrTokenMap); + } + return *mpTextBoxShapeAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry aControlShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetControlShapeAttrTokenMap() +{ + if(!mpControlShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aControlShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_X, XML_TOK_CONTROLSHAPE_X }, { XML_NAMESPACE_SVG, XML_Y, XML_TOK_CONTROLSHAPE_Y }, @@ -551,16 +612,20 @@ static __FAR_DATA SvXMLTokenMapEntry aControlShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetControlShapeAttrTokenMap() -{ - if(!mpControlShapeAttrTokenMap) mpControlShapeAttrTokenMap = new SvXMLTokenMap(aControlShapeAttrTokenMap); + } + return *mpControlShapeAttrTokenMap; } */ ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry a3DSceneShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::Get3DSceneShapeAttrTokenMap() +{ + if(!mp3DSceneShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry a3DSceneShapeAttrTokenMap[] = { { XML_NAMESPACE_DR3D, XML_TRANSFORM, XML_TOK_3DSCENESHAPE_TRANSFORM }, { XML_NAMESPACE_DR3D, XML_VRP, XML_TOK_3DSCENESHAPE_VRP }, @@ -576,16 +641,20 @@ static __FAR_DATA SvXMLTokenMapEntry a3DSceneShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::Get3DSceneShapeAttrTokenMap() -{ - if(!mp3DSceneShapeAttrTokenMap) mp3DSceneShapeAttrTokenMap = new SvXMLTokenMap(a3DSceneShapeAttrTokenMap); + } // if(!mp3DSceneShapeAttrTokenMap) + return *mp3DSceneShapeAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry a3DLightAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::Get3DLightAttrTokenMap() +{ + if(!mp3DLightAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry a3DLightAttrTokenMap[] = { { XML_NAMESPACE_DR3D, XML_DIFFUSE_COLOR, XML_TOK_3DLIGHT_DIFFUSE_COLOR }, { XML_NAMESPACE_DR3D, XML_DIRECTION, XML_TOK_3DLIGHT_DIRECTION }, @@ -594,16 +663,20 @@ static __FAR_DATA SvXMLTokenMapEntry a3DLightAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::Get3DLightAttrTokenMap() -{ - if(!mp3DLightAttrTokenMap) mp3DLightAttrTokenMap = new SvXMLTokenMap(a3DLightAttrTokenMap); + } // if(!mp3DLightAttrTokenMap) + return *mp3DLightAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// /* -static __FAR_DATA SvXMLTokenMapEntry aPageShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetPageShapeAttrTokenMap() +{ + if(!mpPageShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aPageShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_X, XML_TOK_PAGESHAPE_X }, { XML_NAMESPACE_SVG, XML_Y, XML_TOK_PAGESHAPE_Y }, @@ -612,16 +685,20 @@ static __FAR_DATA SvXMLTokenMapEntry aPageShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetPageShapeAttrTokenMap() -{ - if(!mpPageShapeAttrTokenMap) mpPageShapeAttrTokenMap = new SvXMLTokenMap(aPageShapeAttrTokenMap); + } + return *mpPageShapeAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry aGraphicObjectShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetGraphicObjectShapeAttrTokenMap() +{ + if(!mpGraphicObjectShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aGraphicObjectShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_X, XML_TOK_GOSHAPE_X }, { XML_NAMESPACE_SVG, XML_Y, XML_TOK_GOSHAPE_Y }, @@ -631,10 +708,9 @@ static __FAR_DATA SvXMLTokenMapEntry aGraphicObjectShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetGraphicObjectShapeAttrTokenMap() -{ - if(!mpGraphicObjectShapeAttrTokenMap) mpGraphicObjectShapeAttrTokenMap = new SvXMLTokenMap(aGraphicObjectShapeAttrTokenMap); + } + return *mpGraphicObjectShapeAttrTokenMap; } */ diff --git a/xmloff/source/draw/xexptran.cxx b/xmloff/source/draw/xexptran.cxx index aaa98311d6..67fb651b5b 100644 --- a/xmloff/source/draw/xexptran.cxx +++ b/xmloff/source/draw/xexptran.cxx @@ -324,7 +324,8 @@ struct ImpSdXMLExpTransObj2DMatrix : public ImpSdXMLExpTransObj2DBase void SdXMLImExTransform2D::EmptyList() { - for(sal_uInt32 a(0L); a < maList.size(); a++) + const sal_uInt32 nCount = maList.size(); + for(sal_uInt32 a(0L); a < nCount; a++) { ImpSdXMLExpTransObj2DBase* pObj = maList[a]; @@ -418,7 +419,8 @@ const OUString& SdXMLImExTransform2D::GetExportString(const SvXMLUnitConverter& OUString aClosingBrace(sal_Unicode(')')); OUString aEmptySpace(sal_Unicode(' ')); - for(sal_uInt32 a(0UL); a < maList.size(); a++) + const sal_uInt32 nCount = maList.size(); + for(sal_uInt32 a(0L); a < nCount; a++) { ImpSdXMLExpTransObj2DBase* pObj = maList[a]; switch(pObj->mnType) @@ -658,7 +660,8 @@ void SdXMLImExTransform2D::GetFullTransform(::basegfx::B2DHomMatrix& rFullTrans) { rFullTrans.identity(); - for(sal_uInt32 a(0L); a < maList.size(); a++) + const sal_uInt32 nCount = maList.size(); + for(sal_uInt32 a(0L); a < nCount; a++) { ImpSdXMLExpTransObj2DBase* pObj = maList[a]; switch(pObj->mnType) @@ -777,7 +780,8 @@ struct ImpSdXMLExpTransObj3DMatrix : public ImpSdXMLExpTransObj3DBase void SdXMLImExTransform3D::EmptyList() { - for(sal_uInt32 a(0L); a< maList.size(); a++) + const sal_uInt32 nCount = maList.size(); + for(sal_uInt32 a(0L); a < nCount; a++) { ImpSdXMLExpTransObj3DBase* pObj = maList[a]; @@ -891,7 +895,8 @@ const OUString& SdXMLImExTransform3D::GetExportString(const SvXMLUnitConverter& OUString aClosingBrace(sal_Unicode(')')); OUString aEmptySpace(sal_Unicode(' ')); - for(sal_uInt32 a(0UL); a < maList.size(); a++) + const sal_uInt32 nCount = maList.size(); + for(sal_uInt32 a(0L); a < nCount; a++) { ImpSdXMLExpTransObj3DBase* pObj = maList[a]; switch(pObj->mnType) @@ -1225,7 +1230,8 @@ void SdXMLImExTransform3D::GetFullTransform(::basegfx::B3DHomMatrix& rFullTrans) { rFullTrans.identity(); - for(sal_uInt32 a(0L); a < maList.size(); a++) + const sal_uInt32 nCount = maList.size(); + for(sal_uInt32 a(0L); a < nCount; a++) { ImpSdXMLExpTransObj3DBase* pObj = maList[a]; switch(pObj->mnType) diff --git a/xmloff/source/draw/ximpcustomshape.cxx b/xmloff/source/draw/ximpcustomshape.cxx index 0a91d6c493..d491b1bab6 100644 --- a/xmloff/source/draw/ximpcustomshape.cxx +++ b/xmloff/source/draw/ximpcustomshape.cxx @@ -454,7 +454,7 @@ void GetDoubleSequence( std::vector< com::sun::star::beans::PropertyValue >& rDe } while ( nIndex >= 0 ); - if ( vDirection.size() ) + if ( !vDirection.empty() ) { uno::Sequence< double > aDirectionsSeq( vDirection.size() ); std::vector< double >::const_iterator aIter = vDirection.begin(); @@ -512,7 +512,7 @@ sal_Int32 GetEnhancedParameterPairSequence( std::vector< com::sun::star::beans:: { vParameter.push_back( aParameter ); } - if ( vParameter.size() ) + if ( !vParameter.empty() ) { uno::Sequence< com::sun::star::drawing::EnhancedCustomShapeParameterPair > aParameterSeq( vParameter.size() ); std::vector< com::sun::star::drawing::EnhancedCustomShapeParameterPair >::const_iterator aIter = vParameter.begin(); @@ -545,7 +545,7 @@ void GetEnhancedRectangleSequence( std::vector< com::sun::star::beans::PropertyV { vTextFrame.push_back( aParameter ); } - if ( vTextFrame.size() ) + if ( !vTextFrame.empty() ) { uno::Sequence< com::sun::star::drawing::EnhancedCustomShapeTextFrame > aTextFrameSeq( vTextFrame.size() ); std::vector< com::sun::star::drawing::EnhancedCustomShapeTextFrame >::const_iterator aIter = vTextFrame.begin(); @@ -739,7 +739,7 @@ void GetEnhancedPath( std::vector< com::sun::star::beans::PropertyValue >& rDest { // check if the last command is identical, // if so, we just need to increment the count - if ( vSegments.size() && ( vSegments[ vSegments.size() - 1 ].Command == nLatestSegmentCommand ) ) + if ( !vSegments.empty() && ( vSegments[ vSegments.size() - 1 ].Command == nLatestSegmentCommand ) ) vSegments[ vSegments.size() -1 ].Count++; else { @@ -1075,7 +1075,7 @@ void SdXMLCustomShapePropertyMerge( std::vector< com::sun::star::beans::Property const std::vector< beans::PropertyValues >& rElement, const rtl::OUString& rElementName ) { - if ( rElement.size() ) + if ( !rElement.empty() ) { uno::Sequence< beans::PropertyValues > aPropSeq( rElement.size() ); std::vector< beans::PropertyValues >::const_iterator aIter = rElement.begin(); @@ -1096,7 +1096,7 @@ void SdXMLCustomShapePropertyMerge( std::vector< com::sun::star::beans::Property const std::vector< rtl::OUString >& rElement, const rtl::OUString& rElementName ) { - if ( rElement.size() ) + if ( !rElement.empty() ) { uno::Sequence< rtl::OUString > aPropSeq( rElement.size() ); std::vector< rtl::OUString >::const_iterator aIter = rElement.begin(); @@ -1117,7 +1117,7 @@ void SdXMLCustomShapePropertyMerge( std::vector< com::sun::star::beans::Property const std::vector< com::sun::star::beans::PropertyValue >& rElement, const rtl::OUString& rElementName ) { - if ( rElement.size() ) + if ( !rElement.empty() ) { uno::Sequence< beans::PropertyValue > aPropSeq( rElement.size() ); std::vector< beans::PropertyValue >::const_iterator aIter = rElement.begin(); @@ -1157,7 +1157,7 @@ void CheckAndResolveEquationParameter( com::sun::star::drawing::EnhancedCustomSh void XMLEnhancedCustomShapeContext::EndElement() { // resolve properties that are indexing a Equation - if ( maEquations.size() ) + if ( !maEquations.empty() ) { // creating hash map containing the name and index of each equation EquationHashMap* pH = new EquationHashMap; @@ -1283,7 +1283,7 @@ void XMLEnhancedCustomShapeContext::EndElement() SdXMLCustomShapePropertyMerge( mrCustomShapeGeometry, maPath, EASGet( EAS_Path ) ); SdXMLCustomShapePropertyMerge( mrCustomShapeGeometry, maTextPath, EASGet( EAS_TextPath ) ); SdXMLCustomShapePropertyMerge( mrCustomShapeGeometry, maEquations, EASGet( EAS_Equations ) ); - if ( maHandles.size() ) + if ( !maHandles.empty() ) SdXMLCustomShapePropertyMerge( mrCustomShapeGeometry, maHandles, EASGet( EAS_Handles ) ); } @@ -1326,7 +1326,8 @@ SvXMLImportContext* XMLEnhancedCustomShapeContext::CreateChildContext( USHORT nP else if ( aTokenEnum == EAS_handle ) { std::vector< com::sun::star::beans::PropertyValue > aHandle; - for( sal_Int16 nAttr = 0; nAttr < xAttrList->getLength(); nAttr++ ) + const sal_Int16 nLength = xAttrList->getLength(); + for( sal_Int16 nAttr = 0; nAttr < nLength; nAttr++ ) { rtl::OUString aLocalName; const rtl::OUString& rValue = xAttrList->getValueByIndex( nAttr ); diff --git a/xmloff/source/draw/ximpshap.cxx b/xmloff/source/draw/ximpshap.cxx index 86625bdb5c..f826488864 100644 --- a/xmloff/source/draw/ximpshap.cxx +++ b/xmloff/source/draw/ximpshap.cxx @@ -3444,7 +3444,7 @@ void SdXMLCustomShapeContext::StartElement( const uno::Reference< xml::sax::XAtt void SdXMLCustomShapeContext::EndElement() { - if ( maCustomShapeGeometry.size() ) + if ( !maCustomShapeGeometry.empty() ) { const rtl::OUString sCustomShapeGeometry ( RTL_CONSTASCII_USTRINGPARAM( "CustomShapeGeometry" ) ); diff --git a/xmloff/source/forms/callbacks.hxx b/xmloff/source/forms/callbacks.hxx index d980c3356a..5fa8b853c0 100644 --- a/xmloff/source/forms/callbacks.hxx +++ b/xmloff/source/forms/callbacks.hxx @@ -67,92 +67,6 @@ namespace xmloff const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxObject ) = 0; }; - //===================================================================== - //= IControlIdMap - //===================================================================== - class IControlIdMap - { - public: - /** register a control id - */ - virtual void registerControlId( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControl, - const ::rtl::OUString& _rId) = 0; - - /** register references to a control. - -

In the XML representation, the control which is refered by others stores the ids of these other - controls, but in "real life" :) the referring controls store the referred one as property.

- -

This method allows a referred control to announce to ids of the referring ones.

- - @param _rxControl - the referred control - @param _rReferringControls - a (comma separated) list of control ids of referring controls - */ - virtual void registerControlReferences( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControl, - const ::rtl::OUString& _rReferringControls) = 0; - }; - - //===================================================================== - //= IFormsImportContext - //===================================================================== - class IFormsImportContext - { - public: - virtual IControlIdMap& getControlIdMap() = 0; - virtual OAttribute2Property& getAttributeMap() = 0; - virtual ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > - getServiceFactory() = 0; - virtual SvXMLImport& getGlobalContext() = 0; - - virtual const SvXMLStyleContext* getStyleElement(const ::rtl::OUString& _rStyleName) const = 0; - - virtual void enterEventContext() = 0; - virtual void leaveEventContext() = 0; - - /** applies the given number style to the given object - */ - virtual void applyControlNumberStyle( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rControlNumerStyleName - ) = 0; - - /** registers a control model for later binding to a spreadsheet cell value - */ - virtual void registerCellValueBinding( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rCellAddress - ) = 0; - - /** registers a list-like control model for later binding to a spreadsheet cell range as list source - */ - virtual void registerCellRangeListSource( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rCellRangeAddress - ) = 0; - - /** registers a control model for later binding to an XForms binding */ - virtual void registerXFormsValueBinding( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rBindingID - ) = 0; - - /** registers a control model for later binding an XForms list binding */ - virtual void registerXFormsListBinding( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rBindingID - ) = 0; - - /** registers a control model for later binding to an XForms submission */ - virtual void registerXFormsSubmission( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rBindingID - ) = 0; - }; - //===================================================================== //= IEventAttacherManager //===================================================================== diff --git a/xmloff/source/forms/elementexport.cxx b/xmloff/source/forms/elementexport.cxx index 546bd6802a..d695be34cc 100644 --- a/xmloff/source/forms/elementexport.cxx +++ b/xmloff/source/forms/elementexport.cxx @@ -1292,14 +1292,14 @@ namespace xmloff // one or both of the selected flags. // 21.05.2001 - 85388 - frank.schoenheit@germany.sun.com - if (aSelection.size() || aDefaultSelection.size()) + if ( !aSelection.empty() || !aDefaultSelection.empty() ) { sal_Int16 nLastSelected = -1; - if (aSelection.size()) + if ( !aSelection.empty() ) nLastSelected = *(--aSelection.end()); sal_Int16 nLastDefaultSelected = -1; - if (aDefaultSelection.size()) + if ( !aDefaultSelection.empty() ) nLastDefaultSelected = *(--aDefaultSelection.end()); // the maximum element in both sets diff --git a/xmloff/source/forms/elementimport.cxx b/xmloff/source/forms/elementimport.cxx index 524f0b5f84..a3dbcaabc9 100644 --- a/xmloff/source/forms/elementimport.cxx +++ b/xmloff/source/forms/elementimport.cxx @@ -59,6 +59,7 @@ /** === end UNO includes === **/ #include #include +#include #include #include @@ -136,7 +137,7 @@ namespace xmloff //--------------------------------------------------------------------- OControlElement::ElementType OElementNameMap::getElementType(const ::rtl::OUString& _rName) { - if (0 == s_sElementTranslations.size()) + if ( s_sElementTranslations.empty() ) { // initialize for (ElementType eType=(ElementType)0; eType& _rxParentContainer) :OPropertyImport(_rImport, _nPrefix, _rName) ,m_rFormImport(_rImport) @@ -178,6 +179,8 @@ namespace xmloff // create the element m_xElement = createElement(); + if ( !m_xInfo.is() && m_xElement.is() ) + m_xInfo = m_xElement->getPropertySetInfo(); } //--------------------------------------------------------------------- @@ -201,15 +204,15 @@ namespace xmloff #if OSL_DEBUG_LEVEL > 0 // check if the object has all the properties // (We do this in the non-pro version only. Doing it all the time would be much to expensive) - Reference< XPropertySetInfo > xPropInfo = m_xElement->getPropertySetInfo(); - if (xPropInfo.is()) + if ( m_xInfo.is() ) { + PropertyValueArray::iterator aEnd = m_aValues.end(); for ( PropertyValueArray::iterator aCheck = m_aValues.begin(); - aCheck != m_aValues.end(); + aCheck != aEnd; ++aCheck ) { - OSL_ENSURE(xPropInfo->hasPropertyByName(aCheck->Name), + OSL_ENSURE(m_xInfo->hasPropertyByName(aCheck->Name), ::rtl::OString("OElementImport::EndElement: read a property (") += ::rtl::OString(aCheck->Name.getStr(), aCheck->Name.getLength(), RTL_TEXTENCODING_ASCII_US) += ::rtl::OString(") which does not exist on the element!")); @@ -219,7 +222,7 @@ namespace xmloff OSL_ENSURE(!m_aValues.empty(), "OElementImport::EndElement: no properties read!"); // set the properties - Reference< XMultiPropertySet > xMultiProps(m_xElement, UNO_QUERY); + const Reference< XMultiPropertySet > xMultiProps(m_xElement, UNO_QUERY); sal_Bool bSuccess = sal_False; if (xMultiProps.is()) { @@ -236,8 +239,9 @@ namespace xmloff Any* pValues = aValues.getArray(); // copy + PropertyValueArray::iterator aEnd = m_aValues.end(); for ( PropertyValueArray::iterator aPropValues = m_aValues.begin(); - aPropValues != m_aValues.end(); + aPropValues != aEnd; ++aPropValues, ++pNames, ++pValues ) { @@ -258,8 +262,9 @@ namespace xmloff if (!bSuccess) { // no XMultiPropertySet or setting all properties at once failed + PropertyValueArray::iterator aEnd = m_aValues.end(); for ( PropertyValueArray::iterator aPropValues = m_aValues.begin(); - aPropValues != m_aValues.end(); + aPropValues != aEnd; ++aPropValues ) { @@ -289,7 +294,7 @@ namespace xmloff new OGridColumnPropertyTranslator( Reference< XMultiPropertySet >( m_xElement, UNO_QUERY ) ); const_cast< XMLTextStyleContext* >( m_pStyleElement )->FillPropertySet( xPropTranslation ); - ::rtl::OUString sNumberStyleName = const_cast< XMLTextStyleContext* >( m_pStyleElement )->GetDataStyleName( ); + const ::rtl::OUString sNumberStyleName = const_cast< XMLTextStyleContext* >( m_pStyleElement )->GetDataStyleName( ); if ( sNumberStyleName.getLength() ) // the style also has a number (sub) style m_rContext.applyControlNumberStyle( m_xElement, sNumberStyleName ); @@ -312,12 +317,12 @@ namespace xmloff if ( m_aGenericValues.empty() ) return; - Reference< XPropertySetInfo > xPropSetInfo = m_xElement->getPropertySetInfo(); Reference< XPropertyContainer > xDynamicProperties( m_xElement, UNO_QUERY ); + PropertyValueArray::iterator aEnd = m_aGenericValues.end(); for ( PropertyValueArray::iterator aPropValues = m_aGenericValues.begin(); - aPropValues != m_aGenericValues.end(); + aPropValues != aEnd; ++aPropValues ) { @@ -326,7 +331,7 @@ namespace xmloff try { // if such a property does not yet exist at the element, create it if necessary - bool bExistentProperty = xPropSetInfo->hasPropertyByName( aPropValues->Name ); + const bool bExistentProperty = m_xInfo->hasPropertyByName( aPropValues->Name ); if ( !bExistentProperty ) { if ( !xDynamicProperties.is() ) @@ -347,12 +352,12 @@ namespace xmloff ); // re-fetch the PropertySetInfo - xPropSetInfo = m_xElement->getPropertySetInfo(); + m_xInfo = m_xElement->getPropertySetInfo(); } // determine the type of the value (source forthe following conversion) TypeClass eValueTypeClass = aPropValues->Value.getValueTypeClass(); - sal_Bool bValueIsSequence = TypeClass_SEQUENCE == eValueTypeClass; + const sal_Bool bValueIsSequence = TypeClass_SEQUENCE == eValueTypeClass; if ( bValueIsSequence ) { uno::Type aSimpleType( getSequenceElementType( aPropValues->Value.getValueType() ) ); @@ -360,9 +365,9 @@ namespace xmloff } // determine the type of the property (target forthe following conversion) - Property aProperty( xPropSetInfo->getPropertyByName( aPropValues->Name ) ); + const Property aProperty( m_xInfo->getPropertyByName( aPropValues->Name ) ); TypeClass ePropTypeClass = aProperty.Type.getTypeClass(); - sal_Bool bPropIsSequence = TypeClass_SEQUENCE == ePropTypeClass; + const sal_Bool bPropIsSequence = TypeClass_SEQUENCE == ePropTypeClass; if( bPropIsSequence ) { uno::Type aSimpleType( ::comphelper::getSequenceElementType( aProperty.Type ) ); @@ -484,15 +489,12 @@ namespace xmloff //--------------------------------------------------------------------- void OElementImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue) { - static const ::rtl::OUString s_sServiceNameAttribute = ::rtl::OUString::createFromAscii(OAttributeMetaData::getCommonControlAttributeName(CCA_SERVICE_NAME)); - static const ::rtl::OUString s_sNameAttribute = ::rtl::OUString::createFromAscii(OAttributeMetaData::getCommonControlAttributeName(CCA_NAME)); - if (!m_sServiceName.getLength() && token::IsXMLToken( _rLocalName, token::XML_CONTROL_IMPLEMENTATION)) { // it's the service name ::rtl::OUString sImplName; - sal_uInt16 nImplPrefix = + const sal_uInt16 nImplPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( _rValue, &sImplName ); m_sServiceName = XML_NAMESPACE_OOO==nImplPrefix ? sImplName @@ -525,7 +527,7 @@ namespace xmloff Reference< XPropertySet > xReturn; if (m_sServiceName.getLength()) { - Reference< XInterface > xPure = m_rFormImport.getServiceFactory()->createInstance(m_sServiceName); + Reference< XInterface > xPure = m_rFormImport.getGlobalContext().getServiceFactory()->createInstance(m_sServiceName); OSL_ENSURE(xPure.is(), ::rtl::OString("OElementImport::createElement: service factory gave me no object (service name: ") += ::rtl::OString(m_sServiceName.getStr(), m_sServiceName.getLength(), RTL_TEXTENCODING_ASCII_US) @@ -548,13 +550,9 @@ namespace xmloff //--------------------------------------------------------------------- void OElementImport::simulateDefaultedAttribute(const sal_Char* _pAttributeName, const ::rtl::OUString& _rPropertyName, const sal_Char* _pAttributeDefault) { - Reference< XPropertySetInfo > xPropsInfo; - if ( m_xElement.is()) { - xPropsInfo=m_xElement->getPropertySetInfo(); - } - OSL_ENSURE( xPropsInfo.is(), "OPropertyImport::simulateDefaultedAttribute: the component should be more gossipy about it's properties!" ); + OSL_ENSURE( m_xInfo.is(), "OPropertyImport::simulateDefaultedAttribute: the component should be more gossipy about it's properties!" ); - if ( !xPropsInfo.is() || xPropsInfo->hasPropertyByName( _rPropertyName ) ) + if ( !m_xInfo.is() || m_xInfo->hasPropertyByName( _rPropertyName ) ) { ::rtl::OUString sLocalAttrName = ::rtl::OUString::createFromAscii(_pAttributeName); if ( !encounteredAttribute( sLocalAttrName ) ) @@ -566,7 +564,7 @@ namespace xmloff //= OControlImport //===================================================================== //--------------------------------------------------------------------- - OControlImport::OControlImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OControlImport::OControlImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer) :OElementImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer) ,m_eElementType(OControlElement::UNKNOWN) @@ -574,7 +572,7 @@ namespace xmloff } //--------------------------------------------------------------------- - OControlImport::OControlImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OControlImport::OControlImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :OElementImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer) ,m_eElementType(_eType) @@ -591,11 +589,14 @@ namespace xmloff //--------------------------------------------------------------------- void OControlImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue) { - if ( !m_sControlId.getLength() && _rLocalName.equalsAscii( OAttributeMetaData::getCommonControlAttributeName( CCA_CONTROL_ID ) ) ) + static const sal_Char* pControlIdAttributeName = OAttributeMetaData::getCommonControlAttributeName(CCA_CONTROL_ID); + static const sal_Char* pLinkedCellAttributeName = OAttributeMetaData::getBindingAttributeName(BA_LINKED_CELL); + + if ( !m_sControlId.getLength() && _rLocalName.equalsAscii( pControlIdAttributeName ) ) { // it's the control id m_sControlId = _rValue; } - else if ( _rLocalName.equalsAscii( OAttributeMetaData::getBindingAttributeName( BA_LINKED_CELL ) ) ) + else if ( _rLocalName.equalsAscii( pLinkedCellAttributeName ) ) { // it's the address of a spreadsheet cell m_sBoundCellAddress = _rValue; } @@ -614,14 +615,20 @@ namespace xmloff } else { + static const sal_Char* pValueAttributeName = OAttributeMetaData::getSpecialAttributeName(CCA_VALUE); + static const sal_Char* pCurrentValueAttributeName = OAttributeMetaData::getSpecialAttributeName(CCA_CURRENT_VALUE); + static const sal_Char* pMinValueAttributeName = OAttributeMetaData::getSpecialAttributeName(SCA_MIN_VALUE); + static const sal_Char* pMaxValueAttributeName = OAttributeMetaData::getSpecialAttributeName(SCA_MAX_VALUE); + static const sal_Char* pRepeatDelayAttributeName = OAttributeMetaData::getSpecialAttributeName( SCA_REPEAT_DELAY ); + sal_Int32 nHandle = -1; - if ( _rLocalName.equalsAscii( OAttributeMetaData::getCommonControlAttributeName( CCA_VALUE ) ) ) + if ( _rLocalName.equalsAscii( pValueAttributeName ) ) nHandle = PROPID_VALUE; - else if ( _rLocalName.equalsAscii( OAttributeMetaData::getCommonControlAttributeName( CCA_CURRENT_VALUE ) ) ) + else if ( _rLocalName.equalsAscii( pCurrentValueAttributeName ) ) nHandle = PROPID_CURRENT_VALUE; - else if ( _rLocalName.equalsAscii( OAttributeMetaData::getSpecialAttributeName( SCA_MIN_VALUE ) ) ) + else if ( _rLocalName.equalsAscii( pMinValueAttributeName ) ) nHandle = PROPID_MIN_VALUE; - else if ( _rLocalName.equalsAscii( OAttributeMetaData::getSpecialAttributeName( SCA_MAX_VALUE ) ) ) + else if ( _rLocalName.equalsAscii( pMaxValueAttributeName ) ) nHandle = PROPID_MAX_VALUE; if ( nHandle != -1 ) { @@ -632,7 +639,7 @@ namespace xmloff aProp.Value <<= _rValue; m_aValueProperties.push_back(aProp); } - else if ( _rLocalName.equalsAscii( OAttributeMetaData::getSpecialAttributeName( SCA_REPEAT_DELAY ) ) ) + else if ( _rLocalName.equalsAscii( pRepeatDelayAttributeName ) ) { ::Time aTime; sal_Int32 nFractions = 0; @@ -672,11 +679,10 @@ namespace xmloff // let the base class handle all the attributes OElementImport::StartElement(xAttributes); - if (m_aValueProperties.size() && m_xElement.is()) + if ( !m_aValueProperties.empty() && m_xElement.is()) { // get the property set info - Reference< XPropertySetInfo > xPropsInfo = m_xElement->getPropertySetInfo(); - if (!xPropsInfo.is()) + if (!m_xInfo.is()) { OSL_ENSURE(sal_False, "OControlImport::StartElement: no PropertySetInfo!"); return; @@ -695,8 +701,9 @@ namespace xmloff m_xElement->getPropertyValue(PROPERTY_CLASSID) >>= nClassId; // translate the value properties we collected in handleAttributes + PropertyValueArray::iterator aEnd = m_aValueProperties.end(); for ( PropertyValueArray::iterator aValueProps = m_aValueProperties.begin(); - aValueProps != m_aValueProperties.end(); + aValueProps != aEnd; ++aValueProps ) { @@ -747,7 +754,7 @@ namespace xmloff } // translate the value - implTranslateValueProperty(xPropsInfo, *aValueProps); + implTranslateValueProperty(m_xInfo, *aValueProps); // add the property to the base class' array implPushBackPropertyValue(*aValueProps); } @@ -800,7 +807,7 @@ namespace xmloff // register our control with it's id if (m_sControlId.getLength()) - m_rFormImport.getControlIdMap().registerControlId(m_xElement, m_sControlId); + m_rFormImport.registerControlId(m_xElement, m_sControlId); // it's allowed to have no control id. In this case we're importing a column // one more pre-work to do: @@ -835,8 +842,9 @@ namespace xmloff // is the "value property" part of the sequence? // look up this property in our sequence + PropertyValueArray::iterator aEnd = m_aValues.end(); for ( PropertyValueArray::iterator aCheck = m_aValues.begin(); - ( aCheck != m_aValues.end() ); + ( aCheck != aEnd ); ++aCheck ) { @@ -938,11 +946,11 @@ namespace xmloff //added by BerryJia for fixing bug102407 2002-11-5 Reference< XPropertySet > OControlImport::createElement() { - Reference xPropSet = OElementImport::createElement(); - if(xPropSet.is()) + const Reference xPropSet = OElementImport::createElement(); + if ( xPropSet.is() ) { - Reference xInfo(xPropSet->getPropertySetInfo()); - if(xInfo.is() && xInfo->hasPropertyByName(PROPERTY_ALIGN)) + m_xInfo = xPropSet->getPropertySetInfo(); + if ( m_xInfo.is() && m_xInfo->hasPropertyByName(PROPERTY_ALIGN) ) { Any aValue; xPropSet->setPropertyValue(PROPERTY_ALIGN,aValue); @@ -955,7 +963,7 @@ namespace xmloff //= OImagePositionImport //===================================================================== //--------------------------------------------------------------------- - OImagePositionImport::OImagePositionImport( IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, + OImagePositionImport::OImagePositionImport( OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ) :OControlImport( _rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType ) @@ -1015,7 +1023,7 @@ namespace xmloff //===================================================================== //--------------------------------------------------------------------- OReferredControlImport::OReferredControlImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType ) :OControlImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer) @@ -1028,8 +1036,8 @@ namespace xmloff OControlImport::StartElement(_rxAttrList); // the base class should have created the control, so we can register it - if (m_sReferringControls.getLength()) - m_rFormImport.getControlIdMap().registerControlReferences(m_xElement, m_sReferringControls); + if ( m_sReferringControls.getLength() ) + m_rFormImport.registerControlReferences(m_xElement, m_sReferringControls); } //--------------------------------------------------------------------- @@ -1047,7 +1055,7 @@ namespace xmloff //= OPasswordImport //===================================================================== //--------------------------------------------------------------------- - OPasswordImport::OPasswordImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OPasswordImport::OPasswordImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :OControlImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType) { @@ -1078,7 +1086,7 @@ namespace xmloff //= ORadioImport //===================================================================== //--------------------------------------------------------------------- - ORadioImport::ORadioImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + ORadioImport::ORadioImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :OImagePositionImport( _rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType ) { @@ -1089,15 +1097,17 @@ namespace xmloff { // need special handling for the State & CurrentState properties: // they're stored as booleans, but expected to be int16 properties - if ( _rLocalName.equalsAscii( OAttributeMetaData::getCommonControlAttributeName( CCA_CURRENT_SELECTED ) ) - || _rLocalName.equalsAscii( OAttributeMetaData::getCommonControlAttributeName( CCA_SELECTED ) ) + static const sal_Char* pCurrentSelectedAttributeName = OAttributeMetaData::getCommonControlAttributeName(CCA_CURRENT_SELECTED); + static const sal_Char* pSelectedAttributeName = OAttributeMetaData::getCommonControlAttributeName(CCA_SELECTED); + if ( _rLocalName.equalsAscii( pCurrentSelectedAttributeName ) + || _rLocalName.equalsAscii( pSelectedAttributeName ) ) { const OAttribute2Property::AttributeAssignment* pProperty = m_rContext.getAttributeMap().getAttributeTranslation(_rLocalName); OSL_ENSURE(pProperty, "ORadioImport::handleAttribute: invalid property map!"); if (pProperty) { - Any aBooleanValue = PropertyConversion::convertString(m_rContext.getGlobalContext(), pProperty->aPropertyType, _rValue, pProperty->pEnumMap); + const Any aBooleanValue( PropertyConversion::convertString(m_rContext.getGlobalContext(), pProperty->aPropertyType, _rValue, pProperty->pEnumMap) ); // create and store a new PropertyValue PropertyValue aNewValue; @@ -1114,7 +1124,7 @@ namespace xmloff //===================================================================== //= OURLReferenceImport //===================================================================== - OURLReferenceImport::OURLReferenceImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OURLReferenceImport::OURLReferenceImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :OImagePositionImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType) @@ -1159,7 +1169,7 @@ namespace xmloff //= OButtonImport //===================================================================== //--------------------------------------------------------------------- - OButtonImport::OButtonImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OButtonImport::OButtonImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :OURLReferenceImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType) @@ -1180,11 +1190,12 @@ namespace xmloff //= OValueRangeImport //===================================================================== //--------------------------------------------------------------------- - OValueRangeImport::OValueRangeImport( IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OValueRangeImport::OValueRangeImport( OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ) :OControlImport( _rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType ) ,m_nStepSizeValue( 1 ) { + } //--------------------------------------------------------------------- @@ -1203,14 +1214,11 @@ namespace xmloff { OControlImport::StartElement( _rxAttrList ); - Reference< XPropertySetInfo > xPropInfo; - if ( m_xElement.is() ) - xPropInfo = m_xElement->getPropertySetInfo(); - if ( xPropInfo.is() ) + if ( m_xInfo.is() ) { - if ( xPropInfo->hasPropertyByName( PROPERTY_SPIN_INCREMENT ) ) + if ( m_xInfo->hasPropertyByName( PROPERTY_SPIN_INCREMENT ) ) m_xElement->setPropertyValue( PROPERTY_SPIN_INCREMENT, makeAny( m_nStepSizeValue ) ); - else if ( xPropInfo->hasPropertyByName( PROPERTY_LINE_INCREMENT ) ) + else if ( m_xInfo->hasPropertyByName( PROPERTY_LINE_INCREMENT ) ) m_xElement->setPropertyValue( PROPERTY_LINE_INCREMENT, makeAny( m_nStepSizeValue ) ); } } @@ -1219,7 +1227,7 @@ namespace xmloff //= OTextLikeImport //===================================================================== //--------------------------------------------------------------------- - OTextLikeImport::OTextLikeImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OTextLikeImport::OTextLikeImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :OControlImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType) @@ -1232,7 +1240,7 @@ namespace xmloff SvXMLImportContext* OTextLikeImport::CreateChildContext( sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, const Reference< sax::XAttributeList >& _rxAttrList ) { - if ( _rLocalName.equalsIgnoreAsciiCaseAscii( "p" ) && ( XML_NAMESPACE_TEXT == _nPrefix ) ) + if ( ( XML_NAMESPACE_TEXT == _nPrefix ) && _rLocalName.equalsIgnoreAsciiCaseAscii( "p" ) ) { OSL_ENSURE( m_eElementType == OControlElement::TEXT_AREA, "OTextLikeImport::CreateChildContext: text paragraphs in a non-text-area?" ); @@ -1275,32 +1283,22 @@ namespace xmloff OControlImport::StartElement(_rxAttrList); // handle the convert-empty-to-null attribute, whose default is different from the property default - sal_Bool bHaveEmptyIsNull = sal_False; // unfortunately, different classes are imported by this class ('cause they're represented by the // same XML element), though not all of them know this property. // So we have to do a check ... - if (m_xElement.is()) - { - Reference< XPropertySetInfo > xProps = m_xElement->getPropertySetInfo(); - if (xProps.is()) - bHaveEmptyIsNull = xProps->hasPropertyByName(PROPERTY_EMPTY_IS_NULL); - } - - if (bHaveEmptyIsNull) + if (m_xElement.is() && m_xInfo.is() && m_xInfo->hasPropertyByName(PROPERTY_EMPTY_IS_NULL) ) simulateDefaultedAttribute(OAttributeMetaData::getDatabaseAttributeName(DA_CONVERT_EMPTY), PROPERTY_EMPTY_IS_NULL, "false"); } //--------------------------------------------------------------------- struct EqualHandle : public ::std::unary_function< PropertyValue, bool > { - sal_Int32 m_nHandle; + const sal_Int32 m_nHandle; EqualHandle( sal_Int32 _nHandle ) : m_nHandle( _nHandle ) { } inline bool operator()( const PropertyValue& _rProp ) { - if ( _rProp.Handle == m_nHandle ) - return true; - return false; + return _rProp.Handle == m_nHandle; } }; @@ -1337,11 +1335,8 @@ namespace xmloff // additionally, we need to set the "RichText" property of our element to TRUE // (the presence of the text:p is used as indicator for the value of the RichText property) sal_Bool bHasRichTextProperty = sal_False; - Reference< XPropertySetInfo > xPropInfo; - if ( m_xElement.is() ) - xPropInfo = m_xElement->getPropertySetInfo(); - if ( xPropInfo.is() ) - bHasRichTextProperty = xPropInfo->hasPropertyByName( PROPERTY_RICH_TEXT ); + if ( m_xInfo.is() ) + bHasRichTextProperty = m_xInfo->hasPropertyByName( PROPERTY_RICH_TEXT ); OSL_ENSURE( bHasRichTextProperty, "OTextLikeImport::EndElement: text:p, but no rich text control?" ); if ( bHasRichTextProperty ) m_xElement->setPropertyValue( PROPERTY_RICH_TEXT, makeAny( (sal_Bool)sal_True ) ); @@ -1353,14 +1348,12 @@ namespace xmloff //--------------------------------------------------------------------- struct EqualName : public ::std::unary_function< PropertyValue, bool > { - ::rtl::OUString m_sName; + const ::rtl::OUString m_sName; EqualName( const ::rtl::OUString& _rName ) : m_sName( _rName ) { } inline bool operator()( const PropertyValue& _rProp ) { - if ( _rProp.Name == m_sName ) - return true; - return false; + return _rProp.Name == m_sName; } }; @@ -1425,7 +1418,7 @@ namespace xmloff //= OListAndComboImport //===================================================================== //--------------------------------------------------------------------- - OListAndComboImport::OListAndComboImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OListAndComboImport::OListAndComboImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :OControlImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType) @@ -1538,8 +1531,8 @@ namespace xmloff //--------------------------------------------------------------------- void OListAndComboImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue) { - static const ::rtl::OUString s_sListSourceAttributeName = ::rtl::OUString::createFromAscii(OAttributeMetaData::getDatabaseAttributeName(DA_LIST_SOURCE)); - if (s_sListSourceAttributeName == _rLocalName) + static const sal_Char* pListSourceAttributeName = OAttributeMetaData::getDatabaseAttributeName(DA_LIST_SOURCE); + if ( _rLocalName.equalsAscii(pListSourceAttributeName) ) { PropertyValue aListSource; aListSource.Name = PROPERTY_LISTSOURCE; @@ -1653,9 +1646,10 @@ namespace xmloff void OListOptionImport::StartElement(const Reference< sax::XAttributeList >& _rxAttrList) { // the label and the value - const ::rtl::OUString sLabelAttribute = GetImport().GetNamespaceMap().GetQNameByKey( + const SvXMLNamespaceMap& rMap = GetImport().GetNamespaceMap(); + const ::rtl::OUString sLabelAttribute = rMap.GetQNameByKey( GetPrefix(), ::rtl::OUString::createFromAscii("label")); - const ::rtl::OUString sValueAttribute = GetImport().GetNamespaceMap().GetQNameByKey( + const ::rtl::OUString sValueAttribute = rMap.GetQNameByKey( GetPrefix(), ::rtl::OUString::createFromAscii("value")); // ------------------- @@ -1687,9 +1681,9 @@ namespace xmloff m_xListBoxImport->implPushBackValue( sValue ); // the current-selected and selected - const ::rtl::OUString sSelectedAttribute = GetImport().GetNamespaceMap().GetQNameByKey( + const ::rtl::OUString sSelectedAttribute = rMap.GetQNameByKey( GetPrefix(), ::rtl::OUString::createFromAscii(OAttributeMetaData::getCommonControlAttributeName(CCA_CURRENT_SELECTED))); - const ::rtl::OUString sDefaultSelectedAttribute = GetImport().GetNamespaceMap().GetQNameByKey( + const ::rtl::OUString sDefaultSelectedAttribute = rMap.GetQNameByKey( GetPrefix(), ::rtl::OUString::createFromAscii(OAttributeMetaData::getCommonControlAttributeName(CCA_SELECTED))); // propagate the selected flag @@ -1733,7 +1727,7 @@ namespace xmloff //= OColumnWrapperImport //===================================================================== //--------------------------------------------------------------------- - OColumnWrapperImport::OColumnWrapperImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OColumnWrapperImport::OColumnWrapperImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer) :SvXMLImportContext(_rImport.getGlobalContext(), _nPrefix, _rName) ,m_xParentContainer(_rxParentContainer) @@ -1802,7 +1796,7 @@ namespace xmloff //= OGridImport //===================================================================== //--------------------------------------------------------------------- - OGridImport::OGridImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OGridImport::OGridImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :OGridImport_Base(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, "column") @@ -1820,7 +1814,7 @@ namespace xmloff //= OFormImport //===================================================================== //--------------------------------------------------------------------- - OFormImport::OFormImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormImport::OFormImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer) :OFormImport_Base(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, "control") { diff --git a/xmloff/source/forms/elementimport.hxx b/xmloff/source/forms/elementimport.hxx index b71acfd6d5..ce6540cd69 100644 --- a/xmloff/source/forms/elementimport.hxx +++ b/xmloff/source/forms/elementimport.hxx @@ -53,7 +53,7 @@ namespace xmloff //......................................................................... class IControlIdMap; - class IFormsImportContext; + class OFormLayerXMLImport_Impl; //===================================================================== //= OElementNameMap @@ -88,7 +88,7 @@ namespace xmloff protected: ::rtl::OUString m_sServiceName; // the service name as extracted from the service-name attribute ::rtl::OUString m_sName; // the name of the object (redundant, already contained in the base class' array) - IFormsImportContext& m_rFormImport; // the form import context + OFormLayerXMLImport_Impl& m_rFormImport; // the form import context IEventAttacherManager& m_rEventManager; // the event attacher manager const XMLTextStyleContext* m_pStyleElement; // the XML element which describes the style we encountered @@ -98,6 +98,8 @@ namespace xmloff m_xParentContainer; // the parent container to insert the new element into + ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + m_xInfo; ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > m_xElement; // the element we're creating. Valid after StartElement @@ -117,7 +119,7 @@ namespace xmloff the container in which the new element should be inserted */ OElementImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer ); @@ -207,14 +209,14 @@ namespace xmloff protected: // for use by derived classes only OControlImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer ); public: OControlImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType @@ -285,7 +287,7 @@ namespace xmloff public: OImagePositionImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -312,7 +314,7 @@ namespace xmloff public: OReferredControlImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -334,7 +336,7 @@ namespace xmloff { public: OPasswordImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -352,7 +354,7 @@ namespace xmloff { public: ORadioImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -374,7 +376,7 @@ namespace xmloff { public: OURLReferenceImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -396,7 +398,7 @@ namespace xmloff { public: OButtonImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -420,7 +422,7 @@ namespace xmloff public: OValueRangeImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -451,7 +453,7 @@ namespace xmloff public: OTextLikeImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -503,7 +505,7 @@ namespace xmloff public: OListAndComboImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -589,7 +591,7 @@ namespace xmloff ::rtl::OUString m_sWrapperElementName; protected: - OContainerImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OContainerImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, const sal_Char* _pWrapperElementName) :BASE(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer) @@ -629,7 +631,7 @@ namespace xmloff m_xColumnFactory; public: - OColumnImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OColumnImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType); @@ -649,11 +651,11 @@ namespace xmloff m_xOwnAttributes; ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > m_xParentContainer; - IFormsImportContext& m_rFormImport; + OFormLayerXMLImport_Impl& m_rFormImport; IEventAttacherManager& m_rEventManager; public: - OColumnWrapperImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OColumnWrapperImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer); // SvXMLImportContext overridables @@ -678,7 +680,7 @@ namespace xmloff { public: OGridImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType); @@ -698,7 +700,7 @@ namespace xmloff { public: OFormImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer ); diff --git a/xmloff/source/forms/elementimport_impl.hxx b/xmloff/source/forms/elementimport_impl.hxx index 1988c475d2..49bd8d8f7f 100644 --- a/xmloff/source/forms/elementimport_impl.hxx +++ b/xmloff/source/forms/elementimport_impl.hxx @@ -99,7 +99,7 @@ inline void OContainerImport< BASE >::EndElement() //========================================================================= //------------------------------------------------------------------------- template -OColumnImport< BASE >::OColumnImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, +OColumnImport< BASE >::OColumnImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :BASE(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType) diff --git a/xmloff/source/forms/eventexport.cxx b/xmloff/source/forms/eventexport.cxx index 2e44b96019..45a679bd40 100644 --- a/xmloff/source/forms/eventexport.cxx +++ b/xmloff/source/forms/eventexport.cxx @@ -154,7 +154,7 @@ namespace xmloff //--------------------------------------------------------------------- sal_Bool SAL_CALL OEventDescriptorMapper::hasElements( ) throw(RuntimeException) { - return 0 != m_aMappedEvents.size(); + return !m_aMappedEvents.empty(); } //......................................................................... diff --git a/xmloff/source/forms/formattributes.cxx b/xmloff/source/forms/formattributes.cxx index 9cb70d95dd..a082c0a897 100644 --- a/xmloff/source/forms/formattributes.cxx +++ b/xmloff/source/forms/formattributes.cxx @@ -34,7 +34,7 @@ #include "xmlnmspe.hxx" #include #include - +#include //......................................................................... namespace xmloff { diff --git a/xmloff/source/forms/formcellbinding.cxx b/xmloff/source/forms/formcellbinding.cxx index 98433eb1ae..0f3e657e16 100644 --- a/xmloff/source/forms/formcellbinding.cxx +++ b/xmloff/source/forms/formcellbinding.cxx @@ -46,6 +46,7 @@ #include #include "strings.hxx" #include +#include #include #include @@ -66,427 +67,427 @@ namespace xmloff using namespace ::com::sun::star::lang; using namespace ::com::sun::star::form::binding; - namespace +namespace +{ + using ::com::sun::star::uno::Reference; + using ::com::sun::star::uno::XInterface; + using ::com::sun::star::container::XChild; + using ::com::sun::star::frame::XModel; + using ::com::sun::star::uno::UNO_QUERY; + + //.................................................................... + template< class TYPE > + Reference< TYPE > getTypedModelNode( const Reference< XInterface >& _rxModelNode ) { - using ::com::sun::star::uno::Reference; - using ::com::sun::star::uno::XInterface; - using ::com::sun::star::container::XChild; - using ::com::sun::star::frame::XModel; - using ::com::sun::star::uno::UNO_QUERY; - - //.................................................................... - template< class TYPE > - Reference< TYPE > getTypedModelNode( const Reference< XInterface >& _rxModelNode ) + Reference< TYPE > xTypedNode( _rxModelNode, UNO_QUERY ); + if ( xTypedNode.is() ) + return xTypedNode; + else { - Reference< TYPE > xTypedNode( _rxModelNode, UNO_QUERY ); - if ( xTypedNode.is() ) - return xTypedNode; + Reference< XChild > xChild( _rxModelNode, UNO_QUERY ); + if ( xChild.is() ) + return getTypedModelNode< TYPE >( xChild->getParent() ); else - { - Reference< XChild > xChild( _rxModelNode, UNO_QUERY ); - if ( xChild.is() ) - return getTypedModelNode< TYPE >( xChild->getParent() ); - else - return NULL; - } + return NULL; } - - //.................................................................... - Reference< XModel > getDocument( const Reference< XInterface >& _rxModelNode ) - { - return getTypedModelNode< XModel >( _rxModelNode ); - } - - //.................................................................... - struct StringCompare : public ::std::unary_function< ::rtl::OUString, bool > - { - private: - ::rtl::OUString m_sReference; - - public: - StringCompare( const ::rtl::OUString& _rReference ) : m_sReference( _rReference ) { } - - inline bool operator()( const ::rtl::OUString& _rCompare ) - { - return ( _rCompare == m_sReference ) ? true : false; - } - }; } - //======================================================================== - //= FormCellBindingHelper - //======================================================================== - //------------------------------------------------------------------------ - FormCellBindingHelper::FormCellBindingHelper( const Reference< XPropertySet >& _rxControlModel, const Reference< XModel >& _rxDocument ) - :m_xControlModel( _rxControlModel ) - ,m_xDocument( _rxDocument, UNO_QUERY ) + //.................................................................... + Reference< XModel > getDocument( const Reference< XInterface >& _rxModelNode ) { - OSL_ENSURE( m_xControlModel.is(), "FormCellBindingHelper::FormCellBindingHelper: invalid control model!" ); - - if ( !m_xDocument.is() ) - m_xDocument = m_xDocument.query( getDocument( m_xControlModel ) ); - OSL_ENSURE( m_xDocument.is(), "FormCellBindingHelper::FormCellBindingHelper: Did not find the spreadsheet document!" ); + return getTypedModelNode< XModel >( _rxModelNode ); } - //------------------------------------------------------------------------ - sal_Bool FormCellBindingHelper::livesInSpreadsheetDocument( const Reference< XPropertySet >& _rxControlModel ) + //.................................................................... + struct StringCompare : public ::std::unary_function< ::rtl::OUString, bool > { - Reference< XSpreadsheetDocument > xDocument( getDocument( _rxControlModel ), UNO_QUERY ); - return xDocument.is(); - } + private: + const ::rtl::OUString m_sReference; - //------------------------------------------------------------------------ - bool FormCellBindingHelper::convertStringAddress( const ::rtl::OUString& _rAddressDescription, CellAddress& /* [out] */ _rAddress, sal_Int16 /*_nAssumeSheet*/ ) const - { - Any aAddress; - return doConvertAddressRepresentations( - PROPERTY_FILE_REPRESENTATION, - makeAny( _rAddressDescription ), - PROPERTY_ADDRESS, - aAddress, - false - ) - && ( aAddress >>= _rAddress ); - } + public: + StringCompare( const ::rtl::OUString& _rReference ) : m_sReference( _rReference ) { } - //------------------------------------------------------------------------ - bool FormCellBindingHelper::convertStringAddress( const ::rtl::OUString& _rAddressDescription, - CellRangeAddress& /* [out] */ _rAddress ) const - { - Any aAddress; - return doConvertAddressRepresentations( - PROPERTY_FILE_REPRESENTATION, - makeAny( _rAddressDescription ), - PROPERTY_ADDRESS, - aAddress, - true - ) - && ( aAddress >>= _rAddress ); - } + inline bool operator()( const ::rtl::OUString& _rCompare ) + { + return ( _rCompare == m_sReference ); + } + }; +} + +//======================================================================== +//= FormCellBindingHelper +//======================================================================== +//------------------------------------------------------------------------ +FormCellBindingHelper::FormCellBindingHelper( const Reference< XPropertySet >& _rxControlModel, const Reference< XModel >& _rxDocument ) + :m_xControlModel( _rxControlModel ) + ,m_xDocument( _rxDocument, UNO_QUERY ) +{ + OSL_ENSURE( m_xControlModel.is(), "FormCellBindingHelper::FormCellBindingHelper: invalid control model!" ); - //------------------------------------------------------------------------ - Reference< XValueBinding > FormCellBindingHelper::createCellBindingFromStringAddress( const ::rtl::OUString& _rAddress, bool _bUseIntegerBinding ) const - { - Reference< XValueBinding > xBinding; - if ( !m_xDocument.is() ) - // very bad ... - return xBinding; - - // get the UNO representation of the address - CellAddress aAddress; - if ( !_rAddress.getLength() || !convertStringAddress( _rAddress, aAddress ) ) - return xBinding; - - xBinding = xBinding.query( createDocumentDependentInstance( - _bUseIntegerBinding ? SERVICE_LISTINDEXCELLBINDING : SERVICE_CELLVALUEBINDING, - PROPERTY_BOUND_CELL, - makeAny( aAddress ) - ) ); + if ( !m_xDocument.is() ) + m_xDocument = m_xDocument.query( getDocument( m_xControlModel ) ); + OSL_ENSURE( m_xDocument.is(), "FormCellBindingHelper::FormCellBindingHelper: Did not find the spreadsheet document!" ); +} + +//------------------------------------------------------------------------ +sal_Bool FormCellBindingHelper::livesInSpreadsheetDocument( const Reference< XPropertySet >& _rxControlModel ) +{ + Reference< XSpreadsheetDocument > xDocument( getDocument( _rxControlModel ), UNO_QUERY ); + return xDocument.is(); +} + +//------------------------------------------------------------------------ +bool FormCellBindingHelper::convertStringAddress( const ::rtl::OUString& _rAddressDescription, CellAddress& /* [out] */ _rAddress, sal_Int16 /*_nAssumeSheet*/ ) const +{ + Any aAddress; + return doConvertAddressRepresentations( + PROPERTY_FILE_REPRESENTATION, + makeAny( _rAddressDescription ), + PROPERTY_ADDRESS, + aAddress, + false + ) + && ( aAddress >>= _rAddress ); +} + +//------------------------------------------------------------------------ +bool FormCellBindingHelper::convertStringAddress( const ::rtl::OUString& _rAddressDescription, + CellRangeAddress& /* [out] */ _rAddress ) const +{ + Any aAddress; + return doConvertAddressRepresentations( + PROPERTY_FILE_REPRESENTATION, + makeAny( _rAddressDescription ), + PROPERTY_ADDRESS, + aAddress, + true + ) + && ( aAddress >>= _rAddress ); +} + +//------------------------------------------------------------------------ +Reference< XValueBinding > FormCellBindingHelper::createCellBindingFromStringAddress( const ::rtl::OUString& _rAddress, bool _bUseIntegerBinding ) const +{ + Reference< XValueBinding > xBinding; + if ( !m_xDocument.is() ) + // very bad ... + return xBinding; + // get the UNO representation of the address + CellAddress aAddress; + if ( !_rAddress.getLength() || !convertStringAddress( _rAddress, aAddress ) ) return xBinding; - } - //------------------------------------------------------------------------ - Reference< XListEntrySource > FormCellBindingHelper::createCellListSourceFromStringAddress( const ::rtl::OUString& _rAddress ) const - { - Reference< XListEntrySource > xSource; + xBinding = xBinding.query( createDocumentDependentInstance( + _bUseIntegerBinding ? SERVICE_LISTINDEXCELLBINDING : SERVICE_CELLVALUEBINDING, + PROPERTY_BOUND_CELL, + makeAny( aAddress ) + ) ); - CellRangeAddress aRangeAddress; - if ( !convertStringAddress( _rAddress, aRangeAddress ) ) - return xSource; + return xBinding; +} - // create a range object for this address - xSource = xSource.query( createDocumentDependentInstance( - SERVICE_CELLRANGELISTSOURCE, - PROPERTY_LIST_CELL_RANGE, - makeAny( aRangeAddress ) - ) ); +//------------------------------------------------------------------------ +Reference< XListEntrySource > FormCellBindingHelper::createCellListSourceFromStringAddress( const ::rtl::OUString& _rAddress ) const +{ + Reference< XListEntrySource > xSource; + CellRangeAddress aRangeAddress; + if ( !convertStringAddress( _rAddress, aRangeAddress ) ) return xSource; - } - //------------------------------------------------------------------------ - ::rtl::OUString FormCellBindingHelper::getStringAddressFromCellBinding( const Reference< XValueBinding >& _rxBinding ) const - { - OSL_PRECOND( !_rxBinding.is() || isCellBinding( _rxBinding ), "FormCellBindingHelper::getStringAddressFromCellBinding: this is no cell binding!" ); + // create a range object for this address + xSource = xSource.query( createDocumentDependentInstance( + SERVICE_CELLRANGELISTSOURCE, + PROPERTY_LIST_CELL_RANGE, + makeAny( aRangeAddress ) + ) ); - ::rtl::OUString sAddress; - try - { - Reference< XPropertySet > xBindingProps( _rxBinding, UNO_QUERY ); - OSL_ENSURE( xBindingProps.is() || !_rxBinding.is(), "FormCellBindingHelper::getStringAddressFromCellBinding: no property set for the binding!" ); - if ( xBindingProps.is() ) - { - CellAddress aAddress; - xBindingProps->getPropertyValue( PROPERTY_BOUND_CELL ) >>= aAddress; + return xSource; +} - Any aStringAddress; - doConvertAddressRepresentations( PROPERTY_ADDRESS, makeAny( aAddress ), - PROPERTY_FILE_REPRESENTATION, aStringAddress, false ); +//------------------------------------------------------------------------ +::rtl::OUString FormCellBindingHelper::getStringAddressFromCellBinding( const Reference< XValueBinding >& _rxBinding ) const +{ + OSL_PRECOND( !_rxBinding.is() || isCellBinding( _rxBinding ), "FormCellBindingHelper::getStringAddressFromCellBinding: this is no cell binding!" ); - aStringAddress >>= sAddress; - } - } - catch( const Exception& ) + ::rtl::OUString sAddress; + try + { + Reference< XPropertySet > xBindingProps( _rxBinding, UNO_QUERY ); + OSL_ENSURE( xBindingProps.is() || !_rxBinding.is(), "FormCellBindingHelper::getStringAddressFromCellBinding: no property set for the binding!" ); + if ( xBindingProps.is() ) { - OSL_ENSURE( sal_False, "FormCellBindingHelper::getStringAddressFromCellBinding: caught an exception!" ); - } + CellAddress aAddress; + xBindingProps->getPropertyValue( PROPERTY_BOUND_CELL ) >>= aAddress; - return sAddress; - } + Any aStringAddress; + doConvertAddressRepresentations( PROPERTY_ADDRESS, makeAny( aAddress ), + PROPERTY_FILE_REPRESENTATION, aStringAddress, false ); - //------------------------------------------------------------------------ - ::rtl::OUString FormCellBindingHelper::getStringAddressFromCellListSource( const Reference< XListEntrySource >& _rxSource ) const + aStringAddress >>= sAddress; + } + } + catch( const Exception& ) { - OSL_PRECOND( !_rxSource.is() || isCellRangeListSource( _rxSource ), "FormCellBindingHelper::getStringAddressFromCellListSource: this is no cell list source!" ); - - ::rtl::OUString sAddress; - try - { - Reference< XPropertySet > xSourceProps( _rxSource, UNO_QUERY ); - OSL_ENSURE( xSourceProps.is() || !_rxSource.is(), "FormCellBindingHelper::getStringAddressFromCellListSource: no property set for the list source!" ); - if ( xSourceProps.is() ) - { - CellRangeAddress aRangeAddress; - xSourceProps->getPropertyValue( PROPERTY_LIST_CELL_RANGE ) >>= aRangeAddress; + OSL_ENSURE( sal_False, "FormCellBindingHelper::getStringAddressFromCellBinding: caught an exception!" ); + } - Any aStringAddress; - doConvertAddressRepresentations( PROPERTY_ADDRESS, makeAny( aRangeAddress ), - PROPERTY_FILE_REPRESENTATION, aStringAddress, true ); - aStringAddress >>= sAddress; - } - } - catch( const Exception& ) - { - OSL_ENSURE( sal_False, "FormCellBindingHelper::getStringAddressFromCellListSource: caught an exception!" ); - } + return sAddress; +} - return sAddress; - } +//------------------------------------------------------------------------ +::rtl::OUString FormCellBindingHelper::getStringAddressFromCellListSource( const Reference< XListEntrySource >& _rxSource ) const +{ + OSL_PRECOND( !_rxSource.is() || isCellRangeListSource( _rxSource ), "FormCellBindingHelper::getStringAddressFromCellListSource: this is no cell list source!" ); - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isSpreadsheetDocumentWhichSupplies( const Reference< XSpreadsheetDocument >& _rxDocument, const ::rtl::OUString& _rService ) SAL_THROW(()) + ::rtl::OUString sAddress; + try { - bool bYesItIs = false; - - try - { - Reference< XServiceInfo > xSI( _rxDocument, UNO_QUERY ); - if ( xSI.is() && xSI->supportsService( SERVICE_SPREADSHEET_DOCUMENT ) ) - { - Reference< XMultiServiceFactory > xDocumentFactory( _rxDocument, UNO_QUERY ); - OSL_ENSURE( xDocumentFactory.is(), "FormCellBindingHelper::isSpreadsheetDocumentWhichSupplies: spreadsheet document, but no factory?" ); - - Sequence< ::rtl::OUString > aAvailableServices; - if ( xDocumentFactory.is() ) - aAvailableServices = xDocumentFactory->getAvailableServiceNames( ); - - const ::rtl::OUString* pFound = ::std::find_if( - aAvailableServices.getConstArray(), - aAvailableServices.getConstArray() + aAvailableServices.getLength(), - StringCompare( _rService ) - ); - if ( pFound - aAvailableServices.getConstArray() < aAvailableServices.getLength() ) - { - bYesItIs = true; - } - } - } - catch( const Exception& ) + Reference< XPropertySet > xSourceProps( _rxSource, UNO_QUERY ); + OSL_ENSURE( xSourceProps.is() || !_rxSource.is(), "FormCellBindingHelper::getStringAddressFromCellListSource: no property set for the list source!" ); + if ( xSourceProps.is() ) { - OSL_ENSURE( sal_False, "FormCellBindingHelper::isSpreadsheetDocumentWhichSupplies: caught an exception!" ); - } + CellRangeAddress aRangeAddress; + xSourceProps->getPropertyValue( PROPERTY_LIST_CELL_RANGE ) >>= aRangeAddress; - return bYesItIs; + Any aStringAddress; + doConvertAddressRepresentations( PROPERTY_ADDRESS, makeAny( aRangeAddress ), + PROPERTY_FILE_REPRESENTATION, aStringAddress, true ); + aStringAddress >>= sAddress; + } } - - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isSpreadsheetDocumentWhichSupplies( const ::rtl::OUString& _rService ) const SAL_THROW(()) + catch( const Exception& ) { - return isSpreadsheetDocumentWhichSupplies( m_xDocument, _rService ); + OSL_ENSURE( sal_False, "FormCellBindingHelper::getStringAddressFromCellListSource: caught an exception!" ); } - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isListCellRangeAllowed( const Reference< XModel >& _rxDocument ) - { - return isSpreadsheetDocumentWhichSupplies( - Reference< XSpreadsheetDocument >( _rxDocument, UNO_QUERY ), - SERVICE_CELLRANGELISTSOURCE - ); - } + return sAddress; +} - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isListCellRangeAllowed( ) const - { - bool bAllow( false ); +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isSpreadsheetDocumentWhichSupplies( const Reference< XSpreadsheetDocument >& _rxDocument, const ::rtl::OUString& _rService ) SAL_THROW(()) +{ + bool bYesItIs = false; - Reference< XListEntrySink > xSink( m_xControlModel, UNO_QUERY ); - if ( xSink.is() ) + try + { + Reference< XServiceInfo > xSI( _rxDocument, UNO_QUERY ); + if ( xSI.is() && xSI->supportsService( SERVICE_SPREADSHEET_DOCUMENT ) ) { - bAllow = isSpreadsheetDocumentWhichSupplies( SERVICE_CELLRANGELISTSOURCE ); + Reference< XMultiServiceFactory > xDocumentFactory( _rxDocument, UNO_QUERY ); + OSL_ENSURE( xDocumentFactory.is(), "FormCellBindingHelper::isSpreadsheetDocumentWhichSupplies: spreadsheet document, but no factory?" ); + + Sequence< ::rtl::OUString > aAvailableServices; + if ( xDocumentFactory.is() ) + aAvailableServices = xDocumentFactory->getAvailableServiceNames( ); + + const ::rtl::OUString* pFound = ::std::find_if( + aAvailableServices.getConstArray(), + aAvailableServices.getConstArray() + aAvailableServices.getLength(), + StringCompare( _rService ) + ); + if ( pFound - aAvailableServices.getConstArray() < aAvailableServices.getLength() ) + { + bYesItIs = true; + } } - - return bAllow; } - - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isCellBindingAllowed( ) const + catch( const Exception& ) { - bool bAllow( false ); + OSL_ENSURE( sal_False, "FormCellBindingHelper::isSpreadsheetDocumentWhichSupplies: caught an exception!" ); + } - Reference< XBindableValue > xBindable( m_xControlModel, UNO_QUERY ); - if ( xBindable.is() ) - { - // the control can potentially be bound to an external value - // Does it live within a Calc document, and is able to supply CellBindings? - bAllow = isSpreadsheetDocumentWhichSupplies( SERVICE_CELLVALUEBINDING ); - } + return bYesItIs; +} - return bAllow; - } +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isSpreadsheetDocumentWhichSupplies( const ::rtl::OUString& _rService ) const SAL_THROW(()) +{ + return isSpreadsheetDocumentWhichSupplies( m_xDocument, _rService ); +} - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isCellBindingAllowed( const Reference< XModel >& _rxDocument ) - { - return isSpreadsheetDocumentWhichSupplies( - Reference< XSpreadsheetDocument >( _rxDocument, UNO_QUERY ), - SERVICE_CELLVALUEBINDING - ); - } +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isListCellRangeAllowed( const Reference< XModel >& _rxDocument ) +{ + return isSpreadsheetDocumentWhichSupplies( + Reference< XSpreadsheetDocument >( _rxDocument, UNO_QUERY ), + SERVICE_CELLRANGELISTSOURCE + ); +} + +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isListCellRangeAllowed( ) const +{ + bool bAllow( false ); - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isCellBinding( const Reference< XValueBinding >& _rxBinding ) const + Reference< XListEntrySink > xSink( m_xControlModel, UNO_QUERY ); + if ( xSink.is() ) { - return doesComponentSupport( _rxBinding.get(), SERVICE_CELLVALUEBINDING ); + bAllow = isSpreadsheetDocumentWhichSupplies( SERVICE_CELLRANGELISTSOURCE ); } - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isCellIntegerBinding( const Reference< XValueBinding >& _rxBinding ) const - { - return doesComponentSupport( _rxBinding.get(), SERVICE_LISTINDEXCELLBINDING ); - } + return bAllow; +} - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isCellRangeListSource( const Reference< XListEntrySource >& _rxSource ) const - { - return doesComponentSupport( _rxSource.get(), SERVICE_CELLRANGELISTSOURCE ); - } +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isCellBindingAllowed( ) const +{ + bool bAllow( false ); - //------------------------------------------------------------------------ - bool FormCellBindingHelper::doesComponentSupport( const Reference< XInterface >& _rxComponent, const ::rtl::OUString& _rService ) const + Reference< XBindableValue > xBindable( m_xControlModel, UNO_QUERY ); + if ( xBindable.is() ) { - bool bDoes = false; - Reference< XServiceInfo > xSI( _rxComponent, UNO_QUERY ); - bDoes = xSI.is() && xSI->supportsService( _rService ); - return bDoes; + // the control can potentially be bound to an external value + // Does it live within a Calc document, and is able to supply CellBindings? + bAllow = isSpreadsheetDocumentWhichSupplies( SERVICE_CELLVALUEBINDING ); } - //------------------------------------------------------------------------ - Reference< XValueBinding > FormCellBindingHelper::getCurrentBinding( ) const - { - Reference< XValueBinding > xBinding; - Reference< XBindableValue > xBindable( m_xControlModel, UNO_QUERY ); - if ( xBindable.is() ) - xBinding = xBindable->getValueBinding(); - return xBinding; - } + return bAllow; +} - //------------------------------------------------------------------------ - Reference< XListEntrySource > FormCellBindingHelper::getCurrentListSource( ) const - { - Reference< XListEntrySource > xSource; - Reference< XListEntrySink > xSink( m_xControlModel, UNO_QUERY ); - if ( xSink.is() ) - xSource = xSink->getListEntrySource(); - return xSource; - } +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isCellBindingAllowed( const Reference< XModel >& _rxDocument ) +{ + return isSpreadsheetDocumentWhichSupplies( + Reference< XSpreadsheetDocument >( _rxDocument, UNO_QUERY ), + SERVICE_CELLVALUEBINDING + ); +} + +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isCellBinding( const Reference< XValueBinding >& _rxBinding ) const +{ + return doesComponentSupport( _rxBinding.get(), SERVICE_CELLVALUEBINDING ); +} - //------------------------------------------------------------------------ - void FormCellBindingHelper::setBinding( const Reference< XValueBinding >& _rxBinding ) - { - Reference< XBindableValue > xBindable( m_xControlModel, UNO_QUERY ); - OSL_PRECOND( xBindable.is(), "FormCellBindingHelper::setBinding: the object is not bindable!" ); - if ( xBindable.is() ) - xBindable->setValueBinding( _rxBinding ); - } +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isCellIntegerBinding( const Reference< XValueBinding >& _rxBinding ) const +{ + return doesComponentSupport( _rxBinding.get(), SERVICE_LISTINDEXCELLBINDING ); +} - //------------------------------------------------------------------------ - void FormCellBindingHelper::setListSource( const Reference< XListEntrySource >& _rxSource ) - { - Reference< XListEntrySink > xSink( m_xControlModel, UNO_QUERY ); - OSL_PRECOND( xSink.is(), "FormCellBindingHelper::setListSource: the object is no list entry sink!" ); - if ( xSink.is() ) - xSink->setListEntrySource( _rxSource ); - } +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isCellRangeListSource( const Reference< XListEntrySource >& _rxSource ) const +{ + return doesComponentSupport( _rxSource.get(), SERVICE_CELLRANGELISTSOURCE ); +} - //------------------------------------------------------------------------ - Reference< XInterface > FormCellBindingHelper::createDocumentDependentInstance( const ::rtl::OUString& _rService, const ::rtl::OUString& _rArgumentName, - const Any& _rArgumentValue ) const - { - Reference< XInterface > xReturn; +//------------------------------------------------------------------------ +bool FormCellBindingHelper::doesComponentSupport( const Reference< XInterface >& _rxComponent, const ::rtl::OUString& _rService ) const +{ + bool bDoes = false; + Reference< XServiceInfo > xSI( _rxComponent, UNO_QUERY ); + bDoes = xSI.is() && xSI->supportsService( _rService ); + return bDoes; +} + +//------------------------------------------------------------------------ +Reference< XValueBinding > FormCellBindingHelper::getCurrentBinding( ) const +{ + Reference< XValueBinding > xBinding; + Reference< XBindableValue > xBindable( m_xControlModel, UNO_QUERY ); + if ( xBindable.is() ) + xBinding = xBindable->getValueBinding(); + return xBinding; +} + +//------------------------------------------------------------------------ +Reference< XListEntrySource > FormCellBindingHelper::getCurrentListSource( ) const +{ + Reference< XListEntrySource > xSource; + Reference< XListEntrySink > xSink( m_xControlModel, UNO_QUERY ); + if ( xSink.is() ) + xSource = xSink->getListEntrySource(); + return xSource; +} + +//------------------------------------------------------------------------ +void FormCellBindingHelper::setBinding( const Reference< XValueBinding >& _rxBinding ) +{ + Reference< XBindableValue > xBindable( m_xControlModel, UNO_QUERY ); + OSL_PRECOND( xBindable.is(), "FormCellBindingHelper::setBinding: the object is not bindable!" ); + if ( xBindable.is() ) + xBindable->setValueBinding( _rxBinding ); +} + +//------------------------------------------------------------------------ +void FormCellBindingHelper::setListSource( const Reference< XListEntrySource >& _rxSource ) +{ + Reference< XListEntrySink > xSink( m_xControlModel, UNO_QUERY ); + OSL_PRECOND( xSink.is(), "FormCellBindingHelper::setListSource: the object is no list entry sink!" ); + if ( xSink.is() ) + xSink->setListEntrySource( _rxSource ); +} + +//------------------------------------------------------------------------ +Reference< XInterface > FormCellBindingHelper::createDocumentDependentInstance( const ::rtl::OUString& _rService, const ::rtl::OUString& _rArgumentName, + const Any& _rArgumentValue ) const +{ + Reference< XInterface > xReturn; - Reference< XMultiServiceFactory > xDocumentFactory( m_xDocument, UNO_QUERY ); - OSL_ENSURE( xDocumentFactory.is(), "FormCellBindingHelper::createDocumentDependentInstance: no document service factory!" ); - if ( xDocumentFactory.is() ) + Reference< XMultiServiceFactory > xDocumentFactory( m_xDocument, UNO_QUERY ); + OSL_ENSURE( xDocumentFactory.is(), "FormCellBindingHelper::createDocumentDependentInstance: no document service factory!" ); + if ( xDocumentFactory.is() ) + { + try { - try + if ( _rArgumentName.getLength() ) { - if ( _rArgumentName.getLength() ) - { - NamedValue aArg; - aArg.Name = _rArgumentName; - aArg.Value = _rArgumentValue; - - Sequence< Any > aArgs( 1 ); - aArgs[ 0 ] <<= aArg; - - xReturn = xDocumentFactory->createInstanceWithArguments( _rService, aArgs ); - } - else - { - xReturn = xDocumentFactory->createInstance( _rService ); - } + NamedValue aArg; + aArg.Name = _rArgumentName; + aArg.Value = _rArgumentValue; + + Sequence< Any > aArgs( 1 ); + aArgs[ 0 ] <<= aArg; + + xReturn = xDocumentFactory->createInstanceWithArguments( _rService, aArgs ); } - catch ( const Exception& ) + else { - OSL_ENSURE( sal_False, "FormCellBindingHelper::createDocumentDependentInstance: could not create the binding at the document!" ); + xReturn = xDocumentFactory->createInstance( _rService ); } } - return xReturn; + catch ( const Exception& ) + { + OSL_ENSURE( sal_False, "FormCellBindingHelper::createDocumentDependentInstance: could not create the binding at the document!" ); + } } + return xReturn; +} - //------------------------------------------------------------------------ - bool FormCellBindingHelper::doConvertAddressRepresentations( const ::rtl::OUString& _rInputProperty, const Any& _rInputValue, - const ::rtl::OUString& _rOutputProperty, Any& _rOutputValue, bool _bIsRange ) const SAL_THROW(()) +//------------------------------------------------------------------------ +bool FormCellBindingHelper::doConvertAddressRepresentations( const ::rtl::OUString& _rInputProperty, const Any& _rInputValue, + const ::rtl::OUString& _rOutputProperty, Any& _rOutputValue, bool _bIsRange ) const SAL_THROW(()) +{ + bool bSuccess = false; + + Reference< XPropertySet > xConverter( + createDocumentDependentInstance( + _bIsRange ? SERVICE_RANGEADDRESS_CONVERSION : SERVICE_ADDRESS_CONVERSION, + ::rtl::OUString(), + Any() + ), + UNO_QUERY + ); + OSL_ENSURE( xConverter.is(), "FormCellBindingHelper::doConvertAddressRepresentations: could not get a converter service!" ); + if ( xConverter.is() ) { - bool bSuccess = false; - - Reference< XPropertySet > xConverter( - createDocumentDependentInstance( - _bIsRange ? SERVICE_RANGEADDRESS_CONVERSION : SERVICE_ADDRESS_CONVERSION, - ::rtl::OUString(), - Any() - ), - UNO_QUERY - ); - OSL_ENSURE( xConverter.is(), "FormCellBindingHelper::doConvertAddressRepresentations: could not get a converter service!" ); - if ( xConverter.is() ) + try { - try - { - xConverter->setPropertyValue( _rInputProperty, _rInputValue ); - _rOutputValue = xConverter->getPropertyValue( _rOutputProperty ); - bSuccess = true; - } - catch( const Exception& ) - { - OSL_ENSURE( sal_False, "FormCellBindingHelper::doConvertAddressRepresentations: caught an exception!" ); - } + xConverter->setPropertyValue( _rInputProperty, _rInputValue ); + _rOutputValue = xConverter->getPropertyValue( _rOutputProperty ); + bSuccess = true; + } + catch( const Exception& ) + { + OSL_ENSURE( sal_False, "FormCellBindingHelper::doConvertAddressRepresentations: caught an exception!" ); } - - return bSuccess; } + return bSuccess; +} + //............................................................................ } // namespace xmloff //............................................................................ diff --git a/xmloff/source/forms/layerexport.cxx b/xmloff/source/forms/layerexport.cxx index 29641727f5..eb8c56b610 100644 --- a/xmloff/source/forms/layerexport.cxx +++ b/xmloff/source/forms/layerexport.cxx @@ -361,7 +361,7 @@ namespace xmloff else { bKnownPage = sal_True; - if (_bClear && m_aCurrentPageIds->second.size()) + if (_bClear && !m_aCurrentPageIds->second.empty() ) m_aCurrentPageIds->second.clear(); } @@ -375,7 +375,7 @@ namespace xmloff else { bKnownPage = sal_True; - if (_bClear && m_aCurrentPageReferring->second.size()) + if (_bClear && !m_aCurrentPageReferring->second.empty() ) m_aCurrentPageReferring->second.clear(); } return bKnownPage; @@ -488,7 +488,7 @@ namespace xmloff else { // step up - while ((nChildPos >= xLoop->getCount()) && aContainerHistory.size()) + while ((nChildPos >= xLoop->getCount()) && !aContainerHistory.empty() ) { xLoop = aContainerHistory.top(); aContainerHistory.pop(); @@ -669,7 +669,7 @@ namespace xmloff // ---------------------------------- // determine the column style - if ( aPropertyStates.size() ) + if ( !aPropertyStates.empty() ) { // add to the style pool ::rtl::OUString sColumnStyleName = m_rContext.GetAutoStylePool()->Add( XML_STYLE_FAMILY_CONTROL_ID, aPropertyStates ); diff --git a/xmloff/source/forms/layerimport.cxx b/xmloff/source/forms/layerimport.cxx index bb152eb8ad..7c8a7152f7 100644 --- a/xmloff/source/forms/layerimport.cxx +++ b/xmloff/source/forms/layerimport.cxx @@ -64,6 +64,7 @@ #include "xformsimport.hxx" #include #include "xmlnmspe.hxx" +#include #include SV_IMPL_REF( SvXMLStylesContext ); @@ -73,609 +74,586 @@ namespace xmloff { //......................................................................... - using namespace ::com::sun::star::uno; - using namespace ::com::sun::star::awt; - using namespace ::com::sun::star::lang; - using namespace ::com::sun::star::beans; - using namespace ::com::sun::star::container; - using namespace ::com::sun::star::drawing; - using namespace ::com::sun::star::xml; - using namespace ::com::sun::star::util; - using namespace ::com::sun::star::form; - using namespace ::com::sun::star::sdb; - - //===================================================================== - //= OFormLayerXMLImport_Impl - //===================================================================== - //--------------------------------------------------------------------- - OFormLayerXMLImport_Impl::OFormLayerXMLImport_Impl(SvXMLImport& _rImporter) - :m_rImporter(_rImporter) - ,m_pAutoStyles(NULL) - { - // build the attribute2property map - // string properties which are exported as attributes - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_NAME), PROPERTY_NAME); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_IMAGE_DATA), PROPERTY_IMAGEURL); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_LABEL), PROPERTY_LABEL); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_TARGET_LOCATION), PROPERTY_TARGETURL); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_TITLE), PROPERTY_TITLE); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_TARGET_FRAME), PROPERTY_TARGETFRAME, "_blank"); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getDatabaseAttributeName(DA_DATA_FIELD), PROPERTY_DATAFIELD); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getFormAttributeName(faCommand), PROPERTY_COMMAND); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getFormAttributeName(faDatasource), PROPERTY_DATASOURCENAME); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getFormAttributeName(faFilter), PROPERTY_FILTER); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getFormAttributeName(faOrder), PROPERTY_ORDER); - - // properties not added because they're already present in another form - OSL_ENSURE( - 0 == ::rtl::OUString::createFromAscii(OAttributeMetaData::getCommonControlAttributeName(CCA_TARGET_LOCATION)).compareToAscii( - OAttributeMetaData::getFormAttributeName(faAction)), - "OFormLayerXMLImport_Impl::OFormLayerXMLImport_Impl: invalid attribute names (1)!"); - // if this fails, we would have to add a translation from faAction->PROPERTY_TARGETURL - // We did not because we already have one CCA_TARGET_LOCATION->PROPERTY_TARGETURL, - // and CCA_TARGET_LOCATION and faAction should be represented by the same attribute - - OSL_ENSURE( - 0 == ::rtl::OUString::createFromAscii(OAttributeMetaData::getCommonControlAttributeName(CCA_NAME)).compareToAscii( - OAttributeMetaData::getFormAttributeName(faName)), - "OFormLayerXMLImport_Impl::OFormLayerXMLImport_Impl: invalid attribute names (2)!"); - // the same for faName, CCA_NAME and PROPERTY_NAME - - // boolean properties which are exported as attributes - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_CURRENT_SELECTED), PROPERTY_STATE, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_DISABLED), PROPERTY_ENABLED, sal_False, sal_True); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_DROPDOWN), PROPERTY_DROPDOWN, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_PRINTABLE), PROPERTY_PRINTABLE, sal_True); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_READONLY), PROPERTY_READONLY, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_SELECTED), PROPERTY_DEFAULT_STATE, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_TAB_STOP), PROPERTY_TABSTOP, sal_True); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getDatabaseAttributeName(DA_CONVERT_EMPTY), PROPERTY_EMPTY_IS_NULL, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getSpecialAttributeName(SCA_VALIDATION), PROPERTY_STRICTFORMAT, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getSpecialAttributeName(SCA_MULTI_LINE), PROPERTY_MULTILINE, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getSpecialAttributeName(SCA_AUTOMATIC_COMPLETION), PROPERTY_AUTOCOMPLETE, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getSpecialAttributeName(SCA_MULTIPLE), PROPERTY_MULTISELECTION, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getSpecialAttributeName(SCA_DEFAULT_BUTTON), PROPERTY_DEFAULTBUTTON, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getSpecialAttributeName(SCA_IS_TRISTATE), PROPERTY_TRISTATE, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getFormAttributeName(faAllowDeletes), PROPERTY_ALLOWDELETES, sal_True); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getFormAttributeName(faAllowInserts), PROPERTY_ALLOWINSERTS, sal_True); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getFormAttributeName(faAllowUpdates), PROPERTY_ALLOWUPDATES, sal_True); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getFormAttributeName(faApplyFilter), PROPERTY_APPLYFILTER, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getFormAttributeName(faEscapeProcessing), PROPERTY_ESCAPEPROCESSING, sal_True); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getFormAttributeName(faIgnoreResult), PROPERTY_IGNORERESULT, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getSpecialAttributeName( SCA_TOGGLE ), PROPERTY_TOGGLE, sal_False ); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getSpecialAttributeName( SCA_FOCUS_ON_CLICK ), PROPERTY_FOCUS_ON_CLICK, sal_True ); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getDatabaseAttributeName( DA_INPUT_REQUIRED ), PROPERTY_INPUT_REQUIRED, sal_False ); - - // the int16 attributes - m_aAttributeMetaData.addInt16Property( - OAttributeMetaData::getCommonControlAttributeName(CCA_MAX_LENGTH), PROPERTY_MAXTEXTLENGTH, 0); - m_aAttributeMetaData.addInt16Property( - OAttributeMetaData::getCommonControlAttributeName(CCA_SIZE), PROPERTY_LINECOUNT, 5); - m_aAttributeMetaData.addInt16Property( - OAttributeMetaData::getCommonControlAttributeName(CCA_TAB_INDEX), PROPERTY_TABINDEX, 0); - m_aAttributeMetaData.addInt16Property( - OAttributeMetaData::getDatabaseAttributeName(DA_BOUND_COLUMN), PROPERTY_BOUNDCOLUMN, 0); - - // the int32 attributes - m_aAttributeMetaData.addInt32Property( - OAttributeMetaData::getSpecialAttributeName( SCA_PAGE_STEP_SIZE ), PROPERTY_BLOCK_INCREMENT, 10 ); - - // the enum attributes - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getCommonControlAttributeName( CCA_VISUAL_EFFECT ), PROPERTY_VISUAL_EFFECT, - VisualEffect::LOOK3D, OEnumMapper::getEnumMap( OEnumMapper::epVisualEffect ), - &::getCppuType( static_cast< sal_Int16* >( NULL ) ) ); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getCommonControlAttributeName( CCA_ORIENTATION ), PROPERTY_ORIENTATION, - ScrollBarOrientation::HORIZONTAL, OEnumMapper::getEnumMap( OEnumMapper::epOrientation ), - &::getCppuType( static_cast< sal_Int32* >( NULL ) ) ); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_BUTTON_TYPE), PROPERTY_BUTTONTYPE, - FormButtonType_PUSH, OEnumMapper::getEnumMap(OEnumMapper::epButtonType), - &::getCppuType( static_cast(NULL) )); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getDatabaseAttributeName(DA_LIST_SOURCE_TYPE), PROPERTY_LISTSOURCETYPE, - ListSourceType_VALUELIST, OEnumMapper::getEnumMap(OEnumMapper::epListSourceType), - &::getCppuType( static_cast(NULL) )); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getSpecialAttributeName(SCA_STATE), PROPERTY_DEFAULT_STATE, STATE_NOCHECK, - OEnumMapper::getEnumMap(OEnumMapper::epCheckState), - &::getCppuType( static_cast< sal_Int16* >(NULL))); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getSpecialAttributeName(SCA_CURRENT_STATE), PROPERTY_STATE, STATE_NOCHECK, - OEnumMapper::getEnumMap(OEnumMapper::epCheckState), - &::getCppuType( static_cast< sal_Int16* >(NULL))); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getFormAttributeName(faEnctype), PROPERTY_SUBMIT_ENCODING, - FormSubmitEncoding_URL, OEnumMapper::getEnumMap(OEnumMapper::epSubmitEncoding), - &::getCppuType( static_cast(NULL) )); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getFormAttributeName(faMethod), PROPERTY_SUBMIT_METHOD, - FormSubmitMethod_GET, OEnumMapper::getEnumMap(OEnumMapper::epSubmitMethod), - &::getCppuType( static_cast(NULL) )); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getFormAttributeName(faCommandType), PROPERTY_COMMAND_TYPE, - CommandType::COMMAND, OEnumMapper::getEnumMap(OEnumMapper::epCommandType)); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getFormAttributeName(faNavigationMode), PROPERTY_NAVIGATION, - NavigationBarMode_NONE, OEnumMapper::getEnumMap(OEnumMapper::epNavigationType), - &::getCppuType( static_cast(NULL) )); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getFormAttributeName(faTabbingCycle), PROPERTY_CYCLE, - TabulatorCycle_RECORDS, OEnumMapper::getEnumMap(OEnumMapper::epTabCyle), - &::getCppuType( static_cast(NULL) )); - - // initialize our style map - m_xPropertyHandlerFactory = new OControlPropertyHandlerFactory(); - ::vos::ORef< XMLPropertySetMapper > xStylePropertiesMapper = new XMLPropertySetMapper(getControlStylePropertyMap(), m_xPropertyHandlerFactory.getBodyPtr()); - m_xImportMapper = new SvXMLImportPropertyMapper(xStylePropertiesMapper.getBodyPtr(), _rImporter); - - // 'initialize' - m_aCurrentPageIds = m_aControlIds.end(); - } +using namespace ::com::sun::star::uno; +using namespace ::com::sun::star::awt; +using namespace ::com::sun::star::lang; +using namespace ::com::sun::star::beans; +using namespace ::com::sun::star::container; +using namespace ::com::sun::star::drawing; +using namespace ::com::sun::star::xml; +using namespace ::com::sun::star::util; +using namespace ::com::sun::star::form; +using namespace ::com::sun::star::sdb; + +//===================================================================== +//= OFormLayerXMLImport_Impl +//===================================================================== +//--------------------------------------------------------------------- +OFormLayerXMLImport_Impl::OFormLayerXMLImport_Impl(SvXMLImport& _rImporter) + :m_rImporter(_rImporter) + ,m_pAutoStyles(NULL) +{ + // build the attribute2property map + // string properties which are exported as attributes + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_NAME), PROPERTY_NAME); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_IMAGE_DATA), PROPERTY_IMAGEURL); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_LABEL), PROPERTY_LABEL); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_TARGET_LOCATION), PROPERTY_TARGETURL); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_TITLE), PROPERTY_TITLE); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_TARGET_FRAME), PROPERTY_TARGETFRAME, "_blank"); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getDatabaseAttributeName(DA_DATA_FIELD), PROPERTY_DATAFIELD); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getFormAttributeName(faCommand), PROPERTY_COMMAND); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getFormAttributeName(faDatasource), PROPERTY_DATASOURCENAME); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getFormAttributeName(faFilter), PROPERTY_FILTER); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getFormAttributeName(faOrder), PROPERTY_ORDER); + + // properties not added because they're already present in another form + OSL_ENSURE( + 0 == ::rtl::OUString::createFromAscii(OAttributeMetaData::getCommonControlAttributeName(CCA_TARGET_LOCATION)).compareToAscii( + OAttributeMetaData::getFormAttributeName(faAction)), + "OFormLayerXMLImport_Impl::OFormLayerXMLImport_Impl: invalid attribute names (1)!"); + // if this fails, we would have to add a translation from faAction->PROPERTY_TARGETURL + // We did not because we already have one CCA_TARGET_LOCATION->PROPERTY_TARGETURL, + // and CCA_TARGET_LOCATION and faAction should be represented by the same attribute + + OSL_ENSURE( + 0 == ::rtl::OUString::createFromAscii(OAttributeMetaData::getCommonControlAttributeName(CCA_NAME)).compareToAscii( + OAttributeMetaData::getFormAttributeName(faName)), + "OFormLayerXMLImport_Impl::OFormLayerXMLImport_Impl: invalid attribute names (2)!"); + // the same for faName, CCA_NAME and PROPERTY_NAME + + // boolean properties which are exported as attributes + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_CURRENT_SELECTED), PROPERTY_STATE, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_DISABLED), PROPERTY_ENABLED, sal_False, sal_True); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_DROPDOWN), PROPERTY_DROPDOWN, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_PRINTABLE), PROPERTY_PRINTABLE, sal_True); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_READONLY), PROPERTY_READONLY, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_SELECTED), PROPERTY_DEFAULT_STATE, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_TAB_STOP), PROPERTY_TABSTOP, sal_True); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getDatabaseAttributeName(DA_CONVERT_EMPTY), PROPERTY_EMPTY_IS_NULL, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getSpecialAttributeName(SCA_VALIDATION), PROPERTY_STRICTFORMAT, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getSpecialAttributeName(SCA_MULTI_LINE), PROPERTY_MULTILINE, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getSpecialAttributeName(SCA_AUTOMATIC_COMPLETION), PROPERTY_AUTOCOMPLETE, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getSpecialAttributeName(SCA_MULTIPLE), PROPERTY_MULTISELECTION, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getSpecialAttributeName(SCA_DEFAULT_BUTTON), PROPERTY_DEFAULTBUTTON, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getSpecialAttributeName(SCA_IS_TRISTATE), PROPERTY_TRISTATE, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getFormAttributeName(faAllowDeletes), PROPERTY_ALLOWDELETES, sal_True); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getFormAttributeName(faAllowInserts), PROPERTY_ALLOWINSERTS, sal_True); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getFormAttributeName(faAllowUpdates), PROPERTY_ALLOWUPDATES, sal_True); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getFormAttributeName(faApplyFilter), PROPERTY_APPLYFILTER, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getFormAttributeName(faEscapeProcessing), PROPERTY_ESCAPEPROCESSING, sal_True); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getFormAttributeName(faIgnoreResult), PROPERTY_IGNORERESULT, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getSpecialAttributeName( SCA_TOGGLE ), PROPERTY_TOGGLE, sal_False ); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getSpecialAttributeName( SCA_FOCUS_ON_CLICK ), PROPERTY_FOCUS_ON_CLICK, sal_True ); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getDatabaseAttributeName( DA_INPUT_REQUIRED ), PROPERTY_INPUT_REQUIRED, sal_False ); + + // the int16 attributes + m_aAttributeMetaData.addInt16Property( + OAttributeMetaData::getCommonControlAttributeName(CCA_MAX_LENGTH), PROPERTY_MAXTEXTLENGTH, 0); + m_aAttributeMetaData.addInt16Property( + OAttributeMetaData::getCommonControlAttributeName(CCA_SIZE), PROPERTY_LINECOUNT, 5); + m_aAttributeMetaData.addInt16Property( + OAttributeMetaData::getCommonControlAttributeName(CCA_TAB_INDEX), PROPERTY_TABINDEX, 0); + m_aAttributeMetaData.addInt16Property( + OAttributeMetaData::getDatabaseAttributeName(DA_BOUND_COLUMN), PROPERTY_BOUNDCOLUMN, 0); + + // the int32 attributes + m_aAttributeMetaData.addInt32Property( + OAttributeMetaData::getSpecialAttributeName( SCA_PAGE_STEP_SIZE ), PROPERTY_BLOCK_INCREMENT, 10 ); + + // the enum attributes + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getCommonControlAttributeName( CCA_VISUAL_EFFECT ), PROPERTY_VISUAL_EFFECT, + VisualEffect::LOOK3D, OEnumMapper::getEnumMap( OEnumMapper::epVisualEffect ), + &::getCppuType( static_cast< sal_Int16* >( NULL ) ) ); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getCommonControlAttributeName( CCA_ORIENTATION ), PROPERTY_ORIENTATION, + ScrollBarOrientation::HORIZONTAL, OEnumMapper::getEnumMap( OEnumMapper::epOrientation ), + &::getCppuType( static_cast< sal_Int32* >( NULL ) ) ); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_BUTTON_TYPE), PROPERTY_BUTTONTYPE, + FormButtonType_PUSH, OEnumMapper::getEnumMap(OEnumMapper::epButtonType), + &::getCppuType( static_cast(NULL) )); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getDatabaseAttributeName(DA_LIST_SOURCE_TYPE), PROPERTY_LISTSOURCETYPE, + ListSourceType_VALUELIST, OEnumMapper::getEnumMap(OEnumMapper::epListSourceType), + &::getCppuType( static_cast(NULL) )); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getSpecialAttributeName(SCA_STATE), PROPERTY_DEFAULT_STATE, STATE_NOCHECK, + OEnumMapper::getEnumMap(OEnumMapper::epCheckState), + &::getCppuType( static_cast< sal_Int16* >(NULL))); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getSpecialAttributeName(SCA_CURRENT_STATE), PROPERTY_STATE, STATE_NOCHECK, + OEnumMapper::getEnumMap(OEnumMapper::epCheckState), + &::getCppuType( static_cast< sal_Int16* >(NULL))); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getFormAttributeName(faEnctype), PROPERTY_SUBMIT_ENCODING, + FormSubmitEncoding_URL, OEnumMapper::getEnumMap(OEnumMapper::epSubmitEncoding), + &::getCppuType( static_cast(NULL) )); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getFormAttributeName(faMethod), PROPERTY_SUBMIT_METHOD, + FormSubmitMethod_GET, OEnumMapper::getEnumMap(OEnumMapper::epSubmitMethod), + &::getCppuType( static_cast(NULL) )); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getFormAttributeName(faCommandType), PROPERTY_COMMAND_TYPE, + CommandType::COMMAND, OEnumMapper::getEnumMap(OEnumMapper::epCommandType)); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getFormAttributeName(faNavigationMode), PROPERTY_NAVIGATION, + NavigationBarMode_NONE, OEnumMapper::getEnumMap(OEnumMapper::epNavigationType), + &::getCppuType( static_cast(NULL) )); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getFormAttributeName(faTabbingCycle), PROPERTY_CYCLE, + TabulatorCycle_RECORDS, OEnumMapper::getEnumMap(OEnumMapper::epTabCyle), + &::getCppuType( static_cast(NULL) )); + + // initialize our style map + m_xPropertyHandlerFactory = new OControlPropertyHandlerFactory(); + ::vos::ORef< XMLPropertySetMapper > xStylePropertiesMapper = new XMLPropertySetMapper(getControlStylePropertyMap(), m_xPropertyHandlerFactory.getBodyPtr()); + m_xImportMapper = new SvXMLImportPropertyMapper(xStylePropertiesMapper.getBodyPtr(), _rImporter); + + // 'initialize' + m_aCurrentPageIds = m_aControlIds.end(); +} + +//--------------------------------------------------------------------- +OFormLayerXMLImport_Impl::~OFormLayerXMLImport_Impl() +{ + // outlined to allow forward declaration of OAttribute2Property in the header - //--------------------------------------------------------------------- - OFormLayerXMLImport_Impl::~OFormLayerXMLImport_Impl() - { - // outlined to allow forward declaration of OAttribute2Property in the header + if (m_pAutoStyles) + m_pAutoStyles->ReleaseRef(); +} - if (m_pAutoStyles) - m_pAutoStyles->ReleaseRef(); - } +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::setAutoStyleContext(SvXMLStylesContext* _pNewContext) +{ + OSL_ENSURE(!m_pAutoStyles, "OFormLayerXMLImport_Impl::setAutoStyleContext: not to be called twice!"); + m_pAutoStyles = _pNewContext; + if (m_pAutoStyles) + m_pAutoStyles->AddRef(); +} + +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::applyControlNumberStyle(const Reference< XPropertySet >& _rxControlModel, const ::rtl::OUString& _rControlNumerStyleName) +{ + OSL_ENSURE(_rxControlModel.is() && (0 != _rControlNumerStyleName.getLength()), + "OFormLayerXMLImport_Impl::applyControlNumberStyle: invalid arguments (this will crash)!"); - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::setAutoStyleContext(SvXMLStylesContext* _pNewContext) + OSL_ENSURE(m_pAutoStyles, "OFormLayerXMLImport_Impl::applyControlNumberStyle: have no auto style context!"); + if (!m_pAutoStyles) { - OSL_ENSURE(!m_pAutoStyles, "OFormLayerXMLImport_Impl::setAutoStyleContext: not to be called twice!"); - m_pAutoStyles = _pNewContext; + m_pAutoStyles = m_rImporter.GetShapeImport()->GetAutoStylesContext(); if (m_pAutoStyles) m_pAutoStyles->AddRef(); } - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::applyControlNumberStyle(const Reference< XPropertySet >& _rxControlModel, const ::rtl::OUString& _rControlNumerStyleName) + if (m_pAutoStyles) { - OSL_ENSURE(_rxControlModel.is() && (0 != _rControlNumerStyleName.getLength()), - "OFormLayerXMLImport_Impl::applyControlNumberStyle: invalid arguments (this will crash)!"); - - OSL_ENSURE(m_pAutoStyles, "OFormLayerXMLImport_Impl::applyControlNumberStyle: have no auto style context!"); - if (!m_pAutoStyles) + const SvXMLStyleContext* pStyle = m_pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_DATA_STYLE, _rControlNumerStyleName); + if (pStyle) { - m_pAutoStyles = m_rImporter.GetShapeImport()->GetAutoStylesContext(); - if (m_pAutoStyles) - m_pAutoStyles->AddRef(); - } + const SvXMLNumFormatContext* pDataStyle = static_cast(pStyle); - if (m_pAutoStyles) - { - const SvXMLStyleContext* pStyle = m_pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_DATA_STYLE, _rControlNumerStyleName); - if (pStyle) + // set this format at the control model + try { - const SvXMLNumFormatContext* pDataStyle = static_cast(pStyle); - - // set this format at the control model - try + // the models number format supplier and formats + Reference< XNumberFormatsSupplier > xFormatsSupplier; + _rxControlModel->getPropertyValue(PROPERTY_FORMATSSUPPLIER) >>= xFormatsSupplier; + Reference< XNumberFormats > xFormats; + if (xFormatsSupplier.is()) + xFormats = xFormatsSupplier->getNumberFormats(); + OSL_ENSURE(xFormats.is(), "OFormLayerXMLImport_Impl::applyControlNumberStyle: could not obtain the controls number formats!"); + + // obtain a key + if (xFormats.is()) { - // the models number format supplier and formats - Reference< XNumberFormatsSupplier > xFormatsSupplier; - _rxControlModel->getPropertyValue(PROPERTY_FORMATSSUPPLIER) >>= xFormatsSupplier; - Reference< XNumberFormats > xFormats; - if (xFormatsSupplier.is()) - xFormats = xFormatsSupplier->getNumberFormats(); - OSL_ENSURE(xFormats.is(), "OFormLayerXMLImport_Impl::applyControlNumberStyle: could not obtain the controls number formats!"); - - // obtain a key - if (xFormats.is()) - { - sal_Int32 nFormatKey = const_cast(pDataStyle)->CreateAndInsert( xFormatsSupplier ); - OSL_ENSURE(-1 != nFormatKey, "OFormLayerXMLImport_Impl::applyControlNumberStyle: could not obtain a format key!"); + sal_Int32 nFormatKey = const_cast(pDataStyle)->CreateAndInsert( xFormatsSupplier ); + OSL_ENSURE(-1 != nFormatKey, "OFormLayerXMLImport_Impl::applyControlNumberStyle: could not obtain a format key!"); - // set the format on the control model - _rxControlModel->setPropertyValue(PROPERTY_FORMATKEY, makeAny(nFormatKey)); - } - } - catch(const Exception&) - { - OSL_ENSURE(sal_False, "OFormLayerXMLImport_Impl::applyControlNumberStyle: couldn't set the format!"); + // set the format on the control model + _rxControlModel->setPropertyValue(PROPERTY_FORMATKEY, makeAny(nFormatKey)); } } - else - OSL_ENSURE(sal_False, "OFormLayerXMLImport_Impl::applyControlNumberStyle: did not find the style with the given name!"); + catch(const Exception&) + { + OSL_ENSURE(sal_False, "OFormLayerXMLImport_Impl::applyControlNumberStyle: couldn't set the format!"); + } } + else + OSL_ENSURE(sal_False, "OFormLayerXMLImport_Impl::applyControlNumberStyle: did not find the style with the given name!"); } +} - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::registerCellValueBinding( const Reference< XPropertySet >& _rxControlModel, const ::rtl::OUString& _rCellAddress ) - { - OSL_ENSURE( _rxControlModel.is() && _rCellAddress.getLength(), - "OFormLayerXMLImport_Impl::registerCellValueBinding: invalid arguments!" ); - m_aCellValueBindings.push_back( ModelStringPair( _rxControlModel, _rCellAddress ) ); - } - - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::registerXFormsValueBinding( - const Reference< XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rBindingID ) - { - // TODO: is an empty binding name allowed? - OSL_ENSURE( _rxControlModel.is(), "need model" ); - - m_aXFormsValueBindings.push_back( - ModelStringPair( _rxControlModel, _rBindingID ) ); - } - - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::registerXFormsListBinding( - const Reference< XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rBindingID ) - { - // TODO: is an empty binding name allowed? - OSL_ENSURE( _rxControlModel.is(), "need model" ); - - m_aXFormsListBindings.push_back( - ModelStringPair( _rxControlModel, _rBindingID ) ); - } - - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::registerXFormsSubmission( - const Reference< XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rSubmissionID ) - { - // TODO: is an empty binding name allowed? - OSL_ENSURE( _rxControlModel.is(), "need model" ); - - m_aXFormsSubmissions.push_back( - ModelStringPair( _rxControlModel, _rSubmissionID ) ); - } - - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::registerCellRangeListSource( const Reference< XPropertySet >& _rxControlModel, const ::rtl::OUString& _rCellRangeAddress ) - { - OSL_ENSURE( _rxControlModel.is() && _rCellRangeAddress.getLength(), - "OFormLayerXMLImport_Impl::registerCellRangeListSource: invalid arguments!" ); - m_aCellRangeListSources.push_back( ModelStringPair( _rxControlModel, _rCellRangeAddress ) ); - } +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::registerCellValueBinding( const Reference< XPropertySet >& _rxControlModel, const ::rtl::OUString& _rCellAddress ) +{ + OSL_ENSURE( _rxControlModel.is() && _rCellAddress.getLength(), + "OFormLayerXMLImport_Impl::registerCellValueBinding: invalid arguments!" ); + m_aCellValueBindings.push_back( ModelStringPair( _rxControlModel, _rCellAddress ) ); +} + +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::registerXFormsValueBinding( + const Reference< XPropertySet >& _rxControlModel, + const ::rtl::OUString& _rBindingID ) +{ + // TODO: is an empty binding name allowed? + OSL_ENSURE( _rxControlModel.is(), "need model" ); - //--------------------------------------------------------------------- - IControlIdMap& OFormLayerXMLImport_Impl::getControlIdMap() - { - return *this; - } + m_aXFormsValueBindings.push_back( + ModelStringPair( _rxControlModel, _rBindingID ) ); +} - //--------------------------------------------------------------------- - OAttribute2Property& OFormLayerXMLImport_Impl::getAttributeMap() - { - return m_aAttributeMetaData; - } +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::registerXFormsListBinding( + const Reference< XPropertySet >& _rxControlModel, + const ::rtl::OUString& _rBindingID ) +{ + // TODO: is an empty binding name allowed? + OSL_ENSURE( _rxControlModel.is(), "need model" ); - //--------------------------------------------------------------------- - Reference< XMultiServiceFactory > OFormLayerXMLImport_Impl::getServiceFactory() - { - // #110680# - // return ::comphelper::getProcessServiceFactory(); - return m_rImporter.getServiceFactory(); - } + m_aXFormsListBindings.push_back( + ModelStringPair( _rxControlModel, _rBindingID ) ); +} - //--------------------------------------------------------------------- - SvXMLImport& OFormLayerXMLImport_Impl::getGlobalContext() - { - return m_rImporter; - } +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::registerXFormsSubmission( + const Reference< XPropertySet >& _rxControlModel, + const ::rtl::OUString& _rSubmissionID ) +{ + // TODO: is an empty binding name allowed? + OSL_ENSURE( _rxControlModel.is(), "need model" ); - //--------------------------------------------------------------------- - const SvXMLStyleContext* OFormLayerXMLImport_Impl::getStyleElement(const ::rtl::OUString& _rStyleName) const - { - OSL_ENSURE( m_pAutoStyles, "OFormLayerXMLImport_Impl::getStyleElement: have no auto style context!" ); - // did you use setAutoStyleContext? - - const SvXMLStyleContext* pControlStyle = - m_pAutoStyles ? m_pAutoStyles->FindStyleChildContext( XML_STYLE_FAMILY_TEXT_PARAGRAPH, _rStyleName ) : NULL; - OSL_ENSURE( pControlStyle || !m_pAutoStyles, - ::rtl::OString( "OFormLayerXMLImport_Impl::getStyleElement: did not find the style named \"" ) - += ::rtl::OString( _rStyleName.getStr(), _rStyleName.getLength(), RTL_TEXTENCODING_ASCII_US ) - += ::rtl::OString( "\"!" ) ); - return pControlStyle; - } + m_aXFormsSubmissions.push_back( + ModelStringPair( _rxControlModel, _rSubmissionID ) ); +} - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::enterEventContext() - { - // install our own translation table. We need to disable the other tables because of name conflicts. - m_rImporter.GetEventImport().PushTranslationTable(); - m_rImporter.GetEventImport().AddTranslationTable(g_pFormsEventTranslation); - } +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::registerCellRangeListSource( const Reference< XPropertySet >& _rxControlModel, const ::rtl::OUString& _rCellRangeAddress ) +{ + OSL_ENSURE( _rxControlModel.is() && _rCellRangeAddress.getLength(), + "OFormLayerXMLImport_Impl::registerCellRangeListSource: invalid arguments!" ); + m_aCellRangeListSources.push_back( ModelStringPair( _rxControlModel, _rCellRangeAddress ) ); +} +//--------------------------------------------------------------------- +const SvXMLStyleContext* OFormLayerXMLImport_Impl::getStyleElement(const ::rtl::OUString& _rStyleName) const +{ + OSL_ENSURE( m_pAutoStyles, "OFormLayerXMLImport_Impl::getStyleElement: have no auto style context!" ); + // did you use setAutoStyleContext? + + const SvXMLStyleContext* pControlStyle = + m_pAutoStyles ? m_pAutoStyles->FindStyleChildContext( XML_STYLE_FAMILY_TEXT_PARAGRAPH, _rStyleName ) : NULL; + OSL_ENSURE( pControlStyle || !m_pAutoStyles, + ::rtl::OString( "OFormLayerXMLImport_Impl::getStyleElement: did not find the style named \"" ) + += ::rtl::OString( _rStyleName.getStr(), _rStyleName.getLength(), RTL_TEXTENCODING_ASCII_US ) + += ::rtl::OString( "\"!" ) ); + return pControlStyle; +} + +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::enterEventContext() +{ + // install our own translation table. We need to disable the other tables because of name conflicts. + m_rImporter.GetEventImport().PushTranslationTable(); + m_rImporter.GetEventImport().AddTranslationTable(g_pFormsEventTranslation); +} - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::leaveEventContext() - { - // install the original event tables. - m_rImporter.GetEventImport().PopTranslationTable(); - } +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::leaveEventContext() +{ + // install the original event tables. + m_rImporter.GetEventImport().PopTranslationTable(); +} - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::registerControlId(const Reference< XPropertySet >& _rxControl, const ::rtl::OUString& _rId) - { - OSL_ENSURE(m_aCurrentPageIds != m_aControlIds.end(), "OFormLayerXMLImport_Impl::registerControlId: no current page!"); - OSL_ENSURE(_rId.getLength(), "OFormLayerXMLImport_Impl::registerControlId: invalid (empty) control id!"); +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::registerControlId(const Reference< XPropertySet >& _rxControl, const ::rtl::OUString& _rId) +{ + OSL_ENSURE(m_aCurrentPageIds != m_aControlIds.end(), "OFormLayerXMLImport_Impl::registerControlId: no current page!"); + OSL_ENSURE(_rId.getLength(), "OFormLayerXMLImport_Impl::registerControlId: invalid (empty) control id!"); - OSL_ENSURE(m_aCurrentPageIds->second.end() == m_aCurrentPageIds->second.find(_rId), "OFormLayerXMLImport_Impl::registerControlId: control id already used!"); - m_aCurrentPageIds->second[_rId] = _rxControl; - } + OSL_ENSURE(m_aCurrentPageIds->second.end() == m_aCurrentPageIds->second.find(_rId), "OFormLayerXMLImport_Impl::registerControlId: control id already used!"); + m_aCurrentPageIds->second[_rId] = _rxControl; +} - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::registerControlReferences(const Reference< XPropertySet >& _rxControl, const ::rtl::OUString& _rReferringControls) - { - OSL_ENSURE(_rReferringControls.getLength(), "OFormLayerXMLImport_Impl::registerControlReferences: invalid (empty) control id list!"); - OSL_ENSURE(_rxControl.is(), "OFormLayerXMLImport_Impl::registerControlReferences: invalid (NULL) control!"); - m_aControlReferences.push_back( ModelStringPair( _rxControl, _rReferringControls ) ); - } +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::registerControlReferences(const Reference< XPropertySet >& _rxControl, const ::rtl::OUString& _rReferringControls) +{ + OSL_ENSURE(_rReferringControls.getLength(), "OFormLayerXMLImport_Impl::registerControlReferences: invalid (empty) control id list!"); + OSL_ENSURE(_rxControl.is(), "OFormLayerXMLImport_Impl::registerControlReferences: invalid (NULL) control!"); + m_aControlReferences.push_back( ModelStringPair( _rxControl, _rReferringControls ) ); +} - //--------------------------------------------------------------------- - ::vos::ORef< SvXMLImportPropertyMapper > OFormLayerXMLImport_Impl::getStylePropertyMapper() const - { - return m_xImportMapper; - } +//--------------------------------------------------------------------- +::vos::ORef< SvXMLImportPropertyMapper > OFormLayerXMLImport_Impl::getStylePropertyMapper() const +{ + return m_xImportMapper; +} - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::startPage(const Reference< XDrawPage >& _rxDrawPage) - { - m_xCurrentPageFormsSupp.clear(); - - OSL_ENSURE(_rxDrawPage.is(), "OFormLayerXMLImport_Impl::startPage: NULL page!"); - m_xCurrentPageFormsSupp = m_xCurrentPageFormsSupp.query( _rxDrawPage ); - OSL_ENSURE( m_xCurrentPageFormsSupp.is(), "OFormLayerXMLImport_Impl::startPage: invalid draw page (no XFormsSupplier)!" ); - if ( !m_xCurrentPageFormsSupp.is() ) - return; - - // add a new entry to our page map - ::std::pair< MapDrawPage2MapIterator, bool > aPagePosition; - aPagePosition = - m_aControlIds.insert(MapDrawPage2Map::value_type(_rxDrawPage, MapString2PropertySet())); - OSL_ENSURE(aPagePosition.second, "OFormLayerXMLImport_Impl::startPage: already imported this page!"); - m_aCurrentPageIds = aPagePosition.first; - } +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::startPage(const Reference< XDrawPage >& _rxDrawPage) +{ + m_xCurrentPageFormsSupp.clear(); + + OSL_ENSURE(_rxDrawPage.is(), "OFormLayerXMLImport_Impl::startPage: NULL page!"); + m_xCurrentPageFormsSupp = m_xCurrentPageFormsSupp.query( _rxDrawPage ); + OSL_ENSURE( m_xCurrentPageFormsSupp.is(), "OFormLayerXMLImport_Impl::startPage: invalid draw page (no XFormsSupplier)!" ); + if ( !m_xCurrentPageFormsSupp.is() ) + return; + + // add a new entry to our page map + ::std::pair< MapDrawPage2MapIterator, bool > aPagePosition; + aPagePosition = + m_aControlIds.insert(MapDrawPage2Map::value_type(_rxDrawPage, MapString2PropertySet())); + OSL_ENSURE(aPagePosition.second, "OFormLayerXMLImport_Impl::startPage: already imported this page!"); + m_aCurrentPageIds = aPagePosition.first; +} + +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::endPage() +{ + OSL_ENSURE( m_xCurrentPageFormsSupp.is(), "OFormLayerXMLImport_Impl::endPage: sure you called startPage before?" ); - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::endPage() + // do some knittings for the controls which are referring to each other + try { - OSL_ENSURE( m_xCurrentPageFormsSupp.is(), "OFormLayerXMLImport_Impl::endPage: sure you called startPage before?" ); - - // do some knittings for the controls which are referring to each other - try + static const sal_Unicode s_nSeparator = ','; + ::rtl::OUString sReferring; + ::rtl::OUString sCurrentReferring; + ::rtl::OUString sSeparator(&s_nSeparator, 1); + Reference< XPropertySet > xCurrentReferring; + sal_Int32 nSeparator, nPrevSep; + ::std::vector< ModelStringPair >::const_iterator aEnd = m_aControlReferences.end(); + for ( ::std::vector< ModelStringPair >::const_iterator aReferences = m_aControlReferences.begin(); + aReferences != aEnd; + ++aReferences + ) { - static const sal_Unicode s_nSeparator = ','; - ::rtl::OUString sReferring; - ::rtl::OUString sCurrentReferring; - ::rtl::OUString sSeparator(&s_nSeparator, 1); - Reference< XPropertySet > xCurrentReferring; - sal_Int32 nSeparator, nPrevSep; - for ( ::std::vector< ModelStringPair >::const_iterator aReferences = m_aControlReferences.begin(); - aReferences != m_aControlReferences.end(); - ++aReferences - ) - { - // the list of control ids is comma separated + // the list of control ids is comma separated - // in a list of n ids there are only n-1 separators ... have to catch this last id - // -> normalize the list - sReferring = aReferences->second; - sReferring += sSeparator; + // in a list of n ids there are only n-1 separators ... have to catch this last id + // -> normalize the list + sReferring = aReferences->second; + sReferring += sSeparator; - nPrevSep = -1; - while (-1 != (nSeparator = sReferring.indexOf(s_nSeparator, nPrevSep + 1))) - { - sCurrentReferring = sReferring.copy(nPrevSep + 1, nSeparator - nPrevSep - 1); - xCurrentReferring = lookupControlId(sCurrentReferring); - if (xCurrentReferring.is()) - // if this condition fails, this is an error, but lookupControlId should have asserted this ... - xCurrentReferring->setPropertyValue( PROPERTY_CONTROLLABEL, makeAny( aReferences->first ) ); + nPrevSep = -1; + while (-1 != (nSeparator = sReferring.indexOf(s_nSeparator, nPrevSep + 1))) + { + sCurrentReferring = sReferring.copy(nPrevSep + 1, nSeparator - nPrevSep - 1); + xCurrentReferring = lookupControlId(sCurrentReferring); + if (xCurrentReferring.is()) + // if this condition fails, this is an error, but lookupControlId should have asserted this ... + xCurrentReferring->setPropertyValue( PROPERTY_CONTROLLABEL, makeAny( aReferences->first ) ); - nPrevSep = nSeparator; - } + nPrevSep = nSeparator; } } - catch(Exception&) - { - OSL_ENSURE(sal_False, "OFormLayerXMLImport_Impl::endPage: unable to knit the control references (caught an exception)!"); - } + } + catch(Exception&) + { + OSL_ENSURE(sal_False, "OFormLayerXMLImport_Impl::endPage: unable to knit the control references (caught an exception)!"); + } - // now that we have all children of the forms collection, attach the events - Reference< XIndexAccess > xIndexContainer; - if ( m_xCurrentPageFormsSupp.is() && m_xCurrentPageFormsSupp->hasForms() ) - xIndexContainer = xIndexContainer.query( m_xCurrentPageFormsSupp->getForms() ); - if ( xIndexContainer.is() ) - ODefaultEventAttacherManager::setEvents( xIndexContainer ); + // now that we have all children of the forms collection, attach the events + Reference< XIndexAccess > xIndexContainer; + if ( m_xCurrentPageFormsSupp.is() && m_xCurrentPageFormsSupp->hasForms() ) + xIndexContainer = xIndexContainer.query( m_xCurrentPageFormsSupp->getForms() ); + if ( xIndexContainer.is() ) + ODefaultEventAttacherManager::setEvents( xIndexContainer ); - // clear the structures for the control references. - m_aControlReferences.clear(); + // clear the structures for the control references. + m_aControlReferences.clear(); - // and no we have no current page anymore - m_aCurrentPageIds = m_aControlIds.end(); - } + // and no we have no current page anymore + m_aCurrentPageIds = m_aControlIds.end(); +} - //--------------------------------------------------------------------- - Reference< XPropertySet > OFormLayerXMLImport_Impl::lookupControlId(const ::rtl::OUString& _rControlId) +//--------------------------------------------------------------------- +Reference< XPropertySet > OFormLayerXMLImport_Impl::lookupControlId(const ::rtl::OUString& _rControlId) +{ + OSL_ENSURE(m_aCurrentPageIds != m_aControlIds.end(), "OFormLayerXMLImport_Impl::lookupControlId: no current page!"); + Reference< XPropertySet > xReturn; + if (m_aCurrentPageIds != m_aControlIds.end()) { - OSL_ENSURE(m_aCurrentPageIds != m_aControlIds.end(), "OFormLayerXMLImport_Impl::lookupControlId: no current page!"); - Reference< XPropertySet > xReturn; - if (m_aCurrentPageIds != m_aControlIds.end()) - { - ConstMapString2PropertySetIterator aPos = m_aCurrentPageIds->second.find(_rControlId); - if (m_aCurrentPageIds->second.end() != aPos) - xReturn = aPos->second; - else - OSL_ENSURE(sal_False, "OFormLayerXMLImport_Impl::lookupControlId: invalid control id (did not find it)!"); - } - return xReturn; + ConstMapString2PropertySetIterator aPos = m_aCurrentPageIds->second.find(_rControlId); + if (m_aCurrentPageIds->second.end() != aPos) + xReturn = aPos->second; + else + OSL_ENSURE(sal_False, "OFormLayerXMLImport_Impl::lookupControlId: invalid control id (did not find it)!"); } + return xReturn; +} + +//--------------------------------------------------------------------- +SvXMLImportContext* OFormLayerXMLImport_Impl::createOfficeFormsContext( + SvXMLImport& _rImport, + sal_uInt16 _nPrefix, + const rtl::OUString& _rLocalName) +{ + return new OFormsRootImport( _rImport, _nPrefix, _rLocalName ); +} - //--------------------------------------------------------------------- - SvXMLImportContext* OFormLayerXMLImport_Impl::createOfficeFormsContext( - SvXMLImport& _rImport, - sal_uInt16 _nPrefix, - const rtl::OUString& _rLocalName) +//--------------------------------------------------------------------- +SvXMLImportContext* OFormLayerXMLImport_Impl::createContext(const sal_uInt16 _nPrefix, const rtl::OUString& _rLocalName, + const Reference< sax::XAttributeList >&) +{ + SvXMLImportContext* pContext = NULL; + if ( 0 == _rLocalName.compareToAscii( "form" ) ) { - return new OFormsRootImport( _rImport, _nPrefix, _rLocalName ); + if ( m_xCurrentPageFormsSupp.is() ) + pContext = new OFormImport(*this, *this, _nPrefix, _rLocalName, m_xCurrentPageFormsSupp->getForms() ); } - - //--------------------------------------------------------------------- - SvXMLImportContext* OFormLayerXMLImport_Impl::createContext(const sal_uInt16 _nPrefix, const rtl::OUString& _rLocalName, - const Reference< sax::XAttributeList >&) + else if ( ( _nPrefix == XML_NAMESPACE_XFORMS + && ( xmloff::token::IsXMLToken( _rLocalName, xmloff::token::XML_MODEL ) ) ) + ) { - SvXMLImportContext* pContext = NULL; - if ( 0 == _rLocalName.compareToAscii( "form" ) ) - { - if ( m_xCurrentPageFormsSupp.is() ) - pContext = new OFormImport(*this, *this, _nPrefix, _rLocalName, m_xCurrentPageFormsSupp->getForms() ); - } - else if ( ( _nPrefix == XML_NAMESPACE_XFORMS - && ( xmloff::token::IsXMLToken( _rLocalName, xmloff::token::XML_MODEL ) ) ) - ) - { - pContext = createXFormsModelContext( m_rImporter, _nPrefix, _rLocalName ); - } - - if ( !pContext ) - { - OSL_ENSURE( false, "unknown element" ); - pContext = - new SvXMLImportContext(m_rImporter, _nPrefix, _rLocalName); - } - - return pContext; + pContext = createXFormsModelContext( m_rImporter, _nPrefix, _rLocalName ); } - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::seekPage(const Reference< XDrawPage >& _rxDrawPage) + if ( !pContext ) { - OSL_ENSURE(m_aCurrentPageIds == m_aControlIds.end(), "OFormLayerXMLImport_Impl::seekPage: importing another page currently! This will smash your import!"); - m_aCurrentPageIds = m_aControlIds.find(_rxDrawPage); - OSL_ENSURE(m_aCurrentPageIds != m_aControlIds.end(), "OFormLayerXMLImport_Impl::seekPage: did not find the given page (perhaps it has not been imported, yet?)!"); + OSL_ENSURE( false, "unknown element" ); + pContext = + new SvXMLImportContext(m_rImporter, _nPrefix, _rLocalName); } - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::documentDone( ) - { - if ( ( getGlobalContext().getImportFlags() & IMPORT_CONTENT ) == 0 ) - return; + return pContext; +} + +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::seekPage(const Reference< XDrawPage >& _rxDrawPage) +{ + OSL_ENSURE(m_aCurrentPageIds == m_aControlIds.end(), "OFormLayerXMLImport_Impl::seekPage: importing another page currently! This will smash your import!"); + m_aCurrentPageIds = m_aControlIds.find(_rxDrawPage); + OSL_ENSURE(m_aCurrentPageIds != m_aControlIds.end(), "OFormLayerXMLImport_Impl::seekPage: did not find the given page (perhaps it has not been imported, yet?)!"); +} - // create (and bind) the spreadsheet cell bindings - if ( !m_aCellValueBindings.empty() - && FormCellBindingHelper::isCellBindingAllowed( getGlobalContext().GetModel() ) +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::documentDone( ) +{ + SvXMLImport& rImport = getGlobalContext(); + if ( ( rImport.getImportFlags() & IMPORT_CONTENT ) == 0 ) + return; + + // create (and bind) the spreadsheet cell bindings + if ( !m_aCellValueBindings.empty() + && FormCellBindingHelper::isCellBindingAllowed( rImport.GetModel() ) + ) + { + static ::rtl::OUString s_sIndex( RTL_CONSTASCII_USTRINGPARAM( ":index" ) ); + ::std::vector< ModelStringPair >::const_iterator aEnd = m_aCellValueBindings.end(); + for ( ::std::vector< ModelStringPair >::const_iterator aCellBindings = m_aCellValueBindings.begin(); + aCellBindings != aEnd; + ++aCellBindings ) { - for ( ::std::vector< ModelStringPair >::const_iterator aCellBindings = m_aCellValueBindings.begin(); - aCellBindings != m_aCellValueBindings.end(); - ++aCellBindings - ) + try { - try + FormCellBindingHelper aHelper( aCellBindings->first, rImport.GetModel() ); + OSL_ENSURE( aHelper.isCellBindingAllowed(), "OFormLayerXMLImport_Impl::documentDone: can't bind this control model!" ); + if ( aHelper.isCellBindingAllowed() ) { - FormCellBindingHelper aHelper( aCellBindings->first, getGlobalContext().GetModel() ); - OSL_ENSURE( aHelper.isCellBindingAllowed(), "OFormLayerXMLImport_Impl::documentDone: can't bind this control model!" ); - if ( aHelper.isCellBindingAllowed() ) + // There are special bindings for listboxes. See + // OListAndComboImport::doRegisterCellValueBinding for a comment on this HACK. + ::rtl::OUString sBoundCellAddress( aCellBindings->second ); + sal_Int32 nIndicator = sBoundCellAddress.lastIndexOf( s_sIndex ); + + bool bUseIndexBinding = false; + if ( nIndicator != -1 ) { - // There are special bindings for listboxes. See - // OListAndComboImport::doRegisterCellValueBinding for a comment on this HACK. - ::rtl::OUString sBoundCellAddress( aCellBindings->second ); - sal_Int32 nIndicator = sBoundCellAddress.lastIndexOf( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ":index" ) ) ); - - bool bUseIndexBinding = false; - if ( nIndicator != -1 ) - { - sBoundCellAddress = sBoundCellAddress.copy( 0, nIndicator ); - bUseIndexBinding = true; - } - - aHelper.setBinding( aHelper.createCellBindingFromStringAddress( sBoundCellAddress, bUseIndexBinding ) ); + sBoundCellAddress = sBoundCellAddress.copy( 0, nIndicator ); + bUseIndexBinding = true; } + + aHelper.setBinding( aHelper.createCellBindingFromStringAddress( sBoundCellAddress, bUseIndexBinding ) ); } - catch( const Exception& ) - { - OSL_ENSURE( sal_False, "OFormLayerXMLImport_Impl::documentDone: caught an exception while binding to a cell!" ); - } } - m_aCellValueBindings.clear(); + catch( const Exception& ) + { + OSL_ENSURE( sal_False, "OFormLayerXMLImport_Impl::documentDone: caught an exception while binding to a cell!" ); + } } + m_aCellValueBindings.clear(); + } - // the same for the spreadsheet cell range list sources - if ( !m_aCellRangeListSources.empty() - && FormCellBindingHelper::isListCellRangeAllowed( getGlobalContext().GetModel() ) + // the same for the spreadsheet cell range list sources + if ( !m_aCellRangeListSources.empty() + && FormCellBindingHelper::isListCellRangeAllowed( rImport.GetModel() ) + ) + { + for ( ::std::vector< ModelStringPair >::const_iterator aRangeBindings = m_aCellRangeListSources.begin(); + aRangeBindings != m_aCellRangeListSources.end(); + ++aRangeBindings ) { - for ( ::std::vector< ModelStringPair >::const_iterator aRangeBindings = m_aCellRangeListSources.begin(); - aRangeBindings != m_aCellRangeListSources.end(); - ++aRangeBindings - ) + try { - try + FormCellBindingHelper aHelper( aRangeBindings->first, rImport.GetModel() ); + OSL_ENSURE( aHelper.isListCellRangeAllowed(), "OFormLayerXMLImport_Impl::documentDone: can't bind this control model!" ); + if ( aHelper.isListCellRangeAllowed() ) { - FormCellBindingHelper aHelper( aRangeBindings->first, getGlobalContext().GetModel() ); - OSL_ENSURE( aHelper.isListCellRangeAllowed(), "OFormLayerXMLImport_Impl::documentDone: can't bind this control model!" ); - if ( aHelper.isListCellRangeAllowed() ) - { - aHelper.setListSource( aHelper.createCellListSourceFromStringAddress( aRangeBindings->second ) ); - } - } - catch( const Exception& ) - { - OSL_ENSURE( sal_False, "OFormLayerXMLImport_Impl::documentDone: caught an exception while binding to a cell range!" ); + aHelper.setListSource( aHelper.createCellListSourceFromStringAddress( aRangeBindings->second ) ); } } - m_aCellRangeListSources.clear(); + catch( const Exception& ) + { + OSL_ENSURE( sal_False, "OFormLayerXMLImport_Impl::documentDone: caught an exception while binding to a cell range!" ); + } } - - // process XForms-bindings; call registerXFormsValueBinding for each - std::for_each( m_aXFormsValueBindings.begin(), - m_aXFormsValueBindings.end(), - bind1st( ptr_fun( bindXFormsValueBinding ), - getGlobalContext().GetModel() ) ); - // same for list bindings - std::for_each( m_aXFormsListBindings.begin(), - m_aXFormsListBindings.end(), - bind1st( ptr_fun( bindXFormsListBinding ), - getGlobalContext().GetModel() ) ); - // same for submissions - std::for_each( m_aXFormsSubmissions.begin(), - m_aXFormsSubmissions.end(), - bind1st( ptr_fun( bindXFormsSubmission ), - getGlobalContext().GetModel() ) ); + m_aCellRangeListSources.clear(); } + // process XForms-bindings; call registerXFormsValueBinding for each + std::for_each( m_aXFormsValueBindings.begin(), + m_aXFormsValueBindings.end(), + bind1st( ptr_fun( bindXFormsValueBinding ), + rImport.GetModel() ) ); + // same for list bindings + std::for_each( m_aXFormsListBindings.begin(), + m_aXFormsListBindings.end(), + bind1st( ptr_fun( bindXFormsListBinding ), + rImport.GetModel() ) ); + // same for submissions + std::for_each( m_aXFormsSubmissions.begin(), + m_aXFormsSubmissions.end(), + bind1st( ptr_fun( bindXFormsSubmission ), + rImport.GetModel() ) ); +} + //......................................................................... } // namespace xmloff //......................................................................... diff --git a/xmloff/source/forms/layerimport.hxx b/xmloff/source/forms/layerimport.hxx index 59872a1ec7..ad11880beb 100644 --- a/xmloff/source/forms/layerimport.hxx +++ b/xmloff/source/forms/layerimport.hxx @@ -81,9 +81,7 @@ namespace xmloff //= OFormLayerXMLImport_Impl //===================================================================== class OFormLayerXMLImport_Impl - :public IControlIdMap - ,public IFormsImportContext - ,public ODefaultEventAttacherManager + : public ODefaultEventAttacherManager { friend class OFormLayerXMLImport; @@ -127,54 +125,51 @@ namespace xmloff public: // IControlIdMap - virtual void registerControlId( + void registerControlId( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControl, const ::rtl::OUString& _rId); - virtual void registerControlReferences( + void registerControlReferences( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControl, const ::rtl::OUString& _rReferringControls); - // IFormsImportContext - virtual IControlIdMap& getControlIdMap(); - virtual OAttribute2Property& getAttributeMap(); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > - getServiceFactory(); - virtual SvXMLImport& getGlobalContext(); + // OFormLayerXMLImport_Impl + inline OAttribute2Property& getAttributeMap() { return m_aAttributeMetaData; } + inline SvXMLImport& getGlobalContext() { return m_rImporter; } const SvXMLStyleContext* getStyleElement(const ::rtl::OUString& _rStyleName) const; - virtual void enterEventContext(); - virtual void leaveEventContext(); + void enterEventContext(); + void leaveEventContext(); void applyControlNumberStyle( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, const ::rtl::OUString& _rControlNumerStyleName ); - virtual void registerCellValueBinding( + void registerCellValueBinding( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, const ::rtl::OUString& _rCellAddress ); - virtual void registerCellRangeListSource( + void registerCellRangeListSource( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, const ::rtl::OUString& _rCellRangeAddress ); - virtual void registerXFormsValueBinding( + void registerXFormsValueBinding( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, const ::rtl::OUString& _rBindingID ); - virtual void registerXFormsListBinding( + void registerXFormsListBinding( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, const ::rtl::OUString& _rBindingID ); - virtual void registerXFormsSubmission( + void registerXFormsSubmission( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, const ::rtl::OUString& _rSubmissionID ); protected: OFormLayerXMLImport_Impl(SvXMLImport& _rImporter); - ~OFormLayerXMLImport_Impl(); + virtual ~OFormLayerXMLImport_Impl(); /** retrieves the property mapper form form related auto styles. */ diff --git a/xmloff/source/forms/propertyimport.cxx b/xmloff/source/forms/propertyimport.cxx index ec109ad2aa..3d88b29271 100644 --- a/xmloff/source/forms/propertyimport.cxx +++ b/xmloff/source/forms/propertyimport.cxx @@ -45,6 +45,7 @@ #include #include #include +#include #if OSL_DEBUG_LEVEL > 0 #ifndef _OSL_THREAD_H_ @@ -68,107 +69,135 @@ namespace xmloff #define TYPE_TIME 2 #define TYPE_DATETIME 3 - //===================================================================== - //= PropertyConversion - //===================================================================== - namespace +//===================================================================== +//= PropertyConversion +//===================================================================== +namespace +{ + //--------------------------------------------------------------------- + ::com::sun::star::util::Time lcl_getTime(double _nValue) { - //--------------------------------------------------------------------- - ::com::sun::star::util::Time lcl_getTime(double _nValue) - { - ::com::sun::star::util::Time aTime; - sal_uInt32 nIntValue = sal_Int32(_nValue * 8640000); - nIntValue *= 8640000; - aTime.HundredthSeconds = (sal_uInt16)( nIntValue % 100 ); - nIntValue /= 100; - aTime.Seconds = (sal_uInt16)( nIntValue % 60 ); - nIntValue /= 60; - aTime.Minutes = (sal_uInt16)( nIntValue % 60 ); - nIntValue /= 60; - OSL_ENSURE(nIntValue < 24, "lcl_getTime: more than a day?"); - aTime.Hours = static_cast< sal_uInt16 >( nIntValue ); - - return aTime; - } - - //--------------------------------------------------------------------- - static ::com::sun::star::util::Date lcl_getDate( double _nValue ) - { - Date aToolsDate((sal_uInt32)_nValue); - ::com::sun::star::util::Date aDate; - ::utl::typeConvert(aToolsDate, aDate); - return aDate; - } + ::com::sun::star::util::Time aTime; + sal_uInt32 nIntValue = sal_Int32(_nValue * 8640000); + nIntValue *= 8640000; + aTime.HundredthSeconds = (sal_uInt16)( nIntValue % 100 ); + nIntValue /= 100; + aTime.Seconds = (sal_uInt16)( nIntValue % 60 ); + nIntValue /= 60; + aTime.Minutes = (sal_uInt16)( nIntValue % 60 ); + nIntValue /= 60; + OSL_ENSURE(nIntValue < 24, "lcl_getTime: more than a day?"); + aTime.Hours = static_cast< sal_uInt16 >( nIntValue ); + + return aTime; } //--------------------------------------------------------------------- - Any PropertyConversion::convertString( SvXMLImport& _rImporter, const ::com::sun::star::uno::Type& _rExpectedType, - const ::rtl::OUString& _rReadCharacters, const SvXMLEnumMapEntry* _pEnumMap, const sal_Bool _bInvertBoolean ) + static ::com::sun::star::util::Date lcl_getDate( double _nValue ) { - Any aReturn; - sal_Bool bEnumAsInt = sal_False; - switch (_rExpectedType.getTypeClass()) + Date aToolsDate((sal_uInt32)_nValue); + ::com::sun::star::util::Date aDate; + ::utl::typeConvert(aToolsDate, aDate); + return aDate; + } +} + +//--------------------------------------------------------------------- +Any PropertyConversion::convertString( SvXMLImport& _rImporter, const ::com::sun::star::uno::Type& _rExpectedType, + const ::rtl::OUString& _rReadCharacters, const SvXMLEnumMapEntry* _pEnumMap, const sal_Bool _bInvertBoolean ) +{ + Any aReturn; + sal_Bool bEnumAsInt = sal_False; + switch (_rExpectedType.getTypeClass()) + { + case TypeClass_BOOLEAN: // sal_Bool { - case TypeClass_BOOLEAN: // sal_Bool - { - sal_Bool bValue; - #if OSL_DEBUG_LEVEL > 0 + sal_Bool bValue; + #if OSL_DEBUG_LEVEL > 0 + sal_Bool bSuccess = + #endif + _rImporter.GetMM100UnitConverter().convertBool(bValue, _rReadCharacters); + OSL_ENSURE(bSuccess, + ::rtl::OString("PropertyConversion::convertString: could not convert \"") + += ::rtl::OString(_rReadCharacters.getStr(), _rReadCharacters.getLength(), RTL_TEXTENCODING_ASCII_US) + += ::rtl::OString("\" into a boolean!")); + aReturn = ::cppu::bool2any(_bInvertBoolean ? !bValue : bValue); + } + break; + case TypeClass_SHORT: // sal_Int16 + case TypeClass_LONG: // sal_Int32 + if (!_pEnumMap) + { // it's a real int32/16 property + sal_Int32 nValue(0); + #if OSL_DEBUG_LEVEL > 0 sal_Bool bSuccess = - #endif - _rImporter.GetMM100UnitConverter().convertBool(bValue, _rReadCharacters); + #endif + _rImporter.GetMM100UnitConverter().convertNumber(nValue, _rReadCharacters); OSL_ENSURE(bSuccess, ::rtl::OString("PropertyConversion::convertString: could not convert \"") += ::rtl::OString(_rReadCharacters.getStr(), _rReadCharacters.getLength(), RTL_TEXTENCODING_ASCII_US) - += ::rtl::OString("\" into a boolean!")); - aReturn = ::cppu::bool2any(_bInvertBoolean ? !bValue : bValue); - } - break; - case TypeClass_SHORT: // sal_Int16 - case TypeClass_LONG: // sal_Int32 - if (!_pEnumMap) - { // it's a real int32/16 property - sal_Int32 nValue(0); - #if OSL_DEBUG_LEVEL > 0 - sal_Bool bSuccess = - #endif - _rImporter.GetMM100UnitConverter().convertNumber(nValue, _rReadCharacters); - OSL_ENSURE(bSuccess, - ::rtl::OString("PropertyConversion::convertString: could not convert \"") - += ::rtl::OString(_rReadCharacters.getStr(), _rReadCharacters.getLength(), RTL_TEXTENCODING_ASCII_US) - += ::rtl::OString("\" into an integer!")); - if (TypeClass_SHORT == _rExpectedType.getTypeClass()) - aReturn <<= (sal_Int16)nValue; - else - aReturn <<= (sal_Int32)nValue; - break; - } - bEnumAsInt = sal_True; - // NO BREAK! handle it as enum - case TypeClass_ENUM: - { - sal_uInt16 nEnumValue(0); - #if OSL_DEBUG_LEVEL > 0 - sal_Bool bSuccess = - #endif - _rImporter.GetMM100UnitConverter().convertEnum(nEnumValue, _rReadCharacters, _pEnumMap); - OSL_ENSURE(bSuccess, "PropertyConversion::convertString: could not convert to an enum value!"); - if (bEnumAsInt) - if (TypeClass_SHORT == _rExpectedType.getTypeClass()) - aReturn <<= (sal_Int16)nEnumValue; - else - aReturn <<= (sal_Int32)nEnumValue; + += ::rtl::OString("\" into an integer!")); + if (TypeClass_SHORT == _rExpectedType.getTypeClass()) + aReturn <<= (sal_Int16)nValue; else - aReturn = ::cppu::int2enum((sal_Int32)nEnumValue, _rExpectedType); - } - break; - case TypeClass_HYPER: - { - OSL_ENSURE(sal_False, "PropertyConversion::convertString: 64-bit integers not implemented yet!"); + aReturn <<= (sal_Int32)nValue; + break; } + bEnumAsInt = sal_True; + // NO BREAK! handle it as enum + case TypeClass_ENUM: + { + sal_uInt16 nEnumValue(0); + #if OSL_DEBUG_LEVEL > 0 + sal_Bool bSuccess = + #endif + _rImporter.GetMM100UnitConverter().convertEnum(nEnumValue, _rReadCharacters, _pEnumMap); + OSL_ENSURE(bSuccess, "PropertyConversion::convertString: could not convert to an enum value!"); + if (bEnumAsInt) + if (TypeClass_SHORT == _rExpectedType.getTypeClass()) + aReturn <<= (sal_Int16)nEnumValue; + else + aReturn <<= (sal_Int32)nEnumValue; + else + aReturn = ::cppu::int2enum((sal_Int32)nEnumValue, _rExpectedType); + } + break; + case TypeClass_HYPER: + { + OSL_ENSURE(sal_False, "PropertyConversion::convertString: 64-bit integers not implemented yet!"); + } + break; + case TypeClass_DOUBLE: + { + double nValue; + #if OSL_DEBUG_LEVEL > 0 + sal_Bool bSuccess = + #endif + _rImporter.GetMM100UnitConverter().convertDouble(nValue, _rReadCharacters); + OSL_ENSURE(bSuccess, + ::rtl::OString("PropertyConversion::convertString: could not convert \"") + += ::rtl::OString(_rReadCharacters.getStr(), _rReadCharacters.getLength(), RTL_TEXTENCODING_ASCII_US) + += ::rtl::OString("\" into a double!")); + aReturn <<= (double)nValue; + } + break; + case TypeClass_STRING: + aReturn <<= _rReadCharacters; break; - case TypeClass_DOUBLE: + case TypeClass_STRUCT: + { + sal_Int32 nType = 0; + if ( _rExpectedType.equals( ::cppu::UnoType< ::com::sun::star::util::Date >::get() ) ) + nType = TYPE_DATE; + else if ( _rExpectedType.equals( ::cppu::UnoType< ::com::sun::star::util::Time >::get() ) ) + nType = TYPE_TIME; + else if ( _rExpectedType.equals( ::cppu::UnoType< ::com::sun::star::util::DateTime >::get() ) ) + nType = TYPE_DATETIME; + + if ( nType ) { - double nValue; + // first extract the double + double nValue = 0; #if OSL_DEBUG_LEVEL > 0 sal_Bool bSuccess = #endif @@ -177,237 +206,210 @@ namespace xmloff ::rtl::OString("PropertyConversion::convertString: could not convert \"") += ::rtl::OString(_rReadCharacters.getStr(), _rReadCharacters.getLength(), RTL_TEXTENCODING_ASCII_US) += ::rtl::OString("\" into a double!")); - aReturn <<= (double)nValue; - } - break; - case TypeClass_STRING: - aReturn <<= _rReadCharacters; - break; - case TypeClass_STRUCT: - { - sal_Int32 nType = 0; - if ( _rExpectedType.equals( ::cppu::UnoType< ::com::sun::star::util::Date >::get() ) ) - nType = TYPE_DATE; - else if ( _rExpectedType.equals( ::cppu::UnoType< ::com::sun::star::util::Time >::get() ) ) - nType = TYPE_TIME; - else if ( _rExpectedType.equals( ::cppu::UnoType< ::com::sun::star::util::DateTime >::get() ) ) - nType = TYPE_DATETIME; - - if ( nType ) + + // then convert it into the target type + switch (nType) { - // first extract the double - double nValue = 0; - #if OSL_DEBUG_LEVEL > 0 - sal_Bool bSuccess = - #endif - _rImporter.GetMM100UnitConverter().convertDouble(nValue, _rReadCharacters); - OSL_ENSURE(bSuccess, - ::rtl::OString("PropertyConversion::convertString: could not convert \"") - += ::rtl::OString(_rReadCharacters.getStr(), _rReadCharacters.getLength(), RTL_TEXTENCODING_ASCII_US) - += ::rtl::OString("\" into a double!")); - - // then convert it into the target type - switch (nType) + case TYPE_DATE: + { + OSL_ENSURE(((sal_uInt32)nValue) - nValue == 0, + "PropertyConversion::convertString: a Date value with a fractional part?"); + aReturn <<= lcl_getDate(nValue); + } + break; + case TYPE_TIME: + { + OSL_ENSURE(((sal_uInt32)nValue) == 0, + "PropertyConversion::convertString: a Time value with more than a fractional part?"); + aReturn <<= lcl_getTime(nValue); + } + break; + case TYPE_DATETIME: { - case TYPE_DATE: - { - OSL_ENSURE(((sal_uInt32)nValue) - nValue == 0, - "PropertyConversion::convertString: a Date value with a fractional part?"); - aReturn <<= lcl_getDate(nValue); - } - break; - case TYPE_TIME: - { - OSL_ENSURE(((sal_uInt32)nValue) == 0, - "PropertyConversion::convertString: a Time value with more than a fractional part?"); - aReturn <<= lcl_getTime(nValue); - } - break; - case TYPE_DATETIME: - { - ::com::sun::star::util::Time aTime = lcl_getTime(nValue); - ::com::sun::star::util::Date aDate = lcl_getDate(nValue); - - ::com::sun::star::util::DateTime aDateTime; - aDateTime.HundredthSeconds = aTime.HundredthSeconds; - aDateTime.Seconds = aTime.Seconds; - aDateTime.Minutes = aTime.Minutes; - aDateTime.Hours = aTime.Hours; - aDateTime.Day = aDate.Day; - aDateTime.Month = aDate.Month; - aDateTime.Year = aDate.Year; - aReturn <<= aDateTime; - } - break; + ::com::sun::star::util::Time aTime = lcl_getTime(nValue); + ::com::sun::star::util::Date aDate = lcl_getDate(nValue); + + ::com::sun::star::util::DateTime aDateTime; + aDateTime.HundredthSeconds = aTime.HundredthSeconds; + aDateTime.Seconds = aTime.Seconds; + aDateTime.Minutes = aTime.Minutes; + aDateTime.Hours = aTime.Hours; + aDateTime.Day = aDate.Day; + aDateTime.Month = aDate.Month; + aDateTime.Year = aDate.Year; + aReturn <<= aDateTime; } + break; } - else - OSL_ENSURE(sal_False, "PropertyConversion::convertString: unsupported property type!"); } - break; - default: - OSL_ENSURE(sal_False, "PropertyConversion::convertString: invalid type class!"); + else + OSL_ENSURE(sal_False, "PropertyConversion::convertString: unsupported property type!"); } - - return aReturn; + break; + default: + OSL_ENSURE(sal_False, "PropertyConversion::convertString: invalid type class!"); } - //--------------------------------------------------------------------- - Type PropertyConversion::xmlTypeToUnoType( const ::rtl::OUString& _rType ) - { - Type aUnoType( ::getVoidCppuType() ); + return aReturn; +} - DECLARE_STL_USTRINGACCESS_MAP( ::com::sun::star::uno::Type, MapString2Type ); - static MapString2Type s_aTypeNameMap; - if ( s_aTypeNameMap.empty() ) - { - s_aTypeNameMap[ token::GetXMLToken( token::XML_BOOLEAN ) ] = ::getBooleanCppuType(); - s_aTypeNameMap[ token::GetXMLToken( token::XML_FLOAT ) ] = ::getCppuType( static_cast< double* >(NULL) ); - s_aTypeNameMap[ token::GetXMLToken( token::XML_STRING ) ] = ::getCppuType( static_cast< ::rtl::OUString* >(NULL) ); - s_aTypeNameMap[ token::GetXMLToken( token::XML_VOID ) ] = ::getVoidCppuType(); - } - - const ConstMapString2TypeIterator aTypePos = s_aTypeNameMap.find( _rType ); - OSL_ENSURE( s_aTypeNameMap.end() != aTypePos, "PropertyConversion::xmlTypeToUnoType: invalid property name!" ); - if ( s_aTypeNameMap.end() != aTypePos ) - aUnoType = aTypePos->second; +//--------------------------------------------------------------------- +Type PropertyConversion::xmlTypeToUnoType( const ::rtl::OUString& _rType ) +{ + Type aUnoType( ::getVoidCppuType() ); - return aUnoType; + DECLARE_STL_USTRINGACCESS_MAP( ::com::sun::star::uno::Type, MapString2Type ); + static MapString2Type s_aTypeNameMap; + if ( s_aTypeNameMap.empty() ) + { + s_aTypeNameMap[ token::GetXMLToken( token::XML_BOOLEAN ) ] = ::getBooleanCppuType(); + s_aTypeNameMap[ token::GetXMLToken( token::XML_FLOAT ) ] = ::getCppuType( static_cast< double* >(NULL) ); + s_aTypeNameMap[ token::GetXMLToken( token::XML_STRING ) ] = ::getCppuType( static_cast< ::rtl::OUString* >(NULL) ); + s_aTypeNameMap[ token::GetXMLToken( token::XML_VOID ) ] = ::getVoidCppuType(); } - //===================================================================== - //= OPropertyImport - //===================================================================== - //--------------------------------------------------------------------- - OPropertyImport::OPropertyImport(IFormsImportContext& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName) - :SvXMLImportContext(_rImport.getGlobalContext(), _nPrefix, _rName) - ,m_rContext(_rImport) - ,m_bTrackAttributes(sal_False) + const ConstMapString2TypeIterator aTypePos = s_aTypeNameMap.find( _rType ); + OSL_ENSURE( s_aTypeNameMap.end() != aTypePos, "PropertyConversion::xmlTypeToUnoType: invalid property name!" ); + if ( s_aTypeNameMap.end() != aTypePos ) + aUnoType = aTypePos->second; + + return aUnoType; +} + +//===================================================================== +//= OPropertyImport +//===================================================================== +//--------------------------------------------------------------------- +OPropertyImport::OPropertyImport(OFormLayerXMLImport_Impl& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName) + :SvXMLImportContext(_rImport.getGlobalContext(), _nPrefix, _rName) + ,m_rContext(_rImport) + ,m_bTrackAttributes(sal_False) +{ +} + +//--------------------------------------------------------------------- +SvXMLImportContext* OPropertyImport::CreateChildContext(sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, + const Reference< sax::XAttributeList >& _rxAttrList) +{ + if( token::IsXMLToken( _rLocalName, token::XML_PROPERTIES) ) { + return new OPropertyElementsContext( m_rContext.getGlobalContext(), + _nPrefix, _rLocalName, this); } - - //--------------------------------------------------------------------- - SvXMLImportContext* OPropertyImport::CreateChildContext(sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, - const Reference< sax::XAttributeList >& _rxAttrList) + else { - if( token::IsXMLToken( _rLocalName, token::XML_PROPERTIES) ) - { - return new OPropertyElementsContext( m_rContext.getGlobalContext(), - _nPrefix, _rLocalName, this); - } - else - { - OSL_ENSURE(sal_False, - ::rtl::OString("OPropertyImport::CreateChildContext: unknown sub element (only \"properties\" is recognized, but it is ") - += ::rtl::OString(_rLocalName.getStr(), _rLocalName.getLength(), RTL_TEXTENCODING_ASCII_US) - += ::rtl::OString(")!")); - return SvXMLImportContext::CreateChildContext(_nPrefix, _rLocalName, _rxAttrList); - } + OSL_ENSURE(sal_False, + ::rtl::OString("OPropertyImport::CreateChildContext: unknown sub element (only \"properties\" is recognized, but it is ") + += ::rtl::OString(_rLocalName.getStr(), _rLocalName.getLength(), RTL_TEXTENCODING_ASCII_US) + += ::rtl::OString(")!")); + return SvXMLImportContext::CreateChildContext(_nPrefix, _rLocalName, _rxAttrList); } +} - //--------------------------------------------------------------------- - void OPropertyImport::StartElement(const Reference< sax::XAttributeList >& _rxAttrList) +//--------------------------------------------------------------------- +void OPropertyImport::StartElement(const Reference< sax::XAttributeList >& _rxAttrList) +{ + OSL_ENSURE(_rxAttrList.is(), "OPropertyImport::StartElement: invalid attribute list!"); + const sal_Int32 nAttributeCount = _rxAttrList->getLength(); + + // assume the 'worst' case: all attributes describe properties. This should save our property array + // some reallocs + m_aValues.reserve(nAttributeCount); + + const SvXMLNamespaceMap& rMap = m_rContext.getGlobalContext().GetNamespaceMap(); + sal_uInt16 nNamespace; + ::rtl::OUString sLocalName; + for (sal_Int16 i=0; igetLength(); + nNamespace = rMap.GetKeyByAttrName(_rxAttrList->getNameByIndex(i), &sLocalName); + handleAttribute(nNamespace, sLocalName, _rxAttrList->getValueByIndex(i)); - // assume the 'worst' case: all attributes describe properties. This should save our property array - // some reallocs - m_aValues.reserve(nAttributeCount); + if (m_bTrackAttributes) + m_aEncounteredAttributes.insert(sLocalName); + } - sal_uInt16 nNamespace; - ::rtl::OUString sLocalName; - for (sal_Int16 i=0; igetNameByIndex(i), &sLocalName); - handleAttribute(nNamespace, sLocalName, _rxAttrList->getValueByIndex(i)); + // TODO: create PropertyValues for all the attributes which were not present, because they were implied + // this is necessary as soon as we have properties where the XML default is different from the property + // default +} - if (m_bTrackAttributes) - m_aEncounteredAttributes.insert(sLocalName); - } +//--------------------------------------------------------------------- +sal_Bool OPropertyImport::encounteredAttribute(const ::rtl::OUString& _rAttributeName) const +{ + OSL_ENSURE(m_bTrackAttributes, "OPropertyImport::encounteredAttribute: attribute tracking not enabled!"); + return m_aEncounteredAttributes.end() != m_aEncounteredAttributes.find(_rAttributeName); +} - // TODO: create PropertyValues for all the attributes which were not present, because they were implied - // this is necessary as soon as we have properties where the XML default is different from the property - // default - } +//--------------------------------------------------------------------- +void OPropertyImport::Characters(const ::rtl::OUString& +#if OSL_DEBUG_LEVEL > 0 +_rChars +#endif +) +{ + // ignore them (should be whitespaces only) + OSL_ENSURE(0 == _rChars.trim().getLength(), "OPropertyImport::Characters: non-whitespace characters!"); +} - //--------------------------------------------------------------------- - sal_Bool OPropertyImport::encounteredAttribute(const ::rtl::OUString& _rAttributeName) const +//--------------------------------------------------------------------- +void OPropertyImport::handleAttribute(sal_uInt16 /*_nNamespaceKey*/, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue) +{ + const OAttribute2Property::AttributeAssignment* pProperty = m_rContext.getAttributeMap().getAttributeTranslation(_rLocalName); + if (pProperty) { - OSL_ENSURE(m_bTrackAttributes, "OPropertyImport::encounteredAttribute: attribute tracking not enabled!"); - return m_aEncounteredAttributes.end() != m_aEncounteredAttributes.find(_rAttributeName); - } + // create and store a new PropertyValue + PropertyValue aNewValue; + aNewValue.Name = pProperty->sPropertyName; - //--------------------------------------------------------------------- - void OPropertyImport::Characters(const ::rtl::OUString& - #if OSL_DEBUG_LEVEL > 0 - _rChars - #endif - ) + // convert the value string into the target type + aNewValue.Value = PropertyConversion::convertString(m_rContext.getGlobalContext(), pProperty->aPropertyType, _rValue, pProperty->pEnumMap, pProperty->bInverseSemantics); + implPushBackPropertyValue( aNewValue ); + } +#if OSL_DEBUG_LEVEL > 0 + else { - // ignore them (should be whitespaces only) - OSL_ENSURE(0 == _rChars.trim().getLength(), "OPropertyImport::Characters: non-whitespace characters!"); + ::rtl::OString sMessage( "OPropertyImport::handleAttribute: Can't handle the following:\n" ); + sMessage += ::rtl::OString( " Attribute name: " ); + sMessage += ::rtl::OString( _rLocalName.getStr(), _rLocalName.getLength(), osl_getThreadTextEncoding() ); + sMessage += ::rtl::OString( "\n value: " ); + sMessage += ::rtl::OString( _rValue.getStr(), _rValue.getLength(), osl_getThreadTextEncoding() ); + OSL_ENSURE( sal_False, sMessage.getStr() ); } +#endif +} + +//===================================================================== +//= OPropertyElementsContext +//===================================================================== +//--------------------------------------------------------------------- +OPropertyElementsContext::OPropertyElementsContext(SvXMLImport& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + const OPropertyImportRef& _rPropertyImporter) + :SvXMLImportContext(_rImport, _nPrefix, _rName) + ,m_xPropertyImporter(_rPropertyImporter) +{ +} - //--------------------------------------------------------------------- - void OPropertyImport::handleAttribute(sal_uInt16 /*_nNamespaceKey*/, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue) +//--------------------------------------------------------------------- +SvXMLImportContext* OPropertyElementsContext::CreateChildContext(sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, + const Reference< sax::XAttributeList >&) +{ + if( token::IsXMLToken( _rLocalName, token::XML_PROPERTY ) ) { - const OAttribute2Property::AttributeAssignment* pProperty = m_rContext.getAttributeMap().getAttributeTranslation(_rLocalName); - if (pProperty) - { - // create and store a new PropertyValue - PropertyValue aNewValue; - aNewValue.Name = pProperty->sPropertyName; - - // convert the value string into the target type - aNewValue.Value = PropertyConversion::convertString(m_rContext.getGlobalContext(), pProperty->aPropertyType, _rValue, pProperty->pEnumMap, pProperty->bInverseSemantics); - implPushBackPropertyValue( aNewValue ); - } -#if OSL_DEBUG_LEVEL > 0 - else - { - ::rtl::OString sMessage( "OPropertyImport::handleAttribute: Can't handle the following:\n" ); - sMessage += ::rtl::OString( " Attribute name: " ); - sMessage += ::rtl::OString( _rLocalName.getStr(), _rLocalName.getLength(), osl_getThreadTextEncoding() ); - sMessage += ::rtl::OString( "\n value: " ); - sMessage += ::rtl::OString( _rValue.getStr(), _rValue.getLength(), osl_getThreadTextEncoding() ); - OSL_ENSURE( sal_False, sMessage.getStr() ); - } -#endif + return new OSinglePropertyContext(GetImport(), _nPrefix, _rLocalName, m_xPropertyImporter); } - - //===================================================================== - //= OPropertyElementsContext - //===================================================================== - //--------------------------------------------------------------------- - OPropertyElementsContext::OPropertyElementsContext(SvXMLImport& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, - const OPropertyImportRef& _rPropertyImporter) - :SvXMLImportContext(_rImport, _nPrefix, _rName) - ,m_xPropertyImporter(_rPropertyImporter) + else if( token::IsXMLToken( _rLocalName, token::XML_LIST_PROPERTY ) ) { + return new OListPropertyContext( GetImport(), _nPrefix, _rLocalName, m_xPropertyImporter ); } - - //--------------------------------------------------------------------- - SvXMLImportContext* OPropertyElementsContext::CreateChildContext(sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, - const Reference< sax::XAttributeList >&) + else { - if( token::IsXMLToken( _rLocalName, token::XML_PROPERTY ) ) - { - return new OSinglePropertyContext(GetImport(), _nPrefix, _rLocalName, m_xPropertyImporter); - } - else if( token::IsXMLToken( _rLocalName, token::XML_LIST_PROPERTY ) ) - { - return new OListPropertyContext( GetImport(), _nPrefix, _rLocalName, m_xPropertyImporter ); - } - else - { - OSL_ENSURE(sal_False, - ::rtl::OString("OPropertyElementsContext::CreateChildContext: unknown child element (\"") - += ::rtl::OString(_rLocalName.getStr(), _rLocalName.getLength(), RTL_TEXTENCODING_ASCII_US) - += ::rtl::OString("\")!")); - return new SvXMLImportContext(GetImport(), _nPrefix, _rLocalName); - } + OSL_ENSURE(sal_False, + ::rtl::OString("OPropertyElementsContext::CreateChildContext: unknown child element (\"") + += ::rtl::OString(_rLocalName.getStr(), _rLocalName.getLength(), RTL_TEXTENCODING_ASCII_US) + += ::rtl::OString("\")!")); + return new SvXMLImportContext(GetImport(), _nPrefix, _rLocalName); } +} #if OSL_DEBUG_LEVEL > 0 //--------------------------------------------------------------------- @@ -426,212 +428,215 @@ namespace xmloff #endif - //===================================================================== - //= OSinglePropertyContext - //===================================================================== - //--------------------------------------------------------------------- - OSinglePropertyContext::OSinglePropertyContext(SvXMLImport& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, - const OPropertyImportRef& _rPropertyImporter) - :SvXMLImportContext(_rImport, _nPrefix, _rName) - ,m_xPropertyImporter(_rPropertyImporter) - { - } +//===================================================================== +//= OSinglePropertyContext +//===================================================================== +//--------------------------------------------------------------------- +OSinglePropertyContext::OSinglePropertyContext(SvXMLImport& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + const OPropertyImportRef& _rPropertyImporter) + :SvXMLImportContext(_rImport, _nPrefix, _rName) + ,m_xPropertyImporter(_rPropertyImporter) +{ +} - //--------------------------------------------------------------------- - SvXMLImportContext* OSinglePropertyContext::CreateChildContext(sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, - const Reference< sax::XAttributeList >&) - { - OSL_ENSURE(sal_False, - ::rtl::OString("OSinglePropertyContext::CreateChildContext: unknown child element (\"") - += ::rtl::OString(_rLocalName.getStr(), _rLocalName.getLength(), RTL_TEXTENCODING_ASCII_US) - += ::rtl::OString("\")!")); - return new SvXMLImportContext(GetImport(), _nPrefix, _rLocalName); - } +//--------------------------------------------------------------------- +SvXMLImportContext* OSinglePropertyContext::CreateChildContext(sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, + const Reference< sax::XAttributeList >&) +{ + OSL_ENSURE(sal_False, + ::rtl::OString("OSinglePropertyContext::CreateChildContext: unknown child element (\"") + += ::rtl::OString(_rLocalName.getStr(), _rLocalName.getLength(), RTL_TEXTENCODING_ASCII_US) + += ::rtl::OString("\")!")); + return new SvXMLImportContext(GetImport(), _nPrefix, _rLocalName); +} + +//--------------------------------------------------------------------- +void OSinglePropertyContext::StartElement(const Reference< sax::XAttributeList >& _rxAttrList) +{ + ::com::sun::star::beans::PropertyValue aPropValue; // the property the instance imports currently + ::com::sun::star::uno::Type aPropType; // the type of the property the instance imports currently - //--------------------------------------------------------------------- - void OSinglePropertyContext::StartElement(const Reference< sax::XAttributeList >& _rxAttrList) + ::rtl::OUString sType, sValue; + const SvXMLNamespaceMap& rMap = GetImport().GetNamespaceMap(); + const sal_Int16 nAttrCount = _rxAttrList.is() ? _rxAttrList->getLength() : 0; + for( sal_Int16 i=0; i < nAttrCount; i++ ) { - ::com::sun::star::beans::PropertyValue aPropValue; // the property the instance imports currently - ::com::sun::star::uno::Type aPropType; // the type of the property the instance imports currently - - ::rtl::OUString sType, sValue; - sal_Int16 nAttrCount = _rxAttrList.is() ? _rxAttrList->getLength() : 0; - for( sal_Int16 i=0; i < nAttrCount; i++ ) + const ::rtl::OUString& rAttrName = _rxAttrList->getNameByIndex( i ); + //const ::rtl::OUString& rValue = _rxAttrList->getValueByIndex( i ); + + ::rtl::OUString aLocalName; + sal_uInt16 nPrefix = + rMap.GetKeyByAttrName( rAttrName, + &aLocalName ); + if( XML_NAMESPACE_FORM == nPrefix ) { - const ::rtl::OUString& rAttrName = _rxAttrList->getNameByIndex( i ); - const ::rtl::OUString& rValue = _rxAttrList->getValueByIndex( i ); - - ::rtl::OUString aLocalName; - sal_uInt16 nPrefix = - GetImport().GetNamespaceMap().GetKeyByAttrName( rAttrName, - &aLocalName ); - if( XML_NAMESPACE_FORM == nPrefix ) - { - if( token::IsXMLToken( aLocalName, token::XML_PROPERTY_NAME ) ) - aPropValue.Name = rValue; + if( token::IsXMLToken( aLocalName, token::XML_PROPERTY_NAME ) ) + aPropValue.Name = _rxAttrList->getValueByIndex( i ); - } - else if( XML_NAMESPACE_OFFICE == nPrefix ) - { - if( token::IsXMLToken( aLocalName, token::XML_VALUE_TYPE ) ) - sType = rValue; - else if( token::IsXMLToken( aLocalName, - token::XML_VALUE ) || - token::IsXMLToken( aLocalName, - token::XML_BOOLEAN_VALUE ) || - token::IsXMLToken( aLocalName, - token::XML_STRING_VALUE ) ) - sValue = rValue; - } - } - - // the name of the property - OSL_ENSURE(aPropValue.Name.getLength(), "OSinglePropertyContext::StartElement: invalid property name!"); - - // needs to be translated into a ::com::sun::star::uno::Type - aPropType = PropertyConversion::xmlTypeToUnoType( sType ); - if( TypeClass_VOID == aPropType.getTypeClass() ) - { - aPropValue.Value = Any(); } - else + else if( XML_NAMESPACE_OFFICE == nPrefix ) { - aPropValue.Value = - PropertyConversion::convertString(GetImport(), aPropType, - sValue); + if( token::IsXMLToken( aLocalName, token::XML_VALUE_TYPE ) ) + sType = _rxAttrList->getValueByIndex( i ); + else if( token::IsXMLToken( aLocalName, + token::XML_VALUE ) || + token::IsXMLToken( aLocalName, + token::XML_BOOLEAN_VALUE ) || + token::IsXMLToken( aLocalName, + token::XML_STRING_VALUE ) ) + sValue = _rxAttrList->getValueByIndex( i ); } - - // now that we finally have our property value, add it to our parent object - if( aPropValue.Name.getLength() ) - m_xPropertyImporter->implPushBackGenericPropertyValue(aPropValue); } - //===================================================================== - //= OListPropertyContext - //===================================================================== - //--------------------------------------------------------------------- - OListPropertyContext::OListPropertyContext( SvXMLImport& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, - const OPropertyImportRef& _rPropertyImporter ) - :SvXMLImportContext( _rImport, _nPrefix, _rName ) - ,m_xPropertyImporter( _rPropertyImporter ) + // the name of the property + OSL_ENSURE(aPropValue.Name.getLength(), "OSinglePropertyContext::StartElement: invalid property name!"); + + // needs to be translated into a ::com::sun::star::uno::Type + aPropType = PropertyConversion::xmlTypeToUnoType( sType ); + if( TypeClass_VOID == aPropType.getTypeClass() ) { + aPropValue.Value = Any(); } - - //--------------------------------------------------------------------- - void OListPropertyContext::StartElement( const Reference< sax::XAttributeList >& _rxAttrList ) + else { - sal_Int32 nAttributeCount = _rxAttrList->getLength(); - - sal_uInt16 nNamespace; - ::rtl::OUString sAttributeName; - for ( sal_Int16 i = 0; i < nAttributeCount; ++i ) - { - nNamespace = GetImport().GetNamespaceMap().GetKeyByAttrName( _rxAttrList->getNameByIndex( i ), &sAttributeName ); - if ( ( XML_NAMESPACE_FORM == nNamespace ) - && ( token::IsXMLToken( sAttributeName, token::XML_PROPERTY_NAME ) ) - ) - { - m_sPropertyName = _rxAttrList->getValueByIndex( i ); - } - else if ( ( XML_NAMESPACE_OFFICE == nNamespace ) - && ( token::IsXMLToken( sAttributeName, token::XML_VALUE_TYPE ) ) - ) - { - m_sPropertyType = _rxAttrList->getValueByIndex( i ); - } - else - { - OSL_ENSURE( false, - ::rtl::OString( "OListPropertyContext::StartElement: unknown child element (\"") - += ::rtl::OString( sAttributeName.getStr(), sAttributeName.getLength(), RTL_TEXTENCODING_ASCII_US ) - += ::rtl::OString( "\")!" ) ); - } - } + aPropValue.Value = + PropertyConversion::convertString(GetImport(), aPropType, + sValue); } - //--------------------------------------------------------------------- - void OListPropertyContext::EndElement() + // now that we finally have our property value, add it to our parent object + if( aPropValue.Name.getLength() ) + m_xPropertyImporter->implPushBackGenericPropertyValue(aPropValue); +} + +//===================================================================== +//= OListPropertyContext +//===================================================================== +//--------------------------------------------------------------------- +OListPropertyContext::OListPropertyContext( SvXMLImport& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + const OPropertyImportRef& _rPropertyImporter ) + :SvXMLImportContext( _rImport, _nPrefix, _rName ) + ,m_xPropertyImporter( _rPropertyImporter ) +{ +} + +//--------------------------------------------------------------------- +void OListPropertyContext::StartElement( const Reference< sax::XAttributeList >& _rxAttrList ) +{ + sal_Int32 nAttributeCount = _rxAttrList->getLength(); + + sal_uInt16 nNamespace; + ::rtl::OUString sAttributeName; + const SvXMLNamespaceMap& rMap = GetImport().GetNamespaceMap(); + for ( sal_Int16 i = 0; i < nAttributeCount; ++i ) { - OSL_ENSURE( m_sPropertyName.getLength() && m_sPropertyType.getLength(), - "OListPropertyContext::EndElement: no property name or type!" ); - - if ( !m_sPropertyName.getLength() || !m_sPropertyType.getLength() ) - return; - - Sequence< Any > aListElements( m_aListValues.size() ); - Any* pListElement = aListElements.getArray(); - com::sun::star::uno::Type aType = PropertyConversion::xmlTypeToUnoType( m_sPropertyType ); - for ( ::std::vector< ::rtl::OUString >::const_iterator values = m_aListValues.begin(); - values != m_aListValues.end(); - ++values, ++pListElement + nNamespace = rMap.GetKeyByAttrName( _rxAttrList->getNameByIndex( i ), &sAttributeName ); + if ( ( XML_NAMESPACE_FORM == nNamespace ) + && ( token::IsXMLToken( sAttributeName, token::XML_PROPERTY_NAME ) ) ) { - *pListElement = PropertyConversion::convertString( GetImport(), aType, *values ); + m_sPropertyName = _rxAttrList->getValueByIndex( i ); } - - PropertyValue aSequenceValue; - aSequenceValue.Name = m_sPropertyName; - aSequenceValue.Value <<= aListElements; - - m_xPropertyImporter->implPushBackGenericPropertyValue( aSequenceValue ); - } - - //--------------------------------------------------------------------- - SvXMLImportContext* OListPropertyContext::CreateChildContext( sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, const Reference< sax::XAttributeList >& /*_rxAttrList*/ ) - { - if ( token::IsXMLToken( _rLocalName, token::XML_LIST_VALUE ) ) + else if ( ( XML_NAMESPACE_OFFICE == nNamespace ) + && ( token::IsXMLToken( sAttributeName, token::XML_VALUE_TYPE ) ) + ) { - m_aListValues.resize( m_aListValues.size() + 1 ); - return new OListValueContext( GetImport(), _nPrefix, _rLocalName, *m_aListValues.rbegin() ); + m_sPropertyType = _rxAttrList->getValueByIndex( i ); } else { - OSL_ENSURE( sal_False, - ::rtl::OString("OListPropertyContext::CreateChildContext: unknown child element (\"") - += ::rtl::OString(_rLocalName.getStr(), _rLocalName.getLength(), RTL_TEXTENCODING_ASCII_US) - += ::rtl::OString("\")!")); - return new SvXMLImportContext( GetImport(), _nPrefix, _rLocalName ); + OSL_ENSURE( false, + ::rtl::OString( "OListPropertyContext::StartElement: unknown child element (\"") + += ::rtl::OString( sAttributeName.getStr(), sAttributeName.getLength(), RTL_TEXTENCODING_ASCII_US ) + += ::rtl::OString( "\")!" ) ); } } +} - //===================================================================== - //= OListValueContext - //===================================================================== - //--------------------------------------------------------------------- - OListValueContext::OListValueContext( SvXMLImport& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, ::rtl::OUString& _rListValueHolder ) - :SvXMLImportContext( _rImport, _nPrefix, _rName ) - ,m_rListValueHolder( _rListValueHolder ) +//--------------------------------------------------------------------- +void OListPropertyContext::EndElement() +{ + OSL_ENSURE( m_sPropertyName.getLength() && m_sPropertyType.getLength(), + "OListPropertyContext::EndElement: no property name or type!" ); + + if ( !m_sPropertyName.getLength() || !m_sPropertyType.getLength() ) + return; + + Sequence< Any > aListElements( m_aListValues.size() ); + Any* pListElement = aListElements.getArray(); + com::sun::star::uno::Type aType = PropertyConversion::xmlTypeToUnoType( m_sPropertyType ); + for ( ::std::vector< ::rtl::OUString >::const_iterator values = m_aListValues.begin(); + values != m_aListValues.end(); + ++values, ++pListElement + ) { + *pListElement = PropertyConversion::convertString( GetImport(), aType, *values ); } - //--------------------------------------------------------------------- - void OListValueContext::StartElement( const Reference< sax::XAttributeList >& _rxAttrList ) + PropertyValue aSequenceValue; + aSequenceValue.Name = m_sPropertyName; + aSequenceValue.Value <<= aListElements; + + m_xPropertyImporter->implPushBackGenericPropertyValue( aSequenceValue ); +} + +//--------------------------------------------------------------------- +SvXMLImportContext* OListPropertyContext::CreateChildContext( sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, const Reference< sax::XAttributeList >& /*_rxAttrList*/ ) +{ + if ( token::IsXMLToken( _rLocalName, token::XML_LIST_VALUE ) ) + { + m_aListValues.resize( m_aListValues.size() + 1 ); + return new OListValueContext( GetImport(), _nPrefix, _rLocalName, *m_aListValues.rbegin() ); + } + else { - sal_Int32 nAttributeCount = _rxAttrList->getLength(); + OSL_ENSURE( sal_False, + ::rtl::OString("OListPropertyContext::CreateChildContext: unknown child element (\"") + += ::rtl::OString(_rLocalName.getStr(), _rLocalName.getLength(), RTL_TEXTENCODING_ASCII_US) + += ::rtl::OString("\")!")); + return new SvXMLImportContext( GetImport(), _nPrefix, _rLocalName ); + } +} + +//===================================================================== +//= OListValueContext +//===================================================================== +//--------------------------------------------------------------------- +OListValueContext::OListValueContext( SvXMLImport& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, ::rtl::OUString& _rListValueHolder ) + :SvXMLImportContext( _rImport, _nPrefix, _rName ) + ,m_rListValueHolder( _rListValueHolder ) +{ +} + +//--------------------------------------------------------------------- +void OListValueContext::StartElement( const Reference< sax::XAttributeList >& _rxAttrList ) +{ + const sal_Int32 nAttributeCount = _rxAttrList->getLength(); - sal_uInt16 nNamespace; - ::rtl::OUString sAttributeName; - for ( sal_Int16 i = 0; i < nAttributeCount; ++i ) + sal_uInt16 nNamespace; + ::rtl::OUString sAttributeName; + const SvXMLNamespaceMap& rMap = GetImport().GetNamespaceMap(); + for ( sal_Int16 i = 0; i < nAttributeCount; ++i ) + { + nNamespace = rMap.GetKeyByAttrName( _rxAttrList->getNameByIndex( i ), &sAttributeName ); + if ( XML_NAMESPACE_OFFICE == nNamespace ) { - nNamespace = GetImport().GetNamespaceMap().GetKeyByAttrName( _rxAttrList->getNameByIndex( i ), &sAttributeName ); - if ( XML_NAMESPACE_OFFICE == nNamespace ) + if ( token::IsXMLToken( sAttributeName, token::XML_VALUE ) + || token::IsXMLToken( sAttributeName, token::XML_STRING_VALUE ) + || token::IsXMLToken( sAttributeName, token::XML_BOOLEAN_VALUE ) + ) { - if ( token::IsXMLToken( sAttributeName, token::XML_VALUE ) - || token::IsXMLToken( sAttributeName, token::XML_STRING_VALUE ) - || token::IsXMLToken( sAttributeName, token::XML_BOOLEAN_VALUE ) - ) - { - m_rListValueHolder = _rxAttrList->getValueByIndex( i ); - continue; - } + m_rListValueHolder = _rxAttrList->getValueByIndex( i ); + continue; } - - OSL_ENSURE( false, - ::rtl::OString( "OListValueContext::StartElement: unknown child element (\"") - += ::rtl::OString( sAttributeName.getStr(), sAttributeName.getLength(), RTL_TEXTENCODING_ASCII_US ) - += ::rtl::OString( "\")!" ) ); } + + OSL_ENSURE( false, + ::rtl::OString( "OListValueContext::StartElement: unknown child element (\"") + += ::rtl::OString( sAttributeName.getStr(), sAttributeName.getLength(), RTL_TEXTENCODING_ASCII_US ) + += ::rtl::OString( "\")!" ) ); } +} //......................................................................... } // namespace xmloff diff --git a/xmloff/source/forms/propertyimport.hxx b/xmloff/source/forms/propertyimport.hxx index 01741dfdfa..2306bd80bd 100644 --- a/xmloff/source/forms/propertyimport.hxx +++ b/xmloff/source/forms/propertyimport.hxx @@ -36,6 +36,7 @@ #include #include #include +#include "layerimport.hxx" namespace com { namespace sun { namespace star { namespace util { struct Time; @@ -64,7 +65,7 @@ namespace xmloff static ::com::sun::star::uno::Type xmlTypeToUnoType( const ::rtl::OUString& _rType ); }; - class IFormsImportContext; + class OFormLayerXMLImport_Impl; //===================================================================== //= OPropertyImport //===================================================================== @@ -87,7 +88,7 @@ namespace xmloff DECLARE_STL_STDKEY_SET( ::rtl::OUString, StringSet ); StringSet m_aEncounteredAttributes; - IFormsImportContext& m_rContext; + OFormLayerXMLImport_Impl& m_rContext; sal_Bool m_bTrackAttributes; @@ -96,7 +97,7 @@ namespace xmloff // style properties) can be done in our own EndElement instead of letting derived classes do this. public: - OPropertyImport(IFormsImportContext& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName); + OPropertyImport(OFormLayerXMLImport_Impl& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName); virtual SvXMLImportContext* CreateChildContext( sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, diff --git a/xmloff/source/forms/strings.hxx b/xmloff/source/forms/strings.hxx index 870f2285e5..4db1c3a066 100644 --- a/xmloff/source/forms/strings.hxx +++ b/xmloff/source/forms/strings.hxx @@ -47,6 +47,7 @@ namespace xmloff const sal_Char* ascii; sal_Int32 length; + inline operator const ConstAsciiString* () const { return this; } inline const ::rtl::OUString* operator& () const; inline operator const ::rtl::OUString& () const { return *(&(*this)); } inline operator const sal_Char* () const { return ascii; } diff --git a/xmloff/source/meta/MetaExportComponent.cxx b/xmloff/source/meta/MetaExportComponent.cxx index 157358ba6c..add1e47305 100644 --- a/xmloff/source/meta/MetaExportComponent.cxx +++ b/xmloff/source/meta/MetaExportComponent.cxx @@ -158,10 +158,11 @@ sal_uInt32 XMLMetaExportComponent::exportDoc( enum XMLTokenEnum ) GetNamespaceMap().GetAttrNameByKey( XML_NAMESPACE_OFFICE ), GetNamespaceMap().GetNameByKey( XML_NAMESPACE_OFFICE ) ); #else - sal_uInt16 nPos = GetNamespaceMap().GetFirstKey(); + const SvXMLNamespaceMap& rMap = GetNamespaceMap(); + sal_uInt16 nPos = rMap.GetFirstKey(); while( USHRT_MAX != nPos ) { - GetAttrList().AddAttribute( GetNamespaceMap().GetAttrNameByKey( nPos ), GetNamespaceMap().GetNameByKey( nPos ) ); + GetAttrList().AddAttribute( rMap.GetAttrNameByKey( nPos ), rMap.GetNameByKey( nPos ) ); nPos = GetNamespaceMap().GetNextKey( nPos ); } #endif diff --git a/xmloff/source/meta/xmlmetae.cxx b/xmloff/source/meta/xmlmetae.cxx index a1a5e498e5..fb2893201f 100644 --- a/xmloff/source/meta/xmlmetae.cxx +++ b/xmloff/source/meta/xmlmetae.cxx @@ -410,7 +410,8 @@ SvXMLMetaExport::startElement(const ::rtl::OUString & i_rName, if (m_level == 0) { // namepace decls: default ones have been written at the root element // non-default ones must be preserved here - for (sal_Int16 i = 0; i < i_xAttribs->getLength(); ++i) { + const sal_Int16 nCount = i_xAttribs->getLength(); + for (sal_Int16 i = 0; i < nCount; ++i) { const ::rtl::OUString name(i_xAttribs->getNameByIndex(i)); if (name.matchAsciiL(s_xmlns, strlen(s_xmlns))) { bool found(false); @@ -440,7 +441,8 @@ SvXMLMetaExport::startElement(const ::rtl::OUString & i_rName, const ::rtl::OUString ns(iter->First); bool found(false); // but only if it is not already there - for (sal_Int16 i = 0; i < i_xAttribs->getLength(); ++i) { + const sal_Int16 nCount = i_xAttribs->getLength(); + for (sal_Int16 i = 0; i < nCount; ++i) { const ::rtl::OUString name(i_xAttribs->getNameByIndex(i)); if (ns.equals(name)) { found = true; @@ -457,7 +459,8 @@ SvXMLMetaExport::startElement(const ::rtl::OUString & i_rName, if (i_rName.matchAsciiL(s_meta, strlen(s_meta))) { // special handling for all elements that may have // xlink:href attributes; these must be made relative - for (sal_Int16 i = 0; i < i_xAttribs->getLength(); ++i) { + const sal_Int16 nLength = i_xAttribs->getLength(); + for (sal_Int16 i = 0; i < nLength; ++i) { const ::rtl::OUString name (i_xAttribs->getNameByIndex (i)); ::rtl::OUString value(i_xAttribs->getValueByIndex(i)); if (name.matchAsciiL(s_href, strlen(s_href))) { @@ -466,7 +469,8 @@ SvXMLMetaExport::startElement(const ::rtl::OUString & i_rName, mrExport.AddAttribute(name, value); } } else { - for (sal_Int16 i = 0; i < i_xAttribs->getLength(); ++i) { + const sal_Int16 nLength = i_xAttribs->getLength(); + for (sal_Int16 i = 0; i < nLength; ++i) { const ::rtl::OUString name (i_xAttribs->getNameByIndex(i)); const ::rtl::OUString value (i_xAttribs->getValueByIndex(i)); mrExport.AddAttribute(name, value); diff --git a/xmloff/source/script/XMLEventImportHelper.cxx b/xmloff/source/script/XMLEventImportHelper.cxx index 32ce276a8b..d1697d92a9 100644 --- a/xmloff/source/script/XMLEventImportHelper.cxx +++ b/xmloff/source/script/XMLEventImportHelper.cxx @@ -115,7 +115,7 @@ void XMLEventImportHelper::PopTranslationTable() { DBG_ASSERT(aEventNameMapList.size() > 0, "no translation tables left to pop"); - if (aEventNameMapList.size() > 0) + if ( !aEventNameMapList.empty() ) { // delete current and install old map delete pEventNameMap; diff --git a/xmloff/source/style/GradientStyle.cxx b/xmloff/source/style/GradientStyle.cxx index 96f46a766c..5652946d04 100644 --- a/xmloff/source/style/GradientStyle.cxx +++ b/xmloff/source/style/GradientStyle.cxx @@ -68,21 +68,6 @@ enum SvXMLTokenMapAttrs XML_TOK_TABSTOP_END=XML_TOK_UNKNOWN }; -static __FAR_DATA SvXMLTokenMapEntry aGradientAttrTokenMap[] = -{ - { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_GRADIENT_NAME }, - { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_GRADIENT_DISPLAY_NAME }, - { XML_NAMESPACE_DRAW, XML_STYLE, XML_TOK_GRADIENT_STYLE }, - { XML_NAMESPACE_DRAW, XML_CX, XML_TOK_GRADIENT_CX }, - { XML_NAMESPACE_DRAW, XML_CY, XML_TOK_GRADIENT_CY }, - { XML_NAMESPACE_DRAW, XML_START_COLOR, XML_TOK_GRADIENT_STARTCOLOR }, - { XML_NAMESPACE_DRAW, XML_END_COLOR, XML_TOK_GRADIENT_ENDCOLOR }, - { XML_NAMESPACE_DRAW, XML_START_INTENSITY, XML_TOK_GRADIENT_STARTINT }, - { XML_NAMESPACE_DRAW, XML_END_INTENSITY, XML_TOK_GRADIENT_ENDINT }, - { XML_NAMESPACE_DRAW, XML_GRADIENT_ANGLE, XML_TOK_GRADIENT_ANGLE }, - { XML_NAMESPACE_DRAW, XML_GRADIENT_BORDER, XML_TOK_GRADIENT_BORDER }, - XML_TOKEN_MAP_END -}; SvXMLEnumMapEntry __READONLY_DATA pXML_GradientStyle_Enum[] = { @@ -128,6 +113,23 @@ sal_Bool XMLGradientStyleImport::importXML( aGradient.Angle = 0; aGradient.Border = 0; + { + static __FAR_DATA SvXMLTokenMapEntry aGradientAttrTokenMap[] = +{ + { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_GRADIENT_NAME }, + { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_GRADIENT_DISPLAY_NAME }, + { XML_NAMESPACE_DRAW, XML_STYLE, XML_TOK_GRADIENT_STYLE }, + { XML_NAMESPACE_DRAW, XML_CX, XML_TOK_GRADIENT_CX }, + { XML_NAMESPACE_DRAW, XML_CY, XML_TOK_GRADIENT_CY }, + { XML_NAMESPACE_DRAW, XML_START_COLOR, XML_TOK_GRADIENT_STARTCOLOR }, + { XML_NAMESPACE_DRAW, XML_END_COLOR, XML_TOK_GRADIENT_ENDCOLOR }, + { XML_NAMESPACE_DRAW, XML_START_INTENSITY, XML_TOK_GRADIENT_STARTINT }, + { XML_NAMESPACE_DRAW, XML_END_INTENSITY, XML_TOK_GRADIENT_ENDINT }, + { XML_NAMESPACE_DRAW, XML_GRADIENT_ANGLE, XML_TOK_GRADIENT_ANGLE }, + { XML_NAMESPACE_DRAW, XML_GRADIENT_BORDER, XML_TOK_GRADIENT_BORDER }, + XML_TOKEN_MAP_END +}; + SvXMLTokenMap aTokenMap( aGradientAttrTokenMap ); SvXMLNamespaceMap& rNamespaceMap = rImport.GetNamespaceMap(); @@ -225,6 +227,8 @@ sal_Bool XMLGradientStyleImport::importXML( bRet = bHasName && bHasStyle && bHasStartColor && bHasEndColor; + } + return bRet; } diff --git a/xmloff/source/style/HatchStyle.cxx b/xmloff/source/style/HatchStyle.cxx index bc6b4847b2..f0893b8077 100644 --- a/xmloff/source/style/HatchStyle.cxx +++ b/xmloff/source/style/HatchStyle.cxx @@ -60,16 +60,6 @@ enum SvXMLTokenMapAttrs XML_TOK_TABSTOP_END=XML_TOK_UNKNOWN }; -static __FAR_DATA SvXMLTokenMapEntry aHatchAttrTokenMap[] = -{ - { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_HATCH_NAME }, - { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_HATCH_DISPLAY_NAME }, - { XML_NAMESPACE_DRAW, XML_STYLE, XML_TOK_HATCH_STYLE }, - { XML_NAMESPACE_DRAW, XML_COLOR, XML_TOK_HATCH_COLOR }, - { XML_NAMESPACE_DRAW, XML_HATCH_DISTANCE, XML_TOK_HATCH_DISTANCE }, - { XML_NAMESPACE_DRAW, XML_ROTATION, XML_TOK_HATCH_ROTATION }, - XML_TOKEN_MAP_END -}; SvXMLEnumMapEntry __READONLY_DATA pXML_HatchStyle_Enum[] = { @@ -112,6 +102,18 @@ sal_Bool XMLHatchStyleImport::importXML( aHatch.Distance = 0; aHatch.Angle = 0; + { + static __FAR_DATA SvXMLTokenMapEntry aHatchAttrTokenMap[] = +{ + { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_HATCH_NAME }, + { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_HATCH_DISPLAY_NAME }, + { XML_NAMESPACE_DRAW, XML_STYLE, XML_TOK_HATCH_STYLE }, + { XML_NAMESPACE_DRAW, XML_COLOR, XML_TOK_HATCH_COLOR }, + { XML_NAMESPACE_DRAW, XML_HATCH_DISTANCE, XML_TOK_HATCH_DISTANCE }, + { XML_NAMESPACE_DRAW, XML_ROTATION, XML_TOK_HATCH_ROTATION }, + XML_TOKEN_MAP_END +}; + SvXMLTokenMap aTokenMap( aHatchAttrTokenMap ); SvXMLNamespaceMap rNamespaceMap = rImport.GetNamespaceMap(); SvXMLUnitConverter& rUnitConverter = rImport.GetMM100UnitConverter(); @@ -179,6 +181,8 @@ sal_Bool XMLHatchStyleImport::importXML( bRet = bHasName && bHasStyle && bHasColor && bHasDist; + } + return bRet; } diff --git a/xmloff/source/style/ImageStyle.cxx b/xmloff/source/style/ImageStyle.cxx index ce8ddec58a..c53ce82061 100644 --- a/xmloff/source/style/ImageStyle.cxx +++ b/xmloff/source/style/ImageStyle.cxx @@ -63,18 +63,6 @@ enum SvXMLTokenMapAttrs XML_TOK_TABSTOP_END=XML_TOK_UNKNOWN }; -static __FAR_DATA SvXMLTokenMapEntry aHatchAttrTokenMap[] = -{ - { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_IMAGE_NAME }, - { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_IMAGE_DISPLAY_NAME }, - { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_IMAGE_URL }, - { XML_NAMESPACE_XLINK, XML_TYPE, XML_TOK_IMAGE_TYPE }, - { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_IMAGE_SHOW }, - { XML_NAMESPACE_XLINK, XML_ACTUATE, XML_TOK_IMAGE_ACTUATE }, - /*{ XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_IMAGE_URL }, - { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_IMAGE_URL },*/ - XML_TOKEN_MAP_END -}; XMLImageStyle::XMLImageStyle() { @@ -165,6 +153,20 @@ sal_Bool XMLImageStyle::ImpImportXML( const uno::Reference< xml::sax::XAttribute OUString aStrURL; OUString aDisplayName; + { + static __FAR_DATA SvXMLTokenMapEntry aHatchAttrTokenMap[] = +{ + { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_IMAGE_NAME }, + { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_IMAGE_DISPLAY_NAME }, + { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_IMAGE_URL }, + { XML_NAMESPACE_XLINK, XML_TYPE, XML_TOK_IMAGE_TYPE }, + { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_IMAGE_SHOW }, + { XML_NAMESPACE_XLINK, XML_ACTUATE, XML_TOK_IMAGE_ACTUATE }, + /*{ XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_IMAGE_URL }, + { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_IMAGE_URL },*/ + XML_TOKEN_MAP_END +}; + SvXMLTokenMap aTokenMap( aHatchAttrTokenMap ); sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; @@ -220,5 +222,7 @@ sal_Bool XMLImageStyle::ImpImportXML( const uno::Reference< xml::sax::XAttribute bRet = bHasName && bHasHRef; + } + return bRet; } diff --git a/xmloff/source/style/TransGradientStyle.cxx b/xmloff/source/style/TransGradientStyle.cxx index 4fdd6ffbcb..65381d4d3f 100644 --- a/xmloff/source/style/TransGradientStyle.cxx +++ b/xmloff/source/style/TransGradientStyle.cxx @@ -64,19 +64,6 @@ enum SvXMLTokenMapAttrs XML_TOK_TABSTOP_END=XML_TOK_UNKNOWN }; -static __FAR_DATA SvXMLTokenMapEntry aTrGradientAttrTokenMap[] = -{ - { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_GRADIENT_NAME }, - { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_GRADIENT_DISPLAY_NAME }, - { XML_NAMESPACE_DRAW, XML_STYLE, XML_TOK_GRADIENT_STYLE }, - { XML_NAMESPACE_DRAW, XML_CX, XML_TOK_GRADIENT_CX }, - { XML_NAMESPACE_DRAW, XML_CY, XML_TOK_GRADIENT_CY }, - { XML_NAMESPACE_DRAW, XML_START, XML_TOK_GRADIENT_START }, - { XML_NAMESPACE_DRAW, XML_END, XML_TOK_GRADIENT_END }, - { XML_NAMESPACE_DRAW, XML_GRADIENT_ANGLE, XML_TOK_GRADIENT_ANGLE }, - { XML_NAMESPACE_DRAW, XML_GRADIENT_BORDER, XML_TOK_GRADIENT_BORDER }, - XML_TOKEN_MAP_END -}; SvXMLEnumMapEntry __READONLY_DATA pXML_GradientStyle_Enum[] = { @@ -121,6 +108,21 @@ sal_Bool XMLTransGradientStyleImport::importXML( aGradient.Angle = 0; aGradient.Border = 0; + { + static __FAR_DATA SvXMLTokenMapEntry aTrGradientAttrTokenMap[] = +{ + { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_GRADIENT_NAME }, + { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_GRADIENT_DISPLAY_NAME }, + { XML_NAMESPACE_DRAW, XML_STYLE, XML_TOK_GRADIENT_STYLE }, + { XML_NAMESPACE_DRAW, XML_CX, XML_TOK_GRADIENT_CX }, + { XML_NAMESPACE_DRAW, XML_CY, XML_TOK_GRADIENT_CY }, + { XML_NAMESPACE_DRAW, XML_START, XML_TOK_GRADIENT_START }, + { XML_NAMESPACE_DRAW, XML_END, XML_TOK_GRADIENT_END }, + { XML_NAMESPACE_DRAW, XML_GRADIENT_ANGLE, XML_TOK_GRADIENT_ANGLE }, + { XML_NAMESPACE_DRAW, XML_GRADIENT_BORDER, XML_TOK_GRADIENT_BORDER }, + XML_TOKEN_MAP_END +}; + SvXMLTokenMap aTokenMap( aTrGradientAttrTokenMap ); SvXMLNamespaceMap& rNamespaceMap = rImport.GetNamespaceMap(); @@ -218,6 +220,8 @@ sal_Bool XMLTransGradientStyleImport::importXML( bRet = bHasName && bHasStyle; + } + return bRet; } diff --git a/xmloff/source/style/XMLBackgroundImageContext.cxx b/xmloff/source/style/XMLBackgroundImageContext.cxx index 5229b5be1c..5e7e5534c2 100644 --- a/xmloff/source/style/XMLBackgroundImageContext.cxx +++ b/xmloff/source/style/XMLBackgroundImageContext.cxx @@ -62,27 +62,24 @@ enum SvXMLTokenMapAttrs XML_TOK_BGIMG_OPACITY, XML_TOK_NGIMG_END=XML_TOK_UNKNOWN }; - -static __FAR_DATA SvXMLTokenMapEntry aBGImgAttributesAttrTokenMap[] = +const SvXMLTokenMapEntry* lcl_getBGImgAttributesAttrTokenMap() { - { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_BGIMG_HREF }, - { XML_NAMESPACE_XLINK, XML_TYPE, XML_TOK_BGIMG_TYPE }, - { XML_NAMESPACE_XLINK, XML_ACTUATE, XML_TOK_BGIMG_ACTUATE }, - { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_BGIMG_SHOW }, - { XML_NAMESPACE_STYLE, XML_POSITION, XML_TOK_BGIMG_POSITION }, - { XML_NAMESPACE_STYLE, XML_REPEAT, XML_TOK_BGIMG_REPEAT }, - { XML_NAMESPACE_STYLE, XML_FILTER_NAME, XML_TOK_BGIMG_FILTER }, - { XML_NAMESPACE_DRAW, XML_OPACITY, XML_TOK_BGIMG_OPACITY }, - XML_TOKEN_MAP_END -}; + static __FAR_DATA SvXMLTokenMapEntry aBGImgAttributesAttrTokenMap[] = + { + { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_BGIMG_HREF }, + { XML_NAMESPACE_XLINK, XML_TYPE, XML_TOK_BGIMG_TYPE }, + { XML_NAMESPACE_XLINK, XML_ACTUATE, XML_TOK_BGIMG_ACTUATE }, + { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_BGIMG_SHOW }, + { XML_NAMESPACE_STYLE, XML_POSITION, XML_TOK_BGIMG_POSITION }, + { XML_NAMESPACE_STYLE, XML_REPEAT, XML_TOK_BGIMG_REPEAT }, + { XML_NAMESPACE_STYLE, XML_FILTER_NAME, XML_TOK_BGIMG_FILTER }, + { XML_NAMESPACE_DRAW, XML_OPACITY, XML_TOK_BGIMG_OPACITY }, + XML_TOKEN_MAP_END + }; + return aBGImgAttributesAttrTokenMap; +} + -SvXMLEnumMapEntry psXML_BrushRepeat[] = -{ - { XML_BACKGROUND_REPEAT, GraphicLocation_TILED }, - { XML_BACKGROUND_NO_REPEAT, GraphicLocation_MIDDLE_MIDDLE }, - { XML_BACKGROUND_STRETCH, GraphicLocation_AREA }, - { XML_TOKEN_INVALID, 0 } -}; SvXMLEnumMapEntry psXML_BrushHoriPos[] = { @@ -184,7 +181,7 @@ TYPEINIT1( XMLBackgroundImageContext, XMLElementPropertyContext ); void XMLBackgroundImageContext::ProcessAttrs( const Reference< xml::sax::XAttributeList >& xAttrList ) { - SvXMLTokenMap aTokenMap( aBGImgAttributesAttrTokenMap ); + SvXMLTokenMap aTokenMap( lcl_getBGImgAttributesAttrTokenMap() ); ePos = GraphicLocation_NONE; @@ -301,6 +298,13 @@ void XMLBackgroundImageContext::ProcessAttrs( case XML_TOK_BGIMG_REPEAT: { sal_uInt16 nPos = GraphicLocation_NONE; + static SvXMLEnumMapEntry psXML_BrushRepeat[] = + { + { XML_BACKGROUND_REPEAT, GraphicLocation_TILED }, + { XML_BACKGROUND_NO_REPEAT, GraphicLocation_MIDDLE_MIDDLE }, + { XML_BACKGROUND_STRETCH, GraphicLocation_AREA }, + { XML_TOKEN_INVALID, 0 } + }; if( SvXMLUnitConverter::convertEnum( nPos, rValue, psXML_BrushRepeat ) ) { diff --git a/xmloff/source/style/XMLFontStylesContext.cxx b/xmloff/source/style/XMLFontStylesContext.cxx index c16968e0d3..3bb6d98785 100644 --- a/xmloff/source/style/XMLFontStylesContext.cxx +++ b/xmloff/source/style/XMLFontStylesContext.cxx @@ -49,7 +49,7 @@ #ifndef _XMLOFF_XMLFONTSTYLESCONTEXT_HXX #include #endif - +#include using ::rtl::OUString; using ::rtl::OUStringBuffer; @@ -76,21 +76,25 @@ enum XMLFontStyleAttrTokens XML_TOK_FONT_STYLE_ATTR_END=XML_TOK_UNKNOWN }; -static __FAR_DATA SvXMLTokenMapEntry aFontStyleAttrTokenMap[] = +const SvXMLTokenMapEntry* lcl_getFontStyleAttrTokenMap() { - { XML_NAMESPACE_SVG, XML_FONT_FAMILY, - XML_TOK_FONT_STYLE_ATTR_FAMILY }, - { XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC, - XML_TOK_FONT_STYLE_ATTR_FAMILY_GENERIC }, - { XML_NAMESPACE_STYLE, XML_FONT_ADORNMENTS, - XML_TOK_FONT_STYLE_ATTR_STYLENAME }, - { XML_NAMESPACE_STYLE, XML_FONT_PITCH, - XML_TOK_FONT_STYLE_ATTR_PITCH }, - { XML_NAMESPACE_STYLE, XML_FONT_CHARSET, - XML_TOK_FONT_STYLE_ATTR_CHARSET }, - - XML_TOKEN_MAP_END -}; + static __FAR_DATA SvXMLTokenMapEntry aFontStyleAttrTokenMap[] = + { + { XML_NAMESPACE_SVG, XML_FONT_FAMILY, + XML_TOK_FONT_STYLE_ATTR_FAMILY }, + { XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC, + XML_TOK_FONT_STYLE_ATTR_FAMILY_GENERIC }, + { XML_NAMESPACE_STYLE, XML_FONT_ADORNMENTS, + XML_TOK_FONT_STYLE_ATTR_STYLENAME }, + { XML_NAMESPACE_STYLE, XML_FONT_PITCH, + XML_TOK_FONT_STYLE_ATTR_PITCH }, + { XML_NAMESPACE_STYLE, XML_FONT_CHARSET, + XML_TOK_FONT_STYLE_ATTR_CHARSET }, + + XML_TOKEN_MAP_END + }; + return aFontStyleAttrTokenMap; +} class XMLFontStyleContext_Impl : public SvXMLStyleContext { @@ -258,7 +262,7 @@ XMLFontStylesContext::XMLFontStylesContext( SvXMLImport& rImport, pFamilyHdl( new XMLFontFamilyPropHdl ), pPitchHdl( new XMLFontPitchPropHdl ), pEncHdl( new XMLFontEncodingPropHdl ), - pFontStyleAttrTokenMap( new SvXMLTokenMap(aFontStyleAttrTokenMap) ), + pFontStyleAttrTokenMap( new SvXMLTokenMap(lcl_getFontStyleAttrTokenMap()) ), eDfltEncoding( eDfltEnc ) { } diff --git a/xmloff/source/style/XMLFootnoteSeparatorExport.cxx b/xmloff/source/style/XMLFootnoteSeparatorExport.cxx index 659977ff7e..2f44af15ca 100644 --- a/xmloff/source/style/XMLFootnoteSeparatorExport.cxx +++ b/xmloff/source/style/XMLFootnoteSeparatorExport.cxx @@ -60,14 +60,6 @@ XMLFootnoteSeparatorExport::~XMLFootnoteSeparatorExport() } -static const SvXMLEnumMapEntry aXML_HorizontalAdjust_Enum[] = -{ - { XML_LEFT, text::HorizontalAdjust_LEFT }, - { XML_CENTER, text::HorizontalAdjust_CENTER }, - { XML_RIGHT, text::HorizontalAdjust_RIGHT }, - { XML_TOKEN_INVALID, 0 } -}; - void XMLFootnoteSeparatorExport::exportXML( const vector * pProperties, sal_uInt32 @@ -148,6 +140,14 @@ void XMLFootnoteSeparatorExport::exportXML( } // adjustment + static const SvXMLEnumMapEntry aXML_HorizontalAdjust_Enum[] = + { + { XML_LEFT, text::HorizontalAdjust_LEFT }, + { XML_CENTER, text::HorizontalAdjust_CENTER }, + { XML_RIGHT, text::HorizontalAdjust_RIGHT }, + { XML_TOKEN_INVALID, 0 } + }; + if (rExport.GetMM100UnitConverter().convertEnum( sBuf, eLineAdjust, aXML_HorizontalAdjust_Enum)) { diff --git a/xmloff/source/style/XMLFootnoteSeparatorImport.cxx b/xmloff/source/style/XMLFootnoteSeparatorImport.cxx index bfada994d6..cd07088eb1 100644 --- a/xmloff/source/style/XMLFootnoteSeparatorImport.cxx +++ b/xmloff/source/style/XMLFootnoteSeparatorImport.cxx @@ -86,15 +86,6 @@ XMLFootnoteSeparatorImport::~XMLFootnoteSeparatorImport() { } - -static const SvXMLEnumMapEntry aXML_HorizontalAdjust_Enum[] = -{ - { XML_LEFT, text::HorizontalAdjust_LEFT }, - { XML_CENTER, text::HorizontalAdjust_CENTER }, - { XML_RIGHT, text::HorizontalAdjust_RIGHT }, - { XML_TOKEN_INVALID, 0 } -}; - void XMLFootnoteSeparatorImport::StartElement( const Reference & xAttrList) { @@ -114,12 +105,11 @@ void XMLFootnoteSeparatorImport::StartElement( sal_uInt16 nPrefix = GetImport().GetNamespaceMap(). GetKeyByAttrName( xAttrList->getNameByIndex(nAttr), &sLocalName ); - OUString sAttrValue = xAttrList->getValueByIndex(nAttr); - - sal_Int32 nTmp; if (XML_NAMESPACE_STYLE == nPrefix) { + OUString sAttrValue = xAttrList->getValueByIndex(nAttr); + sal_Int32 nTmp; if (IsXMLToken( sLocalName, XML_WIDTH )) { if (GetImport().GetMM100UnitConverter().convertMeasure( @@ -143,6 +133,14 @@ void XMLFootnoteSeparatorImport::StartElement( else if (IsXMLToken( sLocalName, XML_ADJUSTMENT )) { sal_uInt16 nTmpU; + static const SvXMLEnumMapEntry aXML_HorizontalAdjust_Enum[] = + { + { XML_LEFT, text::HorizontalAdjust_LEFT }, + { XML_CENTER, text::HorizontalAdjust_CENTER }, + { XML_RIGHT, text::HorizontalAdjust_RIGHT }, + { XML_TOKEN_INVALID, 0 } + }; + if (SvXMLUnitConverter::convertEnum( nTmpU, sAttrValue, aXML_HorizontalAdjust_Enum)) eLineAdjust = (sal_Int16)nTmpU; diff --git a/xmloff/source/style/fonthdl.cxx b/xmloff/source/style/fonthdl.cxx index 0a8ae76666..5ad8d761ae 100644 --- a/xmloff/source/style/fonthdl.cxx +++ b/xmloff/source/style/fonthdl.cxx @@ -51,17 +51,21 @@ using ::rtl::OUStringBuffer; using namespace ::com::sun::star; using namespace ::xmloff::token; -static SvXMLEnumMapEntry __READONLY_DATA aFontFamilyGenericMapping[] = +const SvXMLEnumMapEntry* lcl_getFontFamilyGenericMapping() { - { XML_DECORATIVE, FAMILY_DECORATIVE }, - - { XML_MODERN, FAMILY_MODERN }, - { XML_ROMAN, FAMILY_ROMAN }, - { XML_SCRIPT, FAMILY_SCRIPT }, - { XML_SWISS, FAMILY_SWISS }, - { XML_SYSTEM, FAMILY_SYSTEM }, - { XML_TOKEN_INVALID, 0 } -}; + static SvXMLEnumMapEntry __READONLY_DATA aFontFamilyGenericMapping[] = + { + { XML_DECORATIVE, FAMILY_DECORATIVE }, + + { XML_MODERN, FAMILY_MODERN }, + { XML_ROMAN, FAMILY_ROMAN }, + { XML_SCRIPT, FAMILY_SCRIPT }, + { XML_SWISS, FAMILY_SWISS }, + { XML_SYSTEM, FAMILY_SYSTEM }, + { XML_TOKEN_INVALID, 0 } + }; + return aFontFamilyGenericMapping; +} static SvXMLEnumMapEntry __READONLY_DATA aFontPitchMapping[] = { @@ -219,7 +223,7 @@ XMLFontFamilyPropHdl::~XMLFontFamilyPropHdl() sal_Bool XMLFontFamilyPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const { sal_uInt16 eNewFamily; - sal_Bool bRet = SvXMLUnitConverter::convertEnum( eNewFamily, rStrImpValue, aFontFamilyGenericMapping ); + sal_Bool bRet = SvXMLUnitConverter::convertEnum( eNewFamily, rStrImpValue, lcl_getFontFamilyGenericMapping() ); if( bRet ) rValue <<= (sal_Int16)eNewFamily; @@ -236,7 +240,7 @@ sal_Bool XMLFontFamilyPropHdl::exportXML( OUString& rStrExpValue, const uno::Any { FontFamily eFamily = (FontFamily)nFamily; if( eFamily != FAMILY_DONTKNOW ) - bRet = SvXMLUnitConverter::convertEnum( aOut, eFamily, aFontFamilyGenericMapping ); + bRet = SvXMLUnitConverter::convertEnum( aOut, eFamily, lcl_getFontFamilyGenericMapping() ); } rStrExpValue = aOut.makeStringAndClear(); diff --git a/xmloff/source/style/xmlexppr.cxx b/xmloff/source/style/xmlexppr.cxx index 0b465de9dc..eac3d834cc 100644 --- a/xmloff/source/style/xmlexppr.cxx +++ b/xmloff/source/style/xmlexppr.cxx @@ -725,7 +725,7 @@ vector< XMLPropertyState > SvXMLExportPropertyMapper::_Filter( } // Call centext-filter - if( aPropStateArray.size() > 0 ) + if( !aPropStateArray.empty() ) ContextFilter( aPropStateArray, xPropSet ); // Have to do if we change from a vector to a list or something like that diff --git a/xmloff/source/style/xmlnumfi.cxx b/xmloff/source/style/xmlnumfi.cxx index 55471a59f2..c61e7a87ca 100644 --- a/xmloff/source/style/xmlnumfi.cxx +++ b/xmloff/source/style/xmlnumfi.cxx @@ -334,82 +334,6 @@ static ColorData aNumFmtStdColors[XML_NUMF_COLORCOUNT] = // token maps // -static __FAR_DATA SvXMLTokenMapEntry aStylesElemMap[] = -{ - // style elements - { XML_NAMESPACE_NUMBER, XML_NUMBER_STYLE, XML_TOK_STYLES_NUMBER_STYLE }, - { XML_NAMESPACE_NUMBER, XML_CURRENCY_STYLE, XML_TOK_STYLES_CURRENCY_STYLE }, - { XML_NAMESPACE_NUMBER, XML_PERCENTAGE_STYLE, XML_TOK_STYLES_PERCENTAGE_STYLE }, - { XML_NAMESPACE_NUMBER, XML_DATE_STYLE, XML_TOK_STYLES_DATE_STYLE }, - { XML_NAMESPACE_NUMBER, XML_TIME_STYLE, XML_TOK_STYLES_TIME_STYLE }, - { XML_NAMESPACE_NUMBER, XML_BOOLEAN_STYLE, XML_TOK_STYLES_BOOLEAN_STYLE }, - { XML_NAMESPACE_NUMBER, XML_TEXT_STYLE, XML_TOK_STYLES_TEXT_STYLE }, - XML_TOKEN_MAP_END -}; - -static __FAR_DATA SvXMLTokenMapEntry aStyleElemMap[] = -{ - // elements in a style - { XML_NAMESPACE_NUMBER, XML_TEXT, XML_TOK_STYLE_TEXT }, - { XML_NAMESPACE_NUMBER, XML_NUMBER, XML_TOK_STYLE_NUMBER }, - { XML_NAMESPACE_NUMBER, XML_SCIENTIFIC_NUMBER, XML_TOK_STYLE_SCIENTIFIC_NUMBER }, - { XML_NAMESPACE_NUMBER, XML_FRACTION, XML_TOK_STYLE_FRACTION }, - { XML_NAMESPACE_NUMBER, XML_CURRENCY_SYMBOL, XML_TOK_STYLE_CURRENCY_SYMBOL }, - { XML_NAMESPACE_NUMBER, XML_DAY, XML_TOK_STYLE_DAY }, - { XML_NAMESPACE_NUMBER, XML_MONTH, XML_TOK_STYLE_MONTH }, - { XML_NAMESPACE_NUMBER, XML_YEAR, XML_TOK_STYLE_YEAR }, - { XML_NAMESPACE_NUMBER, XML_ERA, XML_TOK_STYLE_ERA }, - { XML_NAMESPACE_NUMBER, XML_DAY_OF_WEEK, XML_TOK_STYLE_DAY_OF_WEEK }, - { XML_NAMESPACE_NUMBER, XML_WEEK_OF_YEAR, XML_TOK_STYLE_WEEK_OF_YEAR }, - { XML_NAMESPACE_NUMBER, XML_QUARTER, XML_TOK_STYLE_QUARTER }, - { XML_NAMESPACE_NUMBER, XML_HOURS, XML_TOK_STYLE_HOURS }, - { XML_NAMESPACE_NUMBER, XML_AM_PM, XML_TOK_STYLE_AM_PM }, - { XML_NAMESPACE_NUMBER, XML_MINUTES, XML_TOK_STYLE_MINUTES }, - { XML_NAMESPACE_NUMBER, XML_SECONDS, XML_TOK_STYLE_SECONDS }, - { XML_NAMESPACE_NUMBER, XML_BOOLEAN, XML_TOK_STYLE_BOOLEAN }, - { XML_NAMESPACE_NUMBER, XML_TEXT_CONTENT, XML_TOK_STYLE_TEXT_CONTENT }, - { XML_NAMESPACE_STYLE, XML_TEXT_PROPERTIES, XML_TOK_STYLE_PROPERTIES }, - { XML_NAMESPACE_STYLE, XML_MAP, XML_TOK_STYLE_MAP }, - XML_TOKEN_MAP_END -}; - -static __FAR_DATA SvXMLTokenMapEntry aStyleAttrMap[] = -{ - // attributes for a style - { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_STYLE_ATTR_NAME }, - { XML_NAMESPACE_NUMBER, XML_LANGUAGE, XML_TOK_STYLE_ATTR_LANGUAGE }, - { XML_NAMESPACE_NUMBER, XML_COUNTRY, XML_TOK_STYLE_ATTR_COUNTRY }, - { XML_NAMESPACE_NUMBER, XML_TITLE, XML_TOK_STYLE_ATTR_TITLE }, - { XML_NAMESPACE_NUMBER, XML_AUTOMATIC_ORDER, XML_TOK_STYLE_ATTR_AUTOMATIC_ORDER }, - { XML_NAMESPACE_NUMBER, XML_FORMAT_SOURCE, XML_TOK_STYLE_ATTR_FORMAT_SOURCE }, - { XML_NAMESPACE_NUMBER, XML_TRUNCATE_ON_OVERFLOW, XML_TOK_STYLE_ATTR_TRUNCATE_ON_OVERFLOW }, - { XML_NAMESPACE_STYLE, XML_VOLATILE, XML_TOK_STYLE_ATTR_VOLATILE }, - { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_FORMAT, XML_TOK_STYLE_ATTR_TRANSL_FORMAT }, - { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_LANGUAGE, XML_TOK_STYLE_ATTR_TRANSL_LANGUAGE }, - { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_COUNTRY, XML_TOK_STYLE_ATTR_TRANSL_COUNTRY }, - { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_STYLE, XML_TOK_STYLE_ATTR_TRANSL_STYLE }, - XML_TOKEN_MAP_END -}; - -static __FAR_DATA SvXMLTokenMapEntry aStyleElemAttrMap[] = -{ - // attributes for an element within a style - { XML_NAMESPACE_NUMBER, XML_DECIMAL_PLACES, XML_TOK_ELEM_ATTR_DECIMAL_PLACES }, - { XML_NAMESPACE_NUMBER, XML_MIN_INTEGER_DIGITS, XML_TOK_ELEM_ATTR_MIN_INTEGER_DIGITS }, - { XML_NAMESPACE_NUMBER, XML_GROUPING, XML_TOK_ELEM_ATTR_GROUPING }, - { XML_NAMESPACE_NUMBER, XML_DISPLAY_FACTOR, XML_TOK_ELEM_ATTR_DISPLAY_FACTOR }, - { XML_NAMESPACE_NUMBER, XML_DECIMAL_REPLACEMENT, XML_TOK_ELEM_ATTR_DECIMAL_REPLACEMENT }, - { XML_NAMESPACE_NUMBER, XML_MIN_EXPONENT_DIGITS, XML_TOK_ELEM_ATTR_MIN_EXPONENT_DIGITS }, - { XML_NAMESPACE_NUMBER, XML_MIN_NUMERATOR_DIGITS, XML_TOK_ELEM_ATTR_MIN_NUMERATOR_DIGITS }, - { XML_NAMESPACE_NUMBER, XML_MIN_DENOMINATOR_DIGITS, XML_TOK_ELEM_ATTR_MIN_DENOMINATOR_DIGITS }, - { XML_NAMESPACE_NUMBER, XML_LANGUAGE, XML_TOK_ELEM_ATTR_LANGUAGE }, - { XML_NAMESPACE_NUMBER, XML_COUNTRY, XML_TOK_ELEM_ATTR_COUNTRY }, - { XML_NAMESPACE_NUMBER, XML_STYLE, XML_TOK_ELEM_ATTR_STYLE }, - { XML_NAMESPACE_NUMBER, XML_TEXTUAL, XML_TOK_ELEM_ATTR_TEXTUAL }, - { XML_NAMESPACE_NUMBER, XML_CALENDAR, XML_TOK_ELEM_ATTR_CALENDAR }, - XML_TOKEN_MAP_END -}; - // maps for SvXMLUnitConverter::convertEnum static __FAR_DATA SvXMLEnumMapEntry aStyleValueMap[] = @@ -581,28 +505,112 @@ void SvXMLNumImpData::RemoveVolatileFormats() const SvXMLTokenMap& SvXMLNumImpData::GetStylesElemTokenMap() { if( !pStylesElemTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aStylesElemMap[] = + { + // style elements + { XML_NAMESPACE_NUMBER, XML_NUMBER_STYLE, XML_TOK_STYLES_NUMBER_STYLE }, + { XML_NAMESPACE_NUMBER, XML_CURRENCY_STYLE, XML_TOK_STYLES_CURRENCY_STYLE }, + { XML_NAMESPACE_NUMBER, XML_PERCENTAGE_STYLE, XML_TOK_STYLES_PERCENTAGE_STYLE }, + { XML_NAMESPACE_NUMBER, XML_DATE_STYLE, XML_TOK_STYLES_DATE_STYLE }, + { XML_NAMESPACE_NUMBER, XML_TIME_STYLE, XML_TOK_STYLES_TIME_STYLE }, + { XML_NAMESPACE_NUMBER, XML_BOOLEAN_STYLE, XML_TOK_STYLES_BOOLEAN_STYLE }, + { XML_NAMESPACE_NUMBER, XML_TEXT_STYLE, XML_TOK_STYLES_TEXT_STYLE }, + XML_TOKEN_MAP_END + }; + pStylesElemTokenMap = new SvXMLTokenMap( aStylesElemMap ); + } return *pStylesElemTokenMap; } const SvXMLTokenMap& SvXMLNumImpData::GetStyleElemTokenMap() { if( !pStyleElemTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aStyleElemMap[] = + { + // elements in a style + { XML_NAMESPACE_NUMBER, XML_TEXT, XML_TOK_STYLE_TEXT }, + { XML_NAMESPACE_NUMBER, XML_NUMBER, XML_TOK_STYLE_NUMBER }, + { XML_NAMESPACE_NUMBER, XML_SCIENTIFIC_NUMBER, XML_TOK_STYLE_SCIENTIFIC_NUMBER }, + { XML_NAMESPACE_NUMBER, XML_FRACTION, XML_TOK_STYLE_FRACTION }, + { XML_NAMESPACE_NUMBER, XML_CURRENCY_SYMBOL, XML_TOK_STYLE_CURRENCY_SYMBOL }, + { XML_NAMESPACE_NUMBER, XML_DAY, XML_TOK_STYLE_DAY }, + { XML_NAMESPACE_NUMBER, XML_MONTH, XML_TOK_STYLE_MONTH }, + { XML_NAMESPACE_NUMBER, XML_YEAR, XML_TOK_STYLE_YEAR }, + { XML_NAMESPACE_NUMBER, XML_ERA, XML_TOK_STYLE_ERA }, + { XML_NAMESPACE_NUMBER, XML_DAY_OF_WEEK, XML_TOK_STYLE_DAY_OF_WEEK }, + { XML_NAMESPACE_NUMBER, XML_WEEK_OF_YEAR, XML_TOK_STYLE_WEEK_OF_YEAR }, + { XML_NAMESPACE_NUMBER, XML_QUARTER, XML_TOK_STYLE_QUARTER }, + { XML_NAMESPACE_NUMBER, XML_HOURS, XML_TOK_STYLE_HOURS }, + { XML_NAMESPACE_NUMBER, XML_AM_PM, XML_TOK_STYLE_AM_PM }, + { XML_NAMESPACE_NUMBER, XML_MINUTES, XML_TOK_STYLE_MINUTES }, + { XML_NAMESPACE_NUMBER, XML_SECONDS, XML_TOK_STYLE_SECONDS }, + { XML_NAMESPACE_NUMBER, XML_BOOLEAN, XML_TOK_STYLE_BOOLEAN }, + { XML_NAMESPACE_NUMBER, XML_TEXT_CONTENT, XML_TOK_STYLE_TEXT_CONTENT }, + { XML_NAMESPACE_STYLE, XML_TEXT_PROPERTIES, XML_TOK_STYLE_PROPERTIES }, + { XML_NAMESPACE_STYLE, XML_MAP, XML_TOK_STYLE_MAP }, + XML_TOKEN_MAP_END + }; + pStyleElemTokenMap = new SvXMLTokenMap( aStyleElemMap ); + } return *pStyleElemTokenMap; } const SvXMLTokenMap& SvXMLNumImpData::GetStyleAttrTokenMap() { if( !pStyleAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aStyleAttrMap[] = + { + // attributes for a style + { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_STYLE_ATTR_NAME }, + { XML_NAMESPACE_NUMBER, XML_LANGUAGE, XML_TOK_STYLE_ATTR_LANGUAGE }, + { XML_NAMESPACE_NUMBER, XML_COUNTRY, XML_TOK_STYLE_ATTR_COUNTRY }, + { XML_NAMESPACE_NUMBER, XML_TITLE, XML_TOK_STYLE_ATTR_TITLE }, + { XML_NAMESPACE_NUMBER, XML_AUTOMATIC_ORDER, XML_TOK_STYLE_ATTR_AUTOMATIC_ORDER }, + { XML_NAMESPACE_NUMBER, XML_FORMAT_SOURCE, XML_TOK_STYLE_ATTR_FORMAT_SOURCE }, + { XML_NAMESPACE_NUMBER, XML_TRUNCATE_ON_OVERFLOW, XML_TOK_STYLE_ATTR_TRUNCATE_ON_OVERFLOW }, + { XML_NAMESPACE_STYLE, XML_VOLATILE, XML_TOK_STYLE_ATTR_VOLATILE }, + { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_FORMAT, XML_TOK_STYLE_ATTR_TRANSL_FORMAT }, + { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_LANGUAGE, XML_TOK_STYLE_ATTR_TRANSL_LANGUAGE }, + { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_COUNTRY, XML_TOK_STYLE_ATTR_TRANSL_COUNTRY }, + { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_STYLE, XML_TOK_STYLE_ATTR_TRANSL_STYLE }, + XML_TOKEN_MAP_END + }; + pStyleAttrTokenMap = new SvXMLTokenMap( aStyleAttrMap ); + } return *pStyleAttrTokenMap; } const SvXMLTokenMap& SvXMLNumImpData::GetStyleElemAttrTokenMap() { if( !pStyleElemAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aStyleElemAttrMap[] = + { + // attributes for an element within a style + { XML_NAMESPACE_NUMBER, XML_DECIMAL_PLACES, XML_TOK_ELEM_ATTR_DECIMAL_PLACES }, + { XML_NAMESPACE_NUMBER, XML_MIN_INTEGER_DIGITS, XML_TOK_ELEM_ATTR_MIN_INTEGER_DIGITS }, + { XML_NAMESPACE_NUMBER, XML_GROUPING, XML_TOK_ELEM_ATTR_GROUPING }, + { XML_NAMESPACE_NUMBER, XML_DISPLAY_FACTOR, XML_TOK_ELEM_ATTR_DISPLAY_FACTOR }, + { XML_NAMESPACE_NUMBER, XML_DECIMAL_REPLACEMENT, XML_TOK_ELEM_ATTR_DECIMAL_REPLACEMENT }, + { XML_NAMESPACE_NUMBER, XML_MIN_EXPONENT_DIGITS, XML_TOK_ELEM_ATTR_MIN_EXPONENT_DIGITS }, + { XML_NAMESPACE_NUMBER, XML_MIN_NUMERATOR_DIGITS, XML_TOK_ELEM_ATTR_MIN_NUMERATOR_DIGITS }, + { XML_NAMESPACE_NUMBER, XML_MIN_DENOMINATOR_DIGITS, XML_TOK_ELEM_ATTR_MIN_DENOMINATOR_DIGITS }, + { XML_NAMESPACE_NUMBER, XML_LANGUAGE, XML_TOK_ELEM_ATTR_LANGUAGE }, + { XML_NAMESPACE_NUMBER, XML_COUNTRY, XML_TOK_ELEM_ATTR_COUNTRY }, + { XML_NAMESPACE_NUMBER, XML_STYLE, XML_TOK_ELEM_ATTR_STYLE }, + { XML_NAMESPACE_NUMBER, XML_TEXTUAL, XML_TOK_ELEM_ATTR_TEXTUAL }, + { XML_NAMESPACE_NUMBER, XML_CALENDAR, XML_TOK_ELEM_ATTR_CALENDAR }, + XML_TOKEN_MAP_END + }; + pStyleElemAttrTokenMap = new SvXMLTokenMap( aStyleElemAttrMap ); + } return *pStyleElemAttrTokenMap; } diff --git a/xmloff/source/style/xmlnumi.cxx b/xmloff/source/style/xmlnumi.cxx index abe3564564..b96c7e9bb8 100644 --- a/xmloff/source/style/xmlnumi.cxx +++ b/xmloff/source/style/xmlnumi.cxx @@ -182,25 +182,29 @@ enum SvxXMLTextListLevelStyleAttrTokens XML_TOK_TEXT_LEVEL_ATTR_END=XML_TOK_UNKNOWN }; -static __FAR_DATA SvXMLTokenMapEntry aLevelAttrTokenMap[] = +const SvXMLTokenMapEntry* lcl_getLevelAttrTokenMap() { - { XML_NAMESPACE_TEXT, XML_LEVEL, XML_TOK_TEXT_LEVEL_ATTR_LEVEL }, - { XML_NAMESPACE_TEXT, XML_STYLE_NAME, XML_TOK_TEXT_LEVEL_ATTR_STYLE_NAME }, - { XML_NAMESPACE_TEXT, XML_BULLET_CHAR, XML_TOK_TEXT_LEVEL_ATTR_BULLET_CHAR }, - { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_TEXT_LEVEL_ATTR_HREF }, - { XML_NAMESPACE_XLINK, XML_TYPE, XML_TOK_TEXT_LEVEL_ATTR_TYPE }, - { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_TEXT_LEVEL_ATTR_SHOW }, - { XML_NAMESPACE_XLINK, XML_ACTUATE, XML_TOK_TEXT_LEVEL_ATTR_ACTUATE }, - - { XML_NAMESPACE_STYLE, XML_NUM_FORMAT, XML_TOK_TEXT_LEVEL_ATTR_NUM_FORMAT }, - { XML_NAMESPACE_STYLE, XML_NUM_PREFIX, XML_TOK_TEXT_LEVEL_ATTR_NUM_PREFIX }, - { XML_NAMESPACE_STYLE, XML_NUM_SUFFIX, XML_TOK_TEXT_LEVEL_ATTR_NUM_SUFFIX }, - { XML_NAMESPACE_STYLE, XML_NUM_LETTER_SYNC, XML_TOK_TEXT_LEVEL_ATTR_NUM_LETTER_SYNC }, - { XML_NAMESPACE_TEXT, XML_START_VALUE, XML_TOK_TEXT_LEVEL_ATTR_START_VALUE }, - { XML_NAMESPACE_TEXT, XML_DISPLAY_LEVELS, XML_TOK_TEXT_LEVEL_ATTR_DISPLAY_LEVELS }, - - XML_TOKEN_MAP_END -}; + static __FAR_DATA SvXMLTokenMapEntry aLevelAttrTokenMap[] = + { + { XML_NAMESPACE_TEXT, XML_LEVEL, XML_TOK_TEXT_LEVEL_ATTR_LEVEL }, + { XML_NAMESPACE_TEXT, XML_STYLE_NAME, XML_TOK_TEXT_LEVEL_ATTR_STYLE_NAME }, + { XML_NAMESPACE_TEXT, XML_BULLET_CHAR, XML_TOK_TEXT_LEVEL_ATTR_BULLET_CHAR }, + { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_TEXT_LEVEL_ATTR_HREF }, + { XML_NAMESPACE_XLINK, XML_TYPE, XML_TOK_TEXT_LEVEL_ATTR_TYPE }, + { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_TEXT_LEVEL_ATTR_SHOW }, + { XML_NAMESPACE_XLINK, XML_ACTUATE, XML_TOK_TEXT_LEVEL_ATTR_ACTUATE }, + + { XML_NAMESPACE_STYLE, XML_NUM_FORMAT, XML_TOK_TEXT_LEVEL_ATTR_NUM_FORMAT }, + { XML_NAMESPACE_STYLE, XML_NUM_PREFIX, XML_TOK_TEXT_LEVEL_ATTR_NUM_PREFIX }, + { XML_NAMESPACE_STYLE, XML_NUM_SUFFIX, XML_TOK_TEXT_LEVEL_ATTR_NUM_SUFFIX }, + { XML_NAMESPACE_STYLE, XML_NUM_LETTER_SYNC, XML_TOK_TEXT_LEVEL_ATTR_NUM_LETTER_SYNC }, + { XML_NAMESPACE_TEXT, XML_START_VALUE, XML_TOK_TEXT_LEVEL_ATTR_START_VALUE }, + { XML_NAMESPACE_TEXT, XML_DISPLAY_LEVELS, XML_TOK_TEXT_LEVEL_ATTR_DISPLAY_LEVELS }, + + XML_TOKEN_MAP_END + }; + return aLevelAttrTokenMap; +} class SvxXMLListLevelStyleContext_Impl : public SvXMLImportContext { @@ -357,7 +361,7 @@ SvxXMLListLevelStyleContext_Impl::SvxXMLListLevelStyleContext_Impl( else if( IsXMLToken( rLName, XML_LIST_LEVEL_STYLE_IMAGE ) ) bImage = sal_True; - SvXMLTokenMap aTokenMap( aLevelAttrTokenMap ); + SvXMLTokenMap aTokenMap( lcl_getLevelAttrTokenMap() ); sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; for( sal_Int16 i=0; i < nAttrCount; i++ ) { @@ -693,50 +697,53 @@ enum SvxXMLStyleAttributesAttrTokens XML_TOK_STYLE_ATTRIBUTES_ATTR_END=XML_TOK_UNKNOWN }; - -static __FAR_DATA SvXMLTokenMapEntry aStyleAttributesAttrTokenMap[] = +const SvXMLTokenMapEntry* lcl_getStyleAttributesAttrTokenMap() { - { XML_NAMESPACE_TEXT, XML_SPACE_BEFORE, - XML_TOK_STYLE_ATTRIBUTES_ATTR_SPACE_BEFORE }, - { XML_NAMESPACE_TEXT, XML_MIN_LABEL_WIDTH, - XML_TOK_STYLE_ATTRIBUTES_ATTR_MIN_LABEL_WIDTH }, - { XML_NAMESPACE_TEXT, XML_MIN_LABEL_DISTANCE, - XML_TOK_STYLE_ATTRIBUTES_ATTR_MIN_LABEL_DIST }, - { XML_NAMESPACE_FO, XML_TEXT_ALIGN, - XML_TOK_STYLE_ATTRIBUTES_ATTR_TEXT_ALIGN }, - { XML_NAMESPACE_STYLE, XML_FONT_NAME, - XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_NAME }, - { XML_NAMESPACE_FO, XML_FONT_FAMILY, - XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_FAMILY }, - { XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC, - XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_FAMILY_GENERIC }, - { XML_NAMESPACE_STYLE, XML_FONT_STYLE_NAME, - XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_STYLENAME }, - { XML_NAMESPACE_STYLE, XML_FONT_PITCH, - XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_PITCH }, - { XML_NAMESPACE_STYLE, XML_FONT_CHARSET, - XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_CHARSET }, - { XML_NAMESPACE_STYLE, XML_VERTICAL_POS, - XML_TOK_STYLE_ATTRIBUTES_ATTR_VERTICAL_POS }, - { XML_NAMESPACE_STYLE, XML_VERTICAL_REL, - XML_TOK_STYLE_ATTRIBUTES_ATTR_VERTICAL_REL }, - { XML_NAMESPACE_FO, XML_WIDTH, - XML_TOK_STYLE_ATTRIBUTES_ATTR_WIDTH }, - { XML_NAMESPACE_FO, XML_HEIGHT, - XML_TOK_STYLE_ATTRIBUTES_ATTR_HEIGHT }, - { XML_NAMESPACE_FO, XML_COLOR, - XML_TOK_STYLE_ATTRIBUTES_ATTR_COLOR }, - { XML_NAMESPACE_STYLE, XML_USE_WINDOW_FONT_COLOR, - XML_TOK_STYLE_ATTRIBUTES_ATTR_WINDOW_FONT_COLOR }, - { XML_NAMESPACE_FO, XML_FONT_SIZE, - XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_SIZE }, - // --> OD 2008-01-16 #newlistlevelattrs# - { XML_NAMESPACE_TEXT, XML_LIST_LEVEL_POSITION_AND_SPACE_MODE, - XML_TOK_STYLE_ATTRIBUTES_ATTR_POSITION_AND_SPACE_MODE }, - // <-- + static __FAR_DATA SvXMLTokenMapEntry aStyleAttributesAttrTokenMap[] = + { + { XML_NAMESPACE_TEXT, XML_SPACE_BEFORE, + XML_TOK_STYLE_ATTRIBUTES_ATTR_SPACE_BEFORE }, + { XML_NAMESPACE_TEXT, XML_MIN_LABEL_WIDTH, + XML_TOK_STYLE_ATTRIBUTES_ATTR_MIN_LABEL_WIDTH }, + { XML_NAMESPACE_TEXT, XML_MIN_LABEL_DISTANCE, + XML_TOK_STYLE_ATTRIBUTES_ATTR_MIN_LABEL_DIST }, + { XML_NAMESPACE_FO, XML_TEXT_ALIGN, + XML_TOK_STYLE_ATTRIBUTES_ATTR_TEXT_ALIGN }, + { XML_NAMESPACE_STYLE, XML_FONT_NAME, + XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_NAME }, + { XML_NAMESPACE_FO, XML_FONT_FAMILY, + XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_FAMILY }, + { XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC, + XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_FAMILY_GENERIC }, + { XML_NAMESPACE_STYLE, XML_FONT_STYLE_NAME, + XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_STYLENAME }, + { XML_NAMESPACE_STYLE, XML_FONT_PITCH, + XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_PITCH }, + { XML_NAMESPACE_STYLE, XML_FONT_CHARSET, + XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_CHARSET }, + { XML_NAMESPACE_STYLE, XML_VERTICAL_POS, + XML_TOK_STYLE_ATTRIBUTES_ATTR_VERTICAL_POS }, + { XML_NAMESPACE_STYLE, XML_VERTICAL_REL, + XML_TOK_STYLE_ATTRIBUTES_ATTR_VERTICAL_REL }, + { XML_NAMESPACE_FO, XML_WIDTH, + XML_TOK_STYLE_ATTRIBUTES_ATTR_WIDTH }, + { XML_NAMESPACE_FO, XML_HEIGHT, + XML_TOK_STYLE_ATTRIBUTES_ATTR_HEIGHT }, + { XML_NAMESPACE_FO, XML_COLOR, + XML_TOK_STYLE_ATTRIBUTES_ATTR_COLOR }, + { XML_NAMESPACE_STYLE, XML_USE_WINDOW_FONT_COLOR, + XML_TOK_STYLE_ATTRIBUTES_ATTR_WINDOW_FONT_COLOR }, + { XML_NAMESPACE_FO, XML_FONT_SIZE, + XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_SIZE }, + // --> OD 2008-01-16 #newlistlevelattrs# + { XML_NAMESPACE_TEXT, XML_LIST_LEVEL_POSITION_AND_SPACE_MODE, + XML_TOK_STYLE_ATTRIBUTES_ATTR_POSITION_AND_SPACE_MODE }, + // <-- - XML_TOKEN_MAP_END -}; + XML_TOKEN_MAP_END + }; + return aStyleAttributesAttrTokenMap; +} SvxXMLListLevelStyleAttrContext_Impl::SvxXMLListLevelStyleAttrContext_Impl( SvXMLImport& rImport, sal_uInt16 nPrfx, const OUString& rLName, @@ -745,7 +752,7 @@ SvxXMLListLevelStyleAttrContext_Impl::SvxXMLListLevelStyleAttrContext_Impl( SvXMLImportContext( rImport, nPrfx, rLName ), rListLevel( rLLevel ) { - SvXMLTokenMap aTokenMap( aStyleAttributesAttrTokenMap ); + SvXMLTokenMap aTokenMap( lcl_getStyleAttributesAttrTokenMap() ); SvXMLUnitConverter& rUnitConv = GetImport().GetMM100UnitConverter(); OUString sFontName, sFontFamily, sFontStyleName, sFontFamilyGeneric, @@ -1020,20 +1027,23 @@ enum SvxXMLStyleAttributesLabelAlignmentAttrTokens XML_TOK_STYLE_ATTRIBUTES_LABEL_ALIGNMENT_ATTR_END=XML_TOK_UNKNOWN }; - -static __FAR_DATA SvXMLTokenMapEntry aStyleAlignmentAttributesAttrTokenMap[] = +const SvXMLTokenMapEntry* lcl_getStyleAlignmentAttributesAttrTokenMap() { - { XML_NAMESPACE_TEXT, XML_LABEL_FOLLOWED_BY, - XML_TOK_STYLE_ATTRIBUTES_ATTR_LABEL_FOLLOWED_BY }, - { XML_NAMESPACE_TEXT, XML_LIST_TAB_STOP_POSITION, - XML_TOK_STYLE_ATTRIBUTES_ATTR_LISTTAB_STOP_POSITION }, - { XML_NAMESPACE_FO, XML_TEXT_INDENT, - XML_TOK_STYLE_ATTRIBUTES_ATTR_FIRST_LINE_INDENT }, - { XML_NAMESPACE_FO, XML_MARGIN_LEFT, - XML_TOK_STYLE_ATTRIBUTES_ATTR_INDENT_AT }, - - XML_TOKEN_MAP_END -}; + static __FAR_DATA SvXMLTokenMapEntry aStyleAlignmentAttributesAttrTokenMap[] = + { + { XML_NAMESPACE_TEXT, XML_LABEL_FOLLOWED_BY, + XML_TOK_STYLE_ATTRIBUTES_ATTR_LABEL_FOLLOWED_BY }, + { XML_NAMESPACE_TEXT, XML_LIST_TAB_STOP_POSITION, + XML_TOK_STYLE_ATTRIBUTES_ATTR_LISTTAB_STOP_POSITION }, + { XML_NAMESPACE_FO, XML_TEXT_INDENT, + XML_TOK_STYLE_ATTRIBUTES_ATTR_FIRST_LINE_INDENT }, + { XML_NAMESPACE_FO, XML_MARGIN_LEFT, + XML_TOK_STYLE_ATTRIBUTES_ATTR_INDENT_AT }, + + XML_TOKEN_MAP_END + }; + return aStyleAlignmentAttributesAttrTokenMap; +} SvxXMLListLevelStyleLabelAlignmentAttrContext_Impl::SvxXMLListLevelStyleLabelAlignmentAttrContext_Impl( SvXMLImport& rImport, sal_uInt16 nPrfx, const OUString& rLName, @@ -1042,7 +1052,7 @@ SvxXMLListLevelStyleLabelAlignmentAttrContext_Impl::SvxXMLListLevelStyleLabelAli SvXMLImportContext( rImport, nPrfx, rLName ), rListLevel( rLLevel ) { - SvXMLTokenMap aTokenMap( aStyleAlignmentAttributesAttrTokenMap ); + SvXMLTokenMap aTokenMap( lcl_getStyleAlignmentAttributesAttrTokenMap() ); SvXMLUnitConverter& rUnitConv = GetImport().GetMM100UnitConverter(); sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; diff --git a/xmloff/source/text/XMLIndexTOCStylesContext.cxx b/xmloff/source/text/XMLIndexTOCStylesContext.cxx index 2ec7e23c1e..ae43e705fb 100644 --- a/xmloff/source/text/XMLIndexTOCStylesContext.cxx +++ b/xmloff/source/text/XMLIndexTOCStylesContext.cxx @@ -111,7 +111,7 @@ void XMLIndexTOCStylesContext::EndElement() if (nOutlineLevel >= 0) { // copy vector into sequence - sal_Int32 nCount = aStyleNames.size(); + const sal_Int32 nCount = aStyleNames.size(); Sequence aStyleNamesSequence(nCount); for(sal_Int32 i = 0; i < nCount; i++) { diff --git a/xmloff/source/text/XMLIndexTemplateContext.cxx b/xmloff/source/text/XMLIndexTemplateContext.cxx index 2123f3e67d..5376a4ed9e 100644 --- a/xmloff/source/text/XMLIndexTemplateContext.cxx +++ b/xmloff/source/text/XMLIndexTemplateContext.cxx @@ -196,7 +196,7 @@ void XMLIndexTemplateContext::EndElement() { if (bOutlineLevelOK) { - sal_Int32 nCount = aValueVector.size(); + const sal_Int32 nCount = aValueVector.size(); Sequence aValueSequence(nCount); for(sal_Int32 i = 0; i & xAttrList) { + static SvXMLTokenMapEntry aLineNumberingTokenMap[] = + { + { XML_NAMESPACE_TEXT, XML_STYLE_NAME, XML_TOK_LINENUMBERING_STYLE_NAME }, + { XML_NAMESPACE_TEXT, XML_NUMBER_LINES, + XML_TOK_LINENUMBERING_NUMBER_LINES }, + { XML_NAMESPACE_TEXT, XML_COUNT_EMPTY_LINES, + XML_TOK_LINENUMBERING_COUNT_EMPTY_LINES }, + { XML_NAMESPACE_TEXT, XML_COUNT_IN_TEXT_BOXES, + XML_TOK_LINENUMBERING_COUNT_IN_TEXT_BOXES }, + { XML_NAMESPACE_TEXT, XML_RESTART_ON_PAGE, + XML_TOK_LINENUMBERING_RESTART_NUMBERING }, + { XML_NAMESPACE_TEXT, XML_OFFSET, XML_TOK_LINENUMBERING_OFFSET }, + { XML_NAMESPACE_STYLE, XML_NUM_FORMAT, XML_TOK_LINENUMBERING_NUM_FORMAT }, + { XML_NAMESPACE_STYLE, XML_NUM_LETTER_SYNC, + XML_TOK_LINENUMBERING_NUM_LETTER_SYNC }, + { XML_NAMESPACE_TEXT, XML_NUMBER_POSITION, + XML_TOK_LINENUMBERING_NUMBER_POSITION }, + { XML_NAMESPACE_TEXT, XML_INCREMENT, XML_TOK_LINENUMBERING_INCREMENT }, + // { XML_NAMESPACE_TEXT, XML_LINENUMBERING_CONFIGURATION, + // XML_TOK_LINENUMBERING_LINENUMBERING_CONFIGURATION }, + // { XML_NAMESPACE_TEXT, XML_INCREMENT, XML_TOK_LINENUMBERING_INCREMENT }, + // { XML_NAMESPACE_TEXT, XML_LINENUMBERING_SEPARATOR, + // XML_TOK_LINENUMBERING_LINENUMBERING_SEPARATOR }, + + XML_TOKEN_MAP_END + }; + SvXMLTokenMap aTokenMap(aLineNumberingTokenMap); // process attributes @@ -207,6 +196,15 @@ void XMLLineNumberingImportContext::ProcessAttribute( case XML_TOK_LINENUMBERING_NUMBER_POSITION: { + static const SvXMLEnumMapEntry aLineNumberPositionMap[] = + { + { XML_LEFT, style::LineNumberPosition::LEFT }, + { XML_RIGHT, style::LineNumberPosition::RIGHT }, + { XML_INSIDE, style::LineNumberPosition::INSIDE }, + { XML_OUTSIDE, style::LineNumberPosition::OUTSIDE }, + { XML_TOKEN_INVALID, 0 } + }; + sal_uInt16 nTmp16; if (SvXMLUnitConverter::convertEnum(nTmp16, sValue, aLineNumberPositionMap)) diff --git a/xmloff/source/text/txtflde.cxx b/xmloff/source/text/txtflde.cxx index 56de401f0b..37f44a5f5e 100644 --- a/xmloff/source/text/txtflde.cxx +++ b/xmloff/source/text/txtflde.cxx @@ -1931,7 +1931,7 @@ void XMLTextFieldExport::ExportFieldDeclarations( // now process fields: // variable field masters: - if (aVarName.size() > 0) + if ( !aVarName.empty() ) { SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_TEXT, @@ -1990,7 +1990,7 @@ void XMLTextFieldExport::ExportFieldDeclarations( // else: no declarations element // sequence field masters: - if (aSeqName.size() > 0) + if ( !aSeqName.empty() ) { SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_TEXT, @@ -2032,7 +2032,7 @@ void XMLTextFieldExport::ExportFieldDeclarations( // else: no declarations element // user field field masters: - if (aUserName.size() > 0) + if ( !aUserName.empty() ) { SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_TEXT, @@ -2083,7 +2083,7 @@ void XMLTextFieldExport::ExportFieldDeclarations( // else: no declarations element // DDE field field masters: - if (aDdeName.size() > 0) + if ( !aDdeName.empty() ) { SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_TEXT, diff --git a/xmloff/source/text/txtimp.cxx b/xmloff/source/text/txtimp.cxx index 52d0c0f1d2..533e93bb53 100644 --- a/xmloff/source/text/txtimp.cxx +++ b/xmloff/source/text/txtimp.cxx @@ -1367,7 +1367,7 @@ void XMLTextImportHelper::FindOutlineStyleName( ::rtl::OUString& rStyleName, mpOutlineStylesCandidates = new ::std::vector[xChapterNumbering->getCount()]; } - if ( mpOutlineStylesCandidates[nOutlineLevel].size() == 0 ) + if ( mpOutlineStylesCandidates[nOutlineLevel].empty() ) { // no other name used previously? Then use default @@ -1592,13 +1592,13 @@ void XMLTextImportHelper::SetOutlineStyles( sal_Bool bSetEmptyLevels ) { if ( bSetEmptyLevels || ( mpOutlineStylesCandidates && - mpOutlineStylesCandidates[i].size() > 0 ) ) + !mpOutlineStylesCandidates[i].empty() ) ) { // determine, which candidate is one to be assigned to the list // level of the outline style OUString sChoosenStyle( sEmpty ); if ( mpOutlineStylesCandidates && - mpOutlineStylesCandidates[i].size() > 0 ) + !mpOutlineStylesCandidates[i].empty() ) { // --> OD 2007-12-19 #152540# if ( bChooseLastOne ) @@ -2197,7 +2197,7 @@ sal_Bool XMLTextImportHelper::FindAndRemoveBookmarkStartRange( ::rtl::OUString XMLTextImportHelper::FindActiveBookmarkName() { - if (aBookmarkVector.size()>0) { + if ( !aBookmarkVector.empty() ) { return aBookmarkVector.back(); } else return ::rtl::OUString(); // return the empty string on error... } diff --git a/xmloff/source/text/txtlists.cxx b/xmloff/source/text/txtlists.cxx index 90906a8e1e..47345fddef 100644 --- a/xmloff/source/text/txtlists.cxx +++ b/xmloff/source/text/txtlists.cxx @@ -111,7 +111,8 @@ void XMLTextListsHelper::PopListContext() OSL_ENSURE(mListStack.size(), "internal error: PopListContext: mListStack empty"); // fprintf(stderr, "PopListContext\n"); - if (mListStack.size()) mListStack.pop(); + if ( !mListStack.empty()) + mListStack.pop(); } void XMLTextListsHelper::ListContextTop( @@ -119,7 +120,7 @@ void XMLTextListsHelper::ListContextTop( XMLTextListItemContext*& o_pListItemContext, XMLNumberedParaContext*& o_pNumberedParagraphContext ) { - if (mListStack.size()) { + if ( !mListStack.empty() ) { o_pListBlockContext = static_cast(&mListStack.top().get<0>()); o_pListItemContext = @@ -140,7 +141,7 @@ void XMLTextListsHelper::SetListItem( XMLTextListItemContext *i_pListItem ) OSL_ENSURE(!mListStack.top().get<1>(), "error: SetListItem: list item already exists"); } - if (mListStack.size()) { + if ( !mListStack.empty() ) { mListStack.top().get<1>() = i_pListItem; } } @@ -397,7 +398,7 @@ XMLTextListsHelper::EnsureNumberedParagraph( OSL_ENSURE(io_rLevel >= 0, "inavlid Level"); NumParaList_t & rNPList( mNPLists[i_ListId] ); const ::rtl::OUString none; // default - if (!rNPList.size() && (0 != io_rLevel)) { + if ( rNPList.empty() && (0 != io_rLevel)) { // create default list style for top level sal_Int16 lev(0); rNPList.push_back(::std::make_pair(none, @@ -405,7 +406,7 @@ XMLTextListsHelper::EnsureNumberedParagraph( } // create num rule first because this might clamp the level... uno::Reference xNumRules; - if ((0 == io_rLevel) || !rNPList.size() || i_StyleName.getLength()) { + if ((0 == io_rLevel) || rNPList.empty() || i_StyleName.getLength()) { // no parent to inherit from, or explicit style given => new numrules! // index of parent: level - 1, but maybe that does not exist const size_t parent( std::min(static_cast(io_rLevel), diff --git a/xmloff/source/text/txtparae.cxx b/xmloff/source/text/txtparae.cxx index ed001cb4da..3bd72cfef6 100644 --- a/xmloff/source/text/txtparae.cxx +++ b/xmloff/source/text/txtparae.cxx @@ -258,7 +258,7 @@ void XMLTextParagraphExport::Add( sal_uInt16 nFamily, } } - if( xPropStates.size() > 0L ) + if( !xPropStates.empty() ) { Reference< XPropertySetInfo > xPropSetInfo(rPropSet->getPropertySetInfo()); OUString sParent, sCondParent; @@ -432,7 +432,7 @@ void XMLTextParagraphExport::Add( sal_uInt16 nFamily, } } - if( xPropStates.size() > 0L ) + if( !xPropStates.empty() ) { OUString sParent, sCondParent; switch( nFamily ) @@ -3810,7 +3810,7 @@ void XMLTextParagraphExport::PopTextListsHelper() delete mpTextListsHelper; mpTextListsHelper = 0; maTextListsHelperStack.pop_back(); - if ( maTextListsHelperStack.size() > 0 ) + if ( !maTextListsHelperStack.empty() ) { mpTextListsHelper = maTextListsHelperStack.back(); } -- cgit v1.2.3