From 8a24df0bed643bd06be113284c4439eac9ee62a2 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Tue, 1 Aug 2017 22:22:29 +0200 Subject: [PATCH] connectivity: partially merge OWriterTable and OCalcTable Factor out the common code of these into a new OComponentTable. Change-Id: I57abac05c9b64cde69d17568e325e86b3c530b20 Reviewed-on: https://gerrit.libreoffice.org/40648 Tested-by: Jenkins Reviewed-by: Miklos Vajna --- connectivity/Library_file.mk | 1 + connectivity/source/drivers/calc/CTable.cxx | 144 ----------- .../source/drivers/component/CTable.cxx | 226 ++++++++++++++++++ connectivity/source/drivers/writer/WTable.cxx | 143 ----------- connectivity/source/inc/calc/CTable.hxx | 16 +- connectivity/source/inc/component/CTable.hxx | 72 ++++++ connectivity/source/inc/writer/WTable.hxx | 16 +- 7 files changed, 303 insertions(+), 315 deletions(-) create mode 100644 connectivity/source/drivers/component/CTable.cxx create mode 100644 connectivity/source/inc/component/CTable.hxx diff --git a/connectivity/Library_file.mk b/connectivity/Library_file.mk index 9a36e1a21e2e..d44f27e247ac 100644 --- a/connectivity/Library_file.mk +++ b/connectivity/Library_file.mk @@ -45,6 +45,7 @@ $(eval $(call gb_Library_add_exception_objects,file,\ connectivity/source/drivers/component/CPreparedStatement \ connectivity/source/drivers/component/CResultSet \ connectivity/source/drivers/component/CStatement \ + connectivity/source/drivers/component/CTable \ connectivity/source/drivers/file/FCatalog \ connectivity/source/drivers/file/FColumns \ connectivity/source/drivers/file/FConnection \ diff --git a/connectivity/source/drivers/calc/CTable.cxx b/connectivity/source/drivers/calc/CTable.cxx index eab69b4e9792..16a0ef5fc4d6 100644 --- a/connectivity/source/drivers/calc/CTable.cxx +++ b/connectivity/source/drivers/calc/CTable.cxx @@ -521,7 +521,6 @@ OCalcTable::OCalcTable(sdbcx::OCollection* _pTables,OCalcConnection* _pConnectio ,m_nStartCol(0) ,m_nStartRow(0) ,m_nDataCols(0) - ,m_nDataRows(0) ,m_bHasHeaders(false) ,m_aNullDate(::Date::EMPTY) { @@ -609,28 +608,6 @@ void OCalcTable::construct() refreshColumns(); } -void OCalcTable::refreshColumns() -{ - ::osl::MutexGuard aGuard( m_aMutex ); - - TStringVector aVector; - - OSQLColumns::Vector::const_iterator aEnd = m_aColumns->get().end(); - for(OSQLColumns::Vector::const_iterator aIter = m_aColumns->get().begin();aIter != aEnd;++aIter) - aVector.push_back(Reference< XNamed>(*aIter,UNO_QUERY)->getName()); - - if(m_pColumns) - m_pColumns->reFill(aVector); - else - m_pColumns = new component::OComponentColumns(this,m_aMutex,aVector); -} - -void OCalcTable::refreshIndexes() -{ - // Calc table has no index -} - - void SAL_CALL OCalcTable::disposing() { OFileTable::disposing(); @@ -642,43 +619,6 @@ void SAL_CALL OCalcTable::disposing() } -Sequence< Type > SAL_CALL OCalcTable::getTypes( ) -{ - Sequence< Type > aTypes = OTable_TYPEDEF::getTypes(); - std::vector aOwnTypes; - aOwnTypes.reserve(aTypes.getLength()); - - const Type* pBegin = aTypes.getConstArray(); - const Type* pEnd = pBegin + aTypes.getLength(); - for(;pBegin != pEnd;++pBegin) - { - if(!( *pBegin == cppu::UnoType::get()|| - *pBegin == cppu::UnoType::get()|| - *pBegin == cppu::UnoType::get()|| - *pBegin == cppu::UnoType::get()|| - *pBegin == cppu::UnoType::get())) - aOwnTypes.push_back(*pBegin); - } - aOwnTypes.push_back(cppu::UnoType::get()); - - return Sequence< Type >(aOwnTypes.data(), aOwnTypes.size()); -} - - -Any SAL_CALL OCalcTable::queryInterface( const Type & rType ) -{ - if( rType == cppu::UnoType::get()|| - rType == cppu::UnoType::get()|| - rType == cppu::UnoType::get()|| - rType == cppu::UnoType::get()|| - rType == cppu::UnoType::get()) - return Any(); - - const Any aRet = ::cppu::queryInterface(rType,static_cast< css::lang::XUnoTunnel*> (this)); - return aRet.hasValue() ? aRet : OTable_TYPEDEF::queryInterface(rType); -} - - Sequence< sal_Int8 > OCalcTable::getUnoTunnelImplementationId() { static ::cppu::OImplementationId implId; @@ -695,82 +635,6 @@ sal_Int64 OCalcTable::getSomething( const Sequence< sal_Int8 > & rId ) : OCalcTable_BASE::getSomething(rId); } -sal_Int32 OCalcTable::getCurrentLastPos() const -{ - return m_nDataRows; -} - -bool OCalcTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int32 nOffset, sal_Int32& nCurPos) -{ - // prepare positioning: - - sal_uInt32 nNumberOfRecords = m_nDataRows; - sal_uInt32 nTempPos = m_nFilePos; - m_nFilePos = nCurPos; - - switch(eCursorPosition) - { - case IResultSetHelper::NEXT: - m_nFilePos++; - break; - case IResultSetHelper::PRIOR: - if (m_nFilePos > 0) - m_nFilePos--; - break; - case IResultSetHelper::FIRST: - m_nFilePos = 1; - break; - case IResultSetHelper::LAST: - m_nFilePos = nNumberOfRecords; - break; - case IResultSetHelper::RELATIVE1: - m_nFilePos = (m_nFilePos + nOffset < 0) ? 0L - : (sal_uInt32)(m_nFilePos + nOffset); - break; - case IResultSetHelper::ABSOLUTE1: - case IResultSetHelper::BOOKMARK: - m_nFilePos = (sal_uInt32)nOffset; - break; - } - - if (m_nFilePos > (sal_Int32)nNumberOfRecords) - m_nFilePos = (sal_Int32)nNumberOfRecords + 1; - - if (m_nFilePos == 0 || m_nFilePos == (sal_Int32)nNumberOfRecords + 1) - goto Error; - else - { - //! read buffer / setup row object etc? - } - goto End; - -Error: - switch(eCursorPosition) - { - case IResultSetHelper::PRIOR: - case IResultSetHelper::FIRST: - m_nFilePos = 0; - break; - case IResultSetHelper::LAST: - case IResultSetHelper::NEXT: - case IResultSetHelper::ABSOLUTE1: - case IResultSetHelper::RELATIVE1: - if (nOffset > 0) - m_nFilePos = nNumberOfRecords + 1; - else if (nOffset < 0) - m_nFilePos = 0; - break; - case IResultSetHelper::BOOKMARK: - m_nFilePos = nTempPos; // previous position - } - // aStatus.Set(SDB_STAT_NO_DATA_FOUND); - return false; - -End: - nCurPos = m_nFilePos; - return true; -} - bool OCalcTable::fetchRow( OValueRefRow& _rRow, const OSQLColumns & _rCols, bool bRetrieveData ) { @@ -801,12 +665,4 @@ bool OCalcTable::fetchRow( OValueRefRow& _rRow, const OSQLColumns & _rCols, return true; } -void OCalcTable::FileClose() -{ - ::osl::MutexGuard aGuard(m_aMutex); - - OCalcTable_BASE::FileClose(); -} - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/component/CTable.cxx b/connectivity/source/drivers/component/CTable.cxx new file mode 100644 index 000000000000..a58978a84c18 --- /dev/null +++ b/connectivity/source/drivers/component/CTable.cxx @@ -0,0 +1,226 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#include "component/CTable.hxx" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "component/CColumns.hxx" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace connectivity; +using namespace connectivity::component; +using namespace connectivity::file; +using namespace ::cppu; +using namespace ::dbtools; +using namespace ::com::sun::star::uno; +using namespace ::com::sun::star::beans; +using namespace ::com::sun::star::sdbcx; +using namespace ::com::sun::star::sdbc; +using namespace ::com::sun::star::container; +using namespace ::com::sun::star::lang; +using namespace ::com::sun::star::sheet; +using namespace ::com::sun::star::table; +using namespace ::com::sun::star::text; +using namespace ::com::sun::star::util; + + +OComponentTable::OComponentTable(sdbcx::OCollection* _pTables,file::OConnection* _pConnection, + const OUString& Name, + const OUString& Type, + const OUString& Description , + const OUString& SchemaName, + const OUString& CatalogName + ) : OComponentTable_BASE(_pTables,_pConnection,Name, + Type, + Description, + SchemaName, + CatalogName) + ,m_nDataRows(0) +{ +} + +void OComponentTable::refreshColumns() +{ + ::osl::MutexGuard aGuard( m_aMutex ); + + TStringVector aVector; + + OSQLColumns::Vector::const_iterator aEnd = m_aColumns->get().end(); + for(OSQLColumns::Vector::const_iterator aIter = m_aColumns->get().begin();aIter != aEnd;++aIter) + aVector.push_back(Reference< XNamed>(*aIter,UNO_QUERY)->getName()); + + if(m_pColumns) + m_pColumns->reFill(aVector); + else + m_pColumns = new component::OComponentColumns(this,m_aMutex,aVector); +} + +void OComponentTable::refreshIndexes() +{ + // Writer or Calc table has no index +} + + +Sequence< Type > SAL_CALL OComponentTable::getTypes( ) +{ + Sequence< Type > aTypes = OTable_TYPEDEF::getTypes(); + std::vector aOwnTypes; + aOwnTypes.reserve(aTypes.getLength()); + + const Type* pBegin = aTypes.getConstArray(); + const Type* pEnd = pBegin + aTypes.getLength(); + for(;pBegin != pEnd;++pBegin) + { + if(!( *pBegin == cppu::UnoType::get()|| + *pBegin == cppu::UnoType::get()|| + *pBegin == cppu::UnoType::get()|| + *pBegin == cppu::UnoType::get()|| + *pBegin == cppu::UnoType::get())) + aOwnTypes.push_back(*pBegin); + } + aOwnTypes.push_back(cppu::UnoType::get()); + + return Sequence< Type >(aOwnTypes.data(), aOwnTypes.size()); +} + + +Any SAL_CALL OComponentTable::queryInterface( const Type & rType ) +{ + if( rType == cppu::UnoType::get()|| + rType == cppu::UnoType::get()|| + rType == cppu::UnoType::get()|| + rType == cppu::UnoType::get()|| + rType == cppu::UnoType::get()) + return Any(); + + const Any aRet = ::cppu::queryInterface(rType,static_cast< css::lang::XUnoTunnel*> (this)); + return aRet.hasValue() ? aRet : OTable_TYPEDEF::queryInterface(rType); +} + + +sal_Int32 OComponentTable::getCurrentLastPos() const +{ + return m_nDataRows; +} + +bool OComponentTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int32 nOffset, sal_Int32& nCurPos) +{ + // prepare positioning: + + sal_uInt32 nNumberOfRecords = m_nDataRows; + sal_uInt32 nTempPos = m_nFilePos; + m_nFilePos = nCurPos; + + switch(eCursorPosition) + { + case IResultSetHelper::NEXT: + m_nFilePos++; + break; + case IResultSetHelper::PRIOR: + if (m_nFilePos > 0) + m_nFilePos--; + break; + case IResultSetHelper::FIRST: + m_nFilePos = 1; + break; + case IResultSetHelper::LAST: + m_nFilePos = nNumberOfRecords; + break; + case IResultSetHelper::RELATIVE1: + m_nFilePos = (m_nFilePos + nOffset < 0) ? 0L + : (sal_uInt32)(m_nFilePos + nOffset); + break; + case IResultSetHelper::ABSOLUTE1: + case IResultSetHelper::BOOKMARK: + m_nFilePos = (sal_uInt32)nOffset; + break; + } + + if (m_nFilePos > (sal_Int32)nNumberOfRecords) + m_nFilePos = (sal_Int32)nNumberOfRecords + 1; + + if (m_nFilePos == 0 || m_nFilePos == (sal_Int32)nNumberOfRecords + 1) + goto Error; + else + { + //! read buffer / setup row object etc? + } + goto End; + +Error: + switch(eCursorPosition) + { + case IResultSetHelper::PRIOR: + case IResultSetHelper::FIRST: + m_nFilePos = 0; + break; + case IResultSetHelper::LAST: + case IResultSetHelper::NEXT: + case IResultSetHelper::ABSOLUTE1: + case IResultSetHelper::RELATIVE1: + if (nOffset > 0) + m_nFilePos = nNumberOfRecords + 1; + else if (nOffset < 0) + m_nFilePos = 0; + break; + case IResultSetHelper::BOOKMARK: + m_nFilePos = nTempPos; // previous position + } + // aStatus.Set(SDB_STAT_NO_DATA_FOUND); + return false; + +End: + nCurPos = m_nFilePos; + return true; +} + +void OComponentTable::FileClose() +{ + ::osl::MutexGuard aGuard(m_aMutex); + + OComponentTable_BASE::FileClose(); +} + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/writer/WTable.cxx b/connectivity/source/drivers/writer/WTable.cxx index 1562059379bc..5d3b7c2e7aef 100644 --- a/connectivity/source/drivers/writer/WTable.cxx +++ b/connectivity/source/drivers/writer/WTable.cxx @@ -186,7 +186,6 @@ OWriterTable::OWriterTable(sdbcx::OCollection* _pTables, OWriterConnection* _pCo ,m_nStartCol(0) ,m_nStartRow(0) ,m_nDataCols(0) - ,m_nDataRows(0) ,m_bHasHeaders(false) { } @@ -218,28 +217,6 @@ void OWriterTable::construct() refreshColumns(); } -void OWriterTable::refreshColumns() -{ - ::osl::MutexGuard aGuard(m_aMutex); - - TStringVector aVector; - - OSQLColumns::Vector::const_iterator aEnd = m_aColumns->get().end(); - for (OSQLColumns::Vector::const_iterator aIter = m_aColumns->get().begin(); aIter != aEnd; ++aIter) - aVector.push_back(uno::Reference(*aIter, uno::UNO_QUERY)->getName()); - - if (m_pColumns) - m_pColumns->reFill(aVector); - else - m_pColumns = new component::OComponentColumns(this, m_aMutex, aVector); -} - -void OWriterTable::refreshIndexes() -{ - // Writer table has no index -} - - void SAL_CALL OWriterTable::disposing() { OFileTable::disposing(); @@ -251,43 +228,6 @@ void SAL_CALL OWriterTable::disposing() } -uno::Sequence< uno::Type > SAL_CALL OWriterTable::getTypes() -{ - uno::Sequence< uno::Type > aTypes = file::OTable_TYPEDEF::getTypes(); - std::vector aOwnTypes; - aOwnTypes.reserve(aTypes.getLength()); - - const uno::Type* pBegin = aTypes.getConstArray(); - const uno::Type* pEnd = pBegin + aTypes.getLength(); - for (; pBegin != pEnd; ++pBegin) - { - if (!(*pBegin == cppu::UnoType::get()|| - *pBegin == cppu::UnoType::get()|| - *pBegin == cppu::UnoType::get()|| - *pBegin == cppu::UnoType::get()|| - *pBegin == cppu::UnoType::get())) - aOwnTypes.push_back(*pBegin); - } - aOwnTypes.push_back(cppu::UnoType::get()); - - return uno::Sequence< uno::Type >(aOwnTypes.data(), aOwnTypes.size()); -} - - -uno::Any SAL_CALL OWriterTable::queryInterface(const uno::Type& rType) -{ - if (rType == cppu::UnoType::get()|| - rType == cppu::UnoType::get()|| - rType == cppu::UnoType::get()|| - rType == cppu::UnoType::get()|| - rType == cppu::UnoType::get()) - return uno::Any(); - - const uno::Any aRet = ::cppu::queryInterface(rType,static_cast< css::lang::XUnoTunnel*>(this)); - return aRet.hasValue() ? aRet : file::OTable_TYPEDEF::queryInterface(rType); -} - - uno::Sequence< sal_Int8 > OWriterTable::getUnoTunnelImplementationId() { static ::cppu::OImplementationId implId; @@ -302,82 +242,6 @@ sal_Int64 OWriterTable::getSomething(const uno::Sequence< sal_Int8 >& rId) : OWriterTable_BASE::getSomething(rId); } -sal_Int32 OWriterTable::getCurrentLastPos() const -{ - return m_nDataRows; -} - -bool OWriterTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int32 nOffset, sal_Int32& nCurPos) -{ - // prepare positioning: - - sal_uInt32 nNumberOfRecords = m_nDataRows; - sal_uInt32 nTempPos = m_nFilePos; - m_nFilePos = nCurPos; - - switch (eCursorPosition) - { - case IResultSetHelper::NEXT: - m_nFilePos++; - break; - case IResultSetHelper::PRIOR: - if (m_nFilePos > 0) - m_nFilePos--; - break; - case IResultSetHelper::FIRST: - m_nFilePos = 1; - break; - case IResultSetHelper::LAST: - m_nFilePos = nNumberOfRecords; - break; - case IResultSetHelper::RELATIVE1: - m_nFilePos = (m_nFilePos + nOffset < 0) ? 0L - : (sal_uInt32)(m_nFilePos + nOffset); - break; - case IResultSetHelper::ABSOLUTE1: - case IResultSetHelper::BOOKMARK: - m_nFilePos = (sal_uInt32)nOffset; - break; - } - - if (m_nFilePos > (sal_Int32)nNumberOfRecords) - m_nFilePos = (sal_Int32)nNumberOfRecords + 1; - - if (m_nFilePos == 0 || m_nFilePos == (sal_Int32)nNumberOfRecords + 1) - goto Error; - else - { - //! read buffer / setup row object etc? - } - goto End; - -Error: - switch (eCursorPosition) - { - case IResultSetHelper::PRIOR: - case IResultSetHelper::FIRST: - m_nFilePos = 0; - break; - case IResultSetHelper::LAST: - case IResultSetHelper::NEXT: - case IResultSetHelper::ABSOLUTE1: - case IResultSetHelper::RELATIVE1: - if (nOffset > 0) - m_nFilePos = nNumberOfRecords + 1; - else if (nOffset < 0) - m_nFilePos = 0; - break; - case IResultSetHelper::BOOKMARK: - m_nFilePos = nTempPos; // previous position - } - // aStatus.Set(SDB_STAT_NO_DATA_FOUND); - return false; - -End: - nCurPos = m_nFilePos; - return true; -} - bool OWriterTable::fetchRow(OValueRefRow& _rRow, const OSQLColumns& _rCols, bool bRetrieveData) { @@ -406,13 +270,6 @@ bool OWriterTable::fetchRow(OValueRefRow& _rRow, const OSQLColumns& _rCols, return true; } -void OWriterTable::FileClose() -{ - ::osl::MutexGuard aGuard(m_aMutex); - - OWriterTable_BASE::FileClose(); -} - } // namespace writer } // namespace connectivity diff --git a/connectivity/source/inc/calc/CTable.hxx b/connectivity/source/inc/calc/CTable.hxx index c00d09cf22e5..a4012c4a6305 100644 --- a/connectivity/source/inc/calc/CTable.hxx +++ b/connectivity/source/inc/calc/CTable.hxx @@ -20,7 +20,7 @@ #ifndef INCLUDED_CONNECTIVITY_SOURCE_INC_CALC_CTABLE_HXX #define INCLUDED_CONNECTIVITY_SOURCE_INC_CALC_CTABLE_HXX -#include "file/FTable.hxx" +#include "component/CTable.hxx" #include namespace com { namespace sun { namespace star { namespace sheet { @@ -36,7 +36,7 @@ namespace connectivity { namespace calc { - typedef file::OFileTable OCalcTable_BASE; + typedef component::OComponentTable OCalcTable_BASE; class OCalcConnection; class OCalcTable : public OCalcTable_BASE @@ -50,19 +50,12 @@ namespace connectivity sal_Int32 m_nStartCol; sal_Int32 m_nStartRow; sal_Int32 m_nDataCols; - sal_Int32 m_nDataRows; bool m_bHasHeaders; css::uno::Reference< css::util::XNumberFormats > m_xFormats; ::Date m_aNullDate; void fillColumns(); - protected: - virtual void FileClose() override; - public: - virtual void refreshColumns() override; - virtual void refreshIndexes() override; - public: OCalcTable( sdbcx::OCollection* _pTables,OCalcConnection* _pConnection, const OUString& Name, @@ -72,13 +65,8 @@ namespace connectivity const OUString& CatalogName = OUString() ); - virtual sal_Int32 getCurrentLastPos() const override; - virtual bool seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int32 nOffset, sal_Int32& nCurPos) override; virtual bool fetchRow(OValueRefRow& _rRow, const OSQLColumns& _rCols, bool bRetrieveData) override; - virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override; - //XTypeProvider - virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) override; virtual void SAL_CALL disposing() override; // css::lang::XUnoTunnel diff --git a/connectivity/source/inc/component/CTable.hxx b/connectivity/source/inc/component/CTable.hxx new file mode 100644 index 000000000000..d268ad01a79e --- /dev/null +++ b/connectivity/source/inc/component/CTable.hxx @@ -0,0 +1,72 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef INCLUDED_CONNECTIVITY_SOURCE_INC_COMPONENT_CTABLE_HXX +#define INCLUDED_CONNECTIVITY_SOURCE_INC_COMPONENT_CTABLE_HXX + +#include "file/FTable.hxx" +#include + +namespace com { namespace sun { namespace star { namespace sheet { + class XSpreadsheet; +} } } } + +namespace com { namespace sun { namespace star { namespace util { + class XNumberFormats; +} } } } + + +namespace connectivity +{ + namespace component + { + typedef file::OFileTable OComponentTable_BASE; + + /// Shared Table base class for Writer tables and Calc sheets. + class OOO_DLLPUBLIC_FILE OComponentTable : public OComponentTable_BASE + { + protected: + sal_Int32 m_nDataRows; + + virtual void FileClose() override; + public: + OComponentTable( sdbcx::OCollection* _pTables,file::OConnection* _pConnection, + const OUString& Name, + const OUString& Type, + const OUString& Description = OUString(), + const OUString& SchemaName = OUString(), + const OUString& CatalogName = OUString() + ); + + virtual void refreshColumns() override; + virtual void refreshIndexes() override; + + virtual sal_Int32 getCurrentLastPos() const override; + virtual bool seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int32 nOffset, sal_Int32& nCurPos) override; + + virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override; + //XTypeProvider + virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) override; + }; + } +} + +#endif // INCLUDED_CONNECTIVITY_SOURCE_INC_COMPONENT_CTABLE_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/inc/writer/WTable.hxx b/connectivity/source/inc/writer/WTable.hxx index b05273480325..3b1fe9d09c8b 100644 --- a/connectivity/source/inc/writer/WTable.hxx +++ b/connectivity/source/inc/writer/WTable.hxx @@ -20,7 +20,7 @@ #ifndef INCLUDED_CONNECTIVITY_SOURCE_INC_WRITER_WTABLE_HXX #define INCLUDED_CONNECTIVITY_SOURCE_INC_WRITER_WTABLE_HXX -#include "file/FTable.hxx" +#include "component/CTable.hxx" #include namespace com @@ -56,7 +56,7 @@ namespace connectivity { namespace writer { -typedef file::OFileTable OWriterTable_BASE; +typedef component::OComponentTable OWriterTable_BASE; class OWriterConnection; class OWriterTable : public OWriterTable_BASE @@ -70,18 +70,11 @@ private: sal_Int32 m_nStartCol; sal_Int32 m_nStartRow; sal_Int32 m_nDataCols; - sal_Int32 m_nDataRows; bool m_bHasHeaders; css::uno::Reference< css::util::XNumberFormats > m_xFormats; void fillColumns(); -protected: - virtual void FileClose() override; -public: - virtual void refreshColumns() override; - virtual void refreshIndexes() override; - public: OWriterTable(sdbcx::OCollection* _pTables, OWriterConnection* _pConnection, const OUString& Name, @@ -91,13 +84,8 @@ public: const OUString& CatalogName = OUString() ); - virtual sal_Int32 getCurrentLastPos() const override; - virtual bool seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int32 nOffset, sal_Int32& nCurPos) override; virtual bool fetchRow(OValueRefRow& _rRow, const OSQLColumns& _rCols, bool bRetrieveData) override; - virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type& rType) override; - //XTypeProvider - virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override; virtual void SAL_CALL disposing() override; // css::lang::XUnoTunnel