diff options
Diffstat (limited to 'connectivity/source/drivers/macab')
43 files changed, 0 insertions, 9830 deletions
diff --git a/connectivity/source/drivers/macab/MacabAddressBook.cxx b/connectivity/source/drivers/macab/MacabAddressBook.cxx deleted file mode 100644 index 1f7d0a6b18..0000000000 --- a/connectivity/source/drivers/macab/MacabAddressBook.cxx +++ /dev/null @@ -1,258 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "MacabAddressBook.hxx" -#include "MacabRecords.hxx" -#include "MacabGroup.hxx" - -#include <vector> - -#include <premac.h> -#include <Carbon/Carbon.h> -#include <AddressBook/ABAddressBookC.h> -#include <postmac.h> -#include "connectivity/CommonTools.hxx" - -using namespace connectivity::macab; -using namespace ::com::sun::star::uno; - -// ----------------------------------------------------------------------------- -MacabAddressBook::MacabAddressBook( ) -{ - m_aAddressBook = ABGetSharedAddressBook(); - m_xMacabRecords = NULL; - m_bRetrievedGroups = sal_False; -} - -// ----------------------------------------------------------------------------- -MacabAddressBook::~MacabAddressBook() -{ - if(m_xMacabRecords != NULL) - { - delete m_xMacabRecords; - m_xMacabRecords = NULL; - } - - if(!m_xMacabGroups.empty()) - { - ::std::vector<MacabGroup *>::iterator iter, end; - iter = m_xMacabGroups.begin(); - end = m_xMacabGroups.end(); - for( ; iter != end; ++iter) - delete (*iter); - } - - m_bRetrievedGroups = sal_False; -} - -// ----------------------------------------------------------------------------- -/* Get the address book's default table name. This is the table name that - * refers to the table containing _all_ records in the address book. - */ -const ::rtl::OUString & MacabAddressBook::getDefaultTableName() -{ - /* This string probably needs to be localized. */ - static const ::rtl::OUString aDefaultTableName - (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Address Book"))); - - return aDefaultTableName; -} - -// ----------------------------------------------------------------------------- -MacabRecords *MacabAddressBook::getMacabRecords() -{ - /* If the MacabRecords don't exist, create them. */ - if(m_xMacabRecords == NULL) - { - m_xMacabRecords = new MacabRecords(m_aAddressBook); - m_xMacabRecords->setName(getDefaultTableName()); - m_xMacabRecords->initialize(); - } - - return m_xMacabRecords; -} - -// ----------------------------------------------------------------------------- -/* Get the MacabRecords for a given name: either a group name or the - * default table name. - */ -MacabRecords *MacabAddressBook::getMacabRecords(const ::rtl::OUString _tableName) -{ - if(_tableName == getDefaultTableName()) - { - return getMacabRecords(); - } - else - { - return getMacabGroup(_tableName); - } -} - -// ----------------------------------------------------------------------------- -MacabRecords *MacabAddressBook::getMacabRecordsMatch(const ::rtl::OUString _tableName) -{ - if(match(_tableName, getDefaultTableName(), '\0')) - { - return getMacabRecords(); - } - - return getMacabGroupMatch(_tableName); -} - -// ----------------------------------------------------------------------------- -::std::vector<MacabGroup *> MacabAddressBook::getMacabGroups() -{ - /* If the MacabGroups haven't been created yet, create them. */ - if(m_bRetrievedGroups == sal_False) - { - /* If the MacabRecords haven't been created yet, create them. */ - if(m_xMacabRecords == NULL) - { - m_xMacabRecords = new MacabRecords(m_aAddressBook); - m_xMacabRecords->setName(getDefaultTableName()); - m_xMacabRecords->initialize(); - } - - CFArrayRef allGroups = ABCopyArrayOfAllGroups(m_aAddressBook); - sal_Int32 nGroups = CFArrayGetCount(allGroups); - m_xMacabGroups = ::std::vector<MacabGroup *>(nGroups); - - sal_Int32 i; - ABGroupRef xGroup; - - /* Go through each group and create a MacabGroup out of it. */ - for(i = 0; i < nGroups; i++) - { - xGroup = (ABGroupRef) CFArrayGetValueAtIndex(allGroups, i); - m_xMacabGroups[i] = new MacabGroup(m_aAddressBook, m_xMacabRecords, xGroup); - } - - CFRelease(allGroups); - - /* Manage duplicates. */ - manageDuplicateGroups(m_xMacabGroups); - m_bRetrievedGroups = sal_True; - } - - return m_xMacabGroups; -} - -// ----------------------------------------------------------------------------- -MacabGroup *MacabAddressBook::getMacabGroup(::rtl::OUString _groupName) -{ - // initialize groups if not already initialized - if(m_bRetrievedGroups == sal_False) - getMacabGroups(); - - sal_Int32 nGroups = m_xMacabGroups.size(); - sal_Int32 i; - - for(i = 0; i < nGroups; i++) - { - if(m_xMacabGroups[i] != NULL) - { - if(m_xMacabGroups[i]->getName() == _groupName) - { - return m_xMacabGroups[i]; - } - } - } - - return NULL; -} - -// ----------------------------------------------------------------------------- -MacabGroup *MacabAddressBook::getMacabGroupMatch(::rtl::OUString _groupName) -{ - // initialize groups if not already initialized - if(m_bRetrievedGroups == sal_False) - getMacabGroups(); - - sal_Int32 nGroups = m_xMacabGroups.size(); - sal_Int32 i; - - for(i = 0; i < nGroups; i++) - { - if(m_xMacabGroups[i] != NULL) - { - if(match(m_xMacabGroups[i]->getName(), _groupName, '\0')) - { - return m_xMacabGroups[i]; - } - } - } - - return NULL; -} - -// ------------------------------------------------------------------------- -void MacabAddressBook::manageDuplicateGroups(::std::vector<MacabGroup *> _xGroups) const -{ - /* If we have two cases of groups, say, family, this makes it: - * family - * family (2) - */ - ::std::vector<MacabGroup *>::reverse_iterator iter1, iter2; - sal_Int32 count; - - for(iter1 = _xGroups.rbegin(); iter1 != _xGroups.rend(); ++iter1) - { - /* If the name matches the default table name, there is already - * (obviously) a conflict. So, start the count of groups with this - * name at 2 instead of 1. - */ - if( (*iter1)->getName() == getDefaultTableName() ) - count = 2; - else - count = 1; - - iter2 = iter1; - for( ++iter2; iter2 != _xGroups.rend(); ++iter2) - { - if( (*iter1)->getName() == (*iter2)->getName() ) - { - count++; - } - } - - // duplicate! - if(count != 1) - { - ::rtl::OUString sName = (*iter1)->getName(); - sName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" (")) + - ::rtl::OUString::valueOf(count) + - ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")")); - (*iter1)->setName(sName); - } - } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabAddressBook.hxx b/connectivity/source/drivers/macab/MacabAddressBook.hxx deleted file mode 100644 index 2aefbd8d9e..0000000000 --- a/connectivity/source/drivers/macab/MacabAddressBook.hxx +++ /dev/null @@ -1,75 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_ADDRESSBOOK_HXX_ -#define _CONNECTIVITY_MACAB_ADDRESSBOOK_HXX_ - -#include "MacabRecords.hxx" -#include "MacabGroup.hxx" - -#include <vector> - -#include <premac.h> -#include <Carbon/Carbon.h> -#include <AddressBook/ABAddressBookC.h> -#include <postmac.h> - -namespace connectivity -{ - namespace macab - { - class MacabAddressBook - { - protected: - ABAddressBookRef m_aAddressBook; - MacabRecords *m_xMacabRecords; - ::std::vector<MacabGroup *> m_xMacabGroups; - sal_Bool m_bRetrievedGroups; - private: - void manageDuplicateGroups(::std::vector<MacabGroup *> _xGroups) const; - public: - MacabAddressBook(); - ~MacabAddressBook(); - static const ::rtl::OUString & getDefaultTableName(); - - MacabRecords *getMacabRecords(); - ::std::vector<MacabGroup *> getMacabGroups(); - - MacabGroup *getMacabGroup(::rtl::OUString _groupName); - MacabRecords *getMacabRecords(const ::rtl::OUString _tableName); - - MacabGroup *getMacabGroupMatch(::rtl::OUString _groupName); - MacabRecords *getMacabRecordsMatch(const ::rtl::OUString _tableName); - }; - - } -} - -#endif // _CONNECTIVITY_MACAB_ADDRESSBOOK_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabCatalog.cxx b/connectivity/source/drivers/macab/MacabCatalog.cxx deleted file mode 100644 index bd9342b4bd..0000000000 --- a/connectivity/source/drivers/macab/MacabCatalog.cxx +++ /dev/null @@ -1,127 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "MacabCatalog.hxx" -#include "MacabConnection.hxx" -#include "MacabTables.hxx" - -using namespace connectivity::macab; -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 ::cppu; - -// ------------------------------------------------------------------------- -MacabCatalog::MacabCatalog(MacabConnection* _pCon) - : connectivity::sdbcx::OCatalog(_pCon), - m_pConnection(_pCon), - m_xMetaData(m_pConnection->getMetaData()) -{ -} -// ------------------------------------------------------------------------- -void MacabCatalog::refreshTables() -{ - TStringVector aVector; - Sequence< ::rtl::OUString > aTypes(1); - aTypes[0] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%")); - Reference< XResultSet > xResult = m_xMetaData->getTables( - Any(), - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("%")), - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("%")), - aTypes); - - if (xResult.is()) - { - Reference< XRow > xRow(xResult,UNO_QUERY); - ::rtl::OUString aName; - // const ::rtl::OUString& sDot = MacabCatalog::getDot(); - - while (xResult->next()) - { - // aName = xRow->getString(2); - // aName += sDot; - aName = xRow->getString(3); - aVector.push_back(aName); - } - } - if (m_pTables) - m_pTables->reFill(aVector); - else - m_pTables = new MacabTables(m_xMetaData,*this,m_aMutex,aVector); -} -// ------------------------------------------------------------------------- -void MacabCatalog::refreshViews() -{ -} -// ------------------------------------------------------------------------- -void MacabCatalog::refreshGroups() -{ -} -// ------------------------------------------------------------------------- -void MacabCatalog::refreshUsers() -{ -} -// ------------------------------------------------------------------------- -const ::rtl::OUString& MacabCatalog::getDot() -{ - static const ::rtl::OUString sDot = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(".")); - return sDot; -} -// ----------------------------------------------------------------------------- - -// XTablesSupplier -Reference< XNameAccess > SAL_CALL MacabCatalog::getTables( ) throw(RuntimeException) -{ - ::osl::MutexGuard aGuard(m_aMutex); - checkDisposed(rBHelper.bDisposed); - - try - { - if (!m_pTables) - refreshTables(); - } - catch( const RuntimeException& ) - { - // allowed to leave this method - throw; - } - catch( const Exception& ) - { - // allowed - } - - return m_pTables; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabCatalog.hxx b/connectivity/source/drivers/macab/MacabCatalog.hxx deleted file mode 100644 index 52e4e7782f..0000000000 --- a/connectivity/source/drivers/macab/MacabCatalog.hxx +++ /dev/null @@ -1,67 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_CATALOG_HXX_ -#define _CONNECTIVITY_MACAB_CATALOG_HXX_ - -#include "connectivity/sdbcx/VCatalog.hxx" - -namespace connectivity -{ - namespace macab - { - class MacabConnection; - - class MacabCatalog : public connectivity::sdbcx::OCatalog - { - MacabConnection* m_pConnection; // used to get the metadata - ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > m_xMetaData; // just to make things easier - - public: - MacabCatalog(MacabConnection* _pCon); - - inline MacabConnection* getConnection() const { return m_pConnection; } - - static const ::rtl::OUString& getDot(); - - // implementation of the pure virtual methods - virtual void refreshTables(); - virtual void refreshViews(); - virtual void refreshGroups(); - virtual void refreshUsers(); - - // XTablesSupplier - virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getTables( - ) throw(::com::sun::star::uno::RuntimeException); - }; - } -} - -#endif // _CONNECTIVITY_MACAB_CATALOG_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabColumns.cxx b/connectivity/source/drivers/macab/MacabColumns.cxx deleted file mode 100644 index 0d78b45969..0000000000 --- a/connectivity/source/drivers/macab/MacabColumns.cxx +++ /dev/null @@ -1,101 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "MacabColumns.hxx" -#include "MacabTable.hxx" -#include "MacabTables.hxx" -#include "MacabCatalog.hxx" -#include "connectivity/sdbcx/VColumn.hxx" - -using namespace connectivity::macab; -using namespace connectivity::sdbcx; -using namespace connectivity; -using namespace ::comphelper; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::beans; -using namespace ::com::sun::star::sdbc; -using namespace ::com::sun::star::container; -using namespace ::com::sun::star::lang; - -// ------------------------------------------------------------------------- -sdbcx::ObjectType MacabColumns::createObject(const ::rtl::OUString& _rName) -{ - Reference< XResultSet > xResult = m_pTable->getConnection()->getMetaData()->getColumns( - Any(), - m_pTable->getSchema(), - m_pTable->getTableName(), - _rName); - - sdbcx::ObjectType xRet = NULL; - if (xResult.is()) - { - Reference< XRow > xRow(xResult,UNO_QUERY); - - while (xResult->next()) - { - if (xRow->getString(4) == _rName) - { - OColumn* pRet = new OColumn( - _rName, - xRow->getString(6), - xRow->getString(13), - xRow->getString(12), - xRow->getInt(11), - xRow->getInt(7), - xRow->getInt(9), - xRow->getInt(5), - sal_False, - sal_False, - sal_False, - sal_True); - xRet = pRet; - break; - } - } - } - - return xRet; -} -// ------------------------------------------------------------------------- -void MacabColumns::impl_refresh() throw(RuntimeException) -{ - m_pTable->refreshColumns(); -} -// ------------------------------------------------------------------------- -MacabColumns::MacabColumns( MacabTable* _pTable, - ::osl::Mutex& _rMutex, - const TStringVector &_rVector) - : sdbcx::OCollection(*_pTable, sal_True, _rMutex, _rVector), - m_pTable(_pTable) -{ -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabColumns.hxx b/connectivity/source/drivers/macab/MacabColumns.hxx deleted file mode 100644 index 1d75c8b585..0000000000 --- a/connectivity/source/drivers/macab/MacabColumns.hxx +++ /dev/null @@ -1,57 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_COLUMNS_HXX_ -#define _CONNECTIVITY_MACAB_COLUMNS_HXX_ - -#include "MacabTable.hxx" -#include "connectivity/sdbcx/VCollection.hxx" - -namespace connectivity -{ - namespace macab - { - class MacabColumns : public sdbcx::OCollection - { - protected: - MacabTable* m_pTable; - - virtual sdbcx::ObjectType createObject(const ::rtl::OUString& _rName); - virtual void impl_refresh() throw(::com::sun::star::uno::RuntimeException); - - public: - MacabColumns( MacabTable* _pTable, - ::osl::Mutex& _rMutex, - const TStringVector &_rVector); - }; - } -} - -#endif // _CONNECTIVITY_MACAB_COLUMNS_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabConnection.cxx b/connectivity/source/drivers/macab/MacabConnection.cxx deleted file mode 100644 index 4841430a07..0000000000 --- a/connectivity/source/drivers/macab/MacabConnection.cxx +++ /dev/null @@ -1,326 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "MacabConnection.hxx" -#include "MacabAddressBook.hxx" -#include "MacabDatabaseMetaData.hxx" -#include "MacabStatement.hxx" -#include "MacabPreparedStatement.hxx" -#include "MacabDriver.hxx" -#include "MacabCatalog.hxx" -#include <com/sun/star/sdbc/ColumnValue.hpp> -#include <com/sun/star/sdbc/TransactionIsolation.hpp> - -using namespace connectivity::macab; -using namespace com::sun::star::uno; -using namespace com::sun::star::lang; -using namespace com::sun::star::beans; -using namespace com::sun::star::sdbc; -using namespace com::sun::star::sdbcx; - -IMPLEMENT_SERVICE_INFO(MacabConnection, "com.sun.star.sdbc.drivers.MacabConnection", "com.sun.star.sdbc.Connection") -//----------------------------------------------------------------------------- -MacabConnection::MacabConnection(MacabDriver* _pDriver) - : OSubComponent<MacabConnection, MacabConnection_BASE>((::cppu::OWeakObject*)_pDriver, this), - m_pAddressBook(NULL), - m_pDriver(_pDriver) -{ - m_pDriver->acquire(); -} -//----------------------------------------------------------------------------- -MacabConnection::~MacabConnection() -{ - if (!isClosed()) - close(); - - m_pDriver->release(); - m_pDriver = NULL; -} -//----------------------------------------------------------------------------- -void SAL_CALL MacabConnection::release() throw() -{ - relase_ChildImpl(); -} -// ----------------------------------------------------------------------------- -void MacabConnection::construct(const ::rtl::OUString&, const Sequence< PropertyValue >&) throw(SQLException) -{ - osl_incrementInterlockedCount( &m_refCount ); - - // get the Mac OS X shared address book - m_pAddressBook = new MacabAddressBook(); - - osl_decrementInterlockedCount( &m_refCount ); -} -// XServiceInfo -// -------------------------------------------------------------------------------- -Reference< XStatement > SAL_CALL MacabConnection::createStatement( ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabConnection_BASE::rBHelper.bDisposed); - - // create a statement - // the statement can only be executed once - Reference< XStatement > xReturn = new MacabStatement(this); - m_aStatements.push_back(WeakReferenceHelper(xReturn)); - return xReturn; -} -// -------------------------------------------------------------------------------- -Reference< XPreparedStatement > SAL_CALL MacabConnection::prepareStatement( const ::rtl::OUString& _sSql ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabConnection_BASE::rBHelper.bDisposed); - - // create a statement - // the statement can only be executed more than once - Reference< XPreparedStatement > xReturn = new MacabPreparedStatement(this, _sSql); - m_aStatements.push_back(WeakReferenceHelper(xReturn)); - return xReturn; -} -// -------------------------------------------------------------------------------- -Reference< XPreparedStatement > SAL_CALL MacabConnection::prepareCall( const ::rtl::OUString& ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabConnection_BASE::rBHelper.bDisposed); - - // not implemented yet :-) a task to do - return NULL; -} -// -------------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabConnection::nativeSQL( const ::rtl::OUString& _sSql ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - // when you need to transform SQL92 to you driver specific you can do it here - - return _sSql; -} -// -------------------------------------------------------------------------------- -void SAL_CALL MacabConnection::setAutoCommit( sal_Bool ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabConnection_BASE::rBHelper.bDisposed); - // here you have to set your commit mode please have a look at the jdbc documentation to get a clear explanation -} -// -------------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabConnection::getAutoCommit( ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabConnection_BASE::rBHelper.bDisposed); - // you have to distinguish which if you are in autocommit mode or not - // at normal case true should be fine here - - return sal_True; -} -// -------------------------------------------------------------------------------- -void SAL_CALL MacabConnection::commit( ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabConnection_BASE::rBHelper.bDisposed); - - // when you database does support transactions you should commit here -} -// -------------------------------------------------------------------------------- -void SAL_CALL MacabConnection::rollback( ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabConnection_BASE::rBHelper.bDisposed); - - // same as commit but for the other case -} -// -------------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabConnection::isClosed( ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - - // just simple -> we are closed when we are disposed, that means someone called dispose(); (XComponent) - return MacabConnection_BASE::rBHelper.bDisposed; -} -// -------------------------------------------------------------------------------- -Reference< XDatabaseMetaData > SAL_CALL MacabConnection::getMetaData( ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabConnection_BASE::rBHelper.bDisposed); - - // here we have to create the class with biggest interface - // The answer is 42 :-) - Reference< XDatabaseMetaData > xMetaData = m_xMetaData; - if (!xMetaData.is()) - { - xMetaData = new MacabDatabaseMetaData(this); // need the connection because it can return it - m_xMetaData = xMetaData; - } - - return xMetaData; -} -// -------------------------------------------------------------------------------- -void SAL_CALL MacabConnection::setReadOnly( sal_Bool ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabConnection_BASE::rBHelper.bDisposed); - - // set you connection to readonly -} -// -------------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabConnection::isReadOnly( ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabConnection_BASE::rBHelper.bDisposed); - - // return if your connection to readonly - return sal_False; -} -// -------------------------------------------------------------------------------- -void SAL_CALL MacabConnection::setCatalog( const ::rtl::OUString& ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabConnection_BASE::rBHelper.bDisposed); - - // if your database doesn't work with catalogs you go to next method otherwise you kjnow what to do -} -// -------------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabConnection::getCatalog( ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabConnection_BASE::rBHelper.bDisposed); - - - // return your current catalog - return ::rtl::OUString(); -} -// -------------------------------------------------------------------------------- -void SAL_CALL MacabConnection::setTransactionIsolation( sal_Int32 ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabConnection_BASE::rBHelper.bDisposed); - - // set your isolation level - // please have a look at @see com.sun.star.sdbc.TransactionIsolation -} -// -------------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabConnection::getTransactionIsolation( ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabConnection_BASE::rBHelper.bDisposed); - - - // please have a look at @see com.sun.star.sdbc.TransactionIsolation - return TransactionIsolation::NONE; -} -// -------------------------------------------------------------------------------- -Reference< ::com::sun::star::container::XNameAccess > SAL_CALL MacabConnection::getTypeMap( ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabConnection_BASE::rBHelper.bDisposed); - - // if your driver has special database types you can return it here - - return NULL; -} -// -------------------------------------------------------------------------------- -void SAL_CALL MacabConnection::setTypeMap( const Reference< ::com::sun::star::container::XNameAccess >& ) throw(SQLException, RuntimeException) -{ - // the other way around -} -// -------------------------------------------------------------------------------- -// XCloseable -void SAL_CALL MacabConnection::close( ) throw(SQLException, RuntimeException) -{ - { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabConnection_BASE::rBHelper.bDisposed); - } - dispose(); -} -// -------------------------------------------------------------------------------- -// XWarningsSupplier -Any SAL_CALL MacabConnection::getWarnings( ) throw(SQLException, RuntimeException) -{ - // when you collected some warnings -> return it - return Any(); -} -// -------------------------------------------------------------------------------- -void SAL_CALL MacabConnection::clearWarnings( ) throw(SQLException, RuntimeException) -{ - // you should clear your collected warnings here -} -//------------------------------------------------------------------------------ -void MacabConnection::disposing() -{ - // we noticed that we should be destroied in near future so we have to dispose our statements - ::osl::MutexGuard aGuard(m_aMutex); - - for (OWeakRefArray::iterator i = m_aStatements.begin(); m_aStatements.end() != i; ++i) - { - Reference< XComponent > xComp(i->get(), UNO_QUERY); - if (xComp.is()) - xComp->dispose(); - } - m_aStatements.clear(); - - if (m_pAddressBook != NULL) - { - delete m_pAddressBook; - m_pAddressBook = NULL; - } - - m_xMetaData = ::com::sun::star::uno::WeakReference< ::com::sun::star::sdbc::XDatabaseMetaData>(); - - dispose_ChildImpl(); - MacabConnection_BASE::disposing(); -} -// ----------------------------------------------------------------------------- -Reference< XTablesSupplier > SAL_CALL MacabConnection::createCatalog() -{ - ::osl::MutexGuard aGuard( m_aMutex ); - - Reference< XTablesSupplier > xTab = m_xCatalog; - if (!m_xCatalog.is()) - { - MacabCatalog *pCat = new MacabCatalog(this); - xTab = pCat; - m_xCatalog = xTab; - } - return xTab; -} -// ----------------------------------------------------------------------------- -MacabAddressBook* MacabConnection::getAddressBook() const -{ - return m_pAddressBook; -} -// ----------------------------------------------------------------------------- -extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL createMacabConnection( void* _pDriver ) -{ - MacabConnection* pConnection = new MacabConnection( static_cast< MacabDriver* >( _pDriver ) ); - // by definition, the pointer crossing library boundaries as void ptr is acquired once - pConnection->acquire(); - return pConnection; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabConnection.hxx b/connectivity/source/drivers/macab/MacabConnection.hxx deleted file mode 100644 index 65ece28448..0000000000 --- a/connectivity/source/drivers/macab/MacabConnection.hxx +++ /dev/null @@ -1,134 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_CONNECTION_HXX_ -#define _CONNECTIVITY_MACAB_CONNECTION_HXX_ - -#include <map> -#include "OSubComponent.hxx" -#include "connectivity/CommonTools.hxx" -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/sdbc/SQLWarning.hpp> -#include <com/sun/star/sdbc/XWarningsSupplier.hpp> -#include <com/sun/star/sdbc/XConnection.hpp> -#include <com/sun/star/sdbcx/XTablesSupplier.hpp> -#include <comphelper/broadcasthelper.hxx> -#include <cppuhelper/compbase3.hxx> -#include "TConnection.hxx" - -namespace connectivity -{ - namespace macab - { - - typedef ::cppu::WeakComponentImplHelper3< ::com::sun::star::sdbc::XConnection, - ::com::sun::star::sdbc::XWarningsSupplier, - ::com::sun::star::lang::XServiceInfo - > OMetaConnection_BASE; - - class MacabStatement_Base; - class MacabDriver; - class MacabDatabaseMetaData; - class MacabAddressBook; - - //typedef OMetaConnection_BASE MacabConnection_BASE; // implements basics and text encoding - typedef std::vector< ::com::sun::star::uno::WeakReferenceHelper > OWeakRefArray; - - typedef connectivity::OMetaConnection MacabConnection_BASE; - - class MacabConnection : public MacabConnection_BASE, - public OSubComponent<MacabConnection, MacabConnection_BASE> - { - friend class OSubComponent<MacabConnection, MacabConnection_BASE>; - - protected: - //==================================================================== - // Data attributes - //==================================================================== - MacabAddressBook* m_pAddressBook; // the address book - MacabDriver* m_pDriver; // pointer to the owning driver object - ::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XTablesSupplier> - m_xCatalog; // needed for the SQL interpreter - - public: - virtual void construct( const ::rtl::OUString& url,const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& info) throw(::com::sun::star::sdbc::SQLException); - - MacabConnection(MacabDriver* _pDriver); - virtual ~MacabConnection(); - - void closeAllStatements () throw( ::com::sun::star::sdbc::SQLException); - - // OComponentHelper - virtual void SAL_CALL disposing(void); - - // XInterface - virtual void SAL_CALL release() throw(); - - // XServiceInfo - DECLARE_SERVICE_INFO(); - - // XConnection - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XStatement > SAL_CALL createStatement( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XPreparedStatement > SAL_CALL prepareStatement( const ::rtl::OUString& sql ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XPreparedStatement > SAL_CALL prepareCall( const ::rtl::OUString& sql ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL nativeSQL( const ::rtl::OUString& sql ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setAutoCommit( sal_Bool autoCommit ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL getAutoCommit( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL commit( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL rollback( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL isClosed( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > SAL_CALL getMetaData( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setReadOnly( sal_Bool readOnly ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL isReadOnly( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setCatalog( const ::rtl::OUString& catalog ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getCatalog( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setTransactionIsolation( sal_Int32 level ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getTransactionIsolation( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getTypeMap( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setTypeMap( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& typeMap ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - - // XCloseable - virtual void SAL_CALL close( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - - // XWarningsSupplier - virtual ::com::sun::star::uno::Any SAL_CALL getWarnings( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL clearWarnings( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - - // needed for the SQL interpreter - ::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XTablesSupplier > SAL_CALL createCatalog(); - - // accessors - inline MacabDriver* getDriver() const { return m_pDriver;} - MacabAddressBook* getAddressBook() const; - }; - } -} - -#endif // _CONNECTIVITY_MACAB_CONNECTION_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabDatabaseMetaData.cxx b/connectivity/source/drivers/macab/MacabDatabaseMetaData.cxx deleted file mode 100644 index 7a8687eb13..0000000000 --- a/connectivity/source/drivers/macab/MacabDatabaseMetaData.cxx +++ /dev/null @@ -1,1127 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "MacabDatabaseMetaData.hxx" -#include "MacabAddressBook.hxx" -#include "MacabHeader.hxx" -#include "MacabGroup.hxx" -#include "macabutilities.hxx" - -#include "MacabDriver.hxx" -#include "FDatabaseMetaDataResultSet.hxx" -#include "OTypeInfo.hxx" -#include <com/sun/star/sdbc/ColumnValue.hpp> -#include <com/sun/star/sdbc/ResultSetType.hpp> -#include <com/sun/star/sdbc/TransactionIsolation.hpp> - -#include <vector> - -using namespace connectivity::macab; -using namespace com::sun::star::uno; -using namespace com::sun::star::lang; -using namespace com::sun::star::beans; -using namespace com::sun::star::sdbc; - -MacabDatabaseMetaData::MacabDatabaseMetaData(MacabConnection* _pCon) - : m_xConnection(_pCon), - m_bUseCatalog(sal_True) -{ - OSL_ENSURE(_pCon,"MacabDatabaseMetaData::MacabDatabaseMetaData: No connection set!"); - - osl_incrementInterlockedCount( &m_refCount ); - m_bUseCatalog = !(usesLocalFiles() || usesLocalFilePerTable()); - osl_decrementInterlockedCount( &m_refCount ); -} -// ------------------------------------------------------------------------- -MacabDatabaseMetaData::~MacabDatabaseMetaData() -{ -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getCatalogSeparator( ) throw(SQLException, RuntimeException) -{ - ::rtl::OUString aVal; - if (m_bUseCatalog) - { // do some special here for you database - } - - return aVal; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxBinaryLiteralLength( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxRowSize( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxCatalogNameLength( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxCharLiteralLength( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxColumnNameLength( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxColumnsInIndex( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxCursorNameLength( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxConnections( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxColumnsInTable( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxStatementLength( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxTableNameLength( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxTablesInSelect( ) throw(SQLException, RuntimeException) -{ - // MaxTablesInSelect describes how many tables can participate in the FROM part of a given SELECT statement, - // currently, the resultset/statement implementations can cope with one table only - sal_Int32 nValue = 1; - return nValue; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::doesMaxRowSizeIncludeBlobs( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::storesLowerCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::storesLowerCaseIdentifiers( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::storesMixedCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::storesMixedCaseIdentifiers( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::storesUpperCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::storesUpperCaseIdentifiers( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsAlterTableWithAddColumn( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsAlterTableWithDropColumn( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxIndexLength( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsNonNullableColumns( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getCatalogTerm( ) throw(SQLException, RuntimeException) -{ - ::rtl::OUString aVal; - if (m_bUseCatalog) - { - } - return aVal; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getIdentifierQuoteString( ) throw(SQLException, RuntimeException) -{ - // normally this is " - ::rtl::OUString aVal(RTL_CONSTASCII_USTRINGPARAM("\"")); - return aVal; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getExtraNameCharacters( ) throw(SQLException, RuntimeException) -{ - ::rtl::OUString aVal; - return aVal; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsDifferentTableCorrelationNames( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::isCatalogAtStart( ) throw(SQLException, RuntimeException) -{ - sal_Bool bValue = sal_False; - if (m_bUseCatalog) - { - } - return bValue; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::dataDefinitionIgnoredInTransactions( ) throw(SQLException, RuntimeException) -{ - return sal_True; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::dataDefinitionCausesTransactionCommit( ) throw(SQLException, RuntimeException) -{ - return sal_True; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsDataManipulationTransactionsOnly( ) throw(SQLException, RuntimeException) -{ - return sal_True; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions( ) throw(SQLException, RuntimeException) -{ - return sal_True; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsPositionedDelete( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsPositionedUpdate( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsOpenStatementsAcrossRollback( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsOpenStatementsAcrossCommit( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsOpenCursorsAcrossCommit( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsOpenCursorsAcrossRollback( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsTransactionIsolationLevel( sal_Int32 ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSchemasInDataManipulation( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsANSI92FullSQL( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsANSI92EntryLevelSQL( ) throw(SQLException, RuntimeException) -{ - return sal_True; // should be supported at least -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsIntegrityEnhancementFacility( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSchemasInIndexDefinitions( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSchemasInTableDefinitions( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsCatalogsInTableDefinitions( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsCatalogsInIndexDefinitions( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsCatalogsInDataManipulation( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsOuterJoins( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxStatements( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxProcedureNameLength( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxSchemaNameLength( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsTransactions( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::allProceduresAreCallable( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsStoredProcedures( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSelectForUpdate( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::allTablesAreSelectable( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::isReadOnly( ) throw(SQLException, RuntimeException) -{ - // for the moment, we have read-only addresses, but this might change in the future - return sal_True; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::usesLocalFiles( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::usesLocalFilePerTable( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsTypeConversion( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::nullPlusNonNullIsNull( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsColumnAliasing( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsTableCorrelationNames( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsConvert( sal_Int32, sal_Int32 ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsExpressionsInOrderBy( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsGroupBy( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsGroupByBeyondSelect( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsGroupByUnrelated( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsMultipleTransactions( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsMultipleResultSets( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsLikeEscapeClause( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsOrderByUnrelated( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsUnion( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsUnionAll( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsMixedCaseIdentifiers( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsMixedCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::nullsAreSortedAtEnd( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::nullsAreSortedAtStart( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::nullsAreSortedHigh( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::nullsAreSortedLow( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSchemasInProcedureCalls( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSchemasInPrivilegeDefinitions( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsCatalogsInProcedureCalls( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsCatalogsInPrivilegeDefinitions( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsCorrelatedSubqueries( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSubqueriesInComparisons( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSubqueriesInExists( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSubqueriesInIns( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsSubqueriesInQuantifieds( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsANSI92IntermediateSQL( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getURL( ) throw(SQLException, RuntimeException) -{ - // if someday we support more than the default address book, - // this method should return the URL which was used to create it - ::rtl::OUString aValue( RTL_CONSTASCII_USTRINGPARAM( "sdbc:address:macab:" )); - return aValue; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getUserName( ) throw(SQLException, RuntimeException) -{ - ::rtl::OUString aValue; - return aValue; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getDriverName( ) throw(SQLException, RuntimeException) -{ - ::rtl::OUString aValue( RTL_CONSTASCII_USTRINGPARAM( "macab" )); - return aValue; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getDriverVersion() throw(SQLException, RuntimeException) -{ - ::rtl::OUString aValue(RTL_CONSTASCII_USTRINGPARAM(MACAB_DRIVER_VERSION)); - return aValue; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getDatabaseProductVersion( ) throw(SQLException, RuntimeException) -{ - ::rtl::OUString aValue; - return aValue; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getDatabaseProductName( ) throw(SQLException, RuntimeException) -{ - ::rtl::OUString aValue; - return aValue; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getProcedureTerm( ) throw(SQLException, RuntimeException) -{ - ::rtl::OUString aValue; - return aValue; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getSchemaTerm( ) throw(SQLException, RuntimeException) -{ - ::rtl::OUString aValue; - return aValue; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getDriverMajorVersion( ) throw(RuntimeException) -{ - return MACAB_DRIVER_VERSION_MAJOR; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getDefaultTransactionIsolation( ) throw(SQLException, RuntimeException) -{ - return TransactionIsolation::NONE; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getDriverMinorVersion( ) throw(RuntimeException) -{ - return MACAB_DRIVER_VERSION_MINOR; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getSQLKeywords( ) throw(SQLException, RuntimeException) -{ - ::rtl::OUString aValue; - return aValue; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getSearchStringEscape( ) throw(SQLException, RuntimeException) -{ - ::rtl::OUString aValue; - return aValue; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getStringFunctions( ) throw(SQLException, RuntimeException) -{ - return ::rtl::OUString(); -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getTimeDateFunctions( ) throw(SQLException, RuntimeException) -{ - return ::rtl::OUString(); -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getSystemFunctions( ) throw(SQLException, RuntimeException) -{ - return ::rtl::OUString(); -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabDatabaseMetaData::getNumericFunctions( ) throw(SQLException, RuntimeException) -{ - return ::rtl::OUString(); -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsExtendedSQLGrammar( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsCoreSQLGrammar( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsMinimumSQLGrammar( ) throw(SQLException, RuntimeException) -{ - return sal_True; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsFullOuterJoins( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsLimitedOuterJoins( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxColumnsInGroupBy( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxColumnsInOrderBy( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxColumnsInSelect( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDatabaseMetaData::getMaxUserNameLength( ) throw(SQLException, RuntimeException) -{ - sal_Int32 nValue = 0; // 0 means no limit - return nValue; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsResultSetType( sal_Int32 setType ) throw(SQLException, RuntimeException) -{ - switch (setType) - { - case ResultSetType::FORWARD_ONLY: - case ResultSetType::SCROLL_INSENSITIVE: - return sal_True; - } - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsResultSetConcurrency( sal_Int32 setType, sal_Int32 ) throw(SQLException, RuntimeException) -{ - switch (setType) - { - case ResultSetType::FORWARD_ONLY: - case ResultSetType::SCROLL_INSENSITIVE: - return sal_True; - } - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::ownUpdatesAreVisible( sal_Int32 ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::ownDeletesAreVisible( sal_Int32 ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::ownInsertsAreVisible( sal_Int32 ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::othersUpdatesAreVisible( sal_Int32 ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::othersDeletesAreVisible( sal_Int32 ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::othersInsertsAreVisible( sal_Int32 ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::updatesAreDetected( sal_Int32 ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::deletesAreDetected( sal_Int32 ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::insertsAreDetected( sal_Int32 ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDatabaseMetaData::supportsBatchUpdates( ) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -Reference< XConnection > SAL_CALL MacabDatabaseMetaData::getConnection( ) throw(SQLException, RuntimeException) -{ - return (Reference< XConnection >) m_xConnection.get(); -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getTableTypes( ) throw(SQLException, RuntimeException) -{ - ::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eTableTypes); - Reference< XResultSet > xRef = pResult; - - static ODatabaseMetaDataResultSet::ORows aRows; - static const ::rtl::OUString aTable(RTL_CONSTASCII_USTRINGPARAM("TABLE")); - - if (aRows.empty()) - { - ODatabaseMetaDataResultSet::ORow aRow(2); - aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[1] = new ORowSetValueDecorator(aTable); - aRows.push_back(aRow); - } - pResult->setRows(aRows); - return xRef; -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getTypeInfo( ) throw(SQLException, RuntimeException) -{ - ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eTypeInfo); - Reference< XResultSet > xRef = pResult; - - static ODatabaseMetaDataResultSet::ORows aRows; - if (aRows.empty()) - { - ODatabaseMetaDataResultSet::ORow aRow(19); - - // We support four types: char, timestamp, integer, float - aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[1] = new ORowSetValueDecorator(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CHAR"))); - aRow[2] = new ORowSetValueDecorator(DataType::CHAR); - aRow[3] = new ORowSetValueDecorator((sal_Int32) 254); - aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue(); - aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue(); - aRow[6] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[7] = new ORowSetValueDecorator((sal_Int32) ColumnValue::NULLABLE); - aRow[8] = ODatabaseMetaDataResultSet::get1Value(); - aRow[9] = new ORowSetValueDecorator((sal_Int32) ColumnSearch::CHAR); - aRow[10] = ODatabaseMetaDataResultSet::get1Value(); - aRow[11] = ODatabaseMetaDataResultSet::get0Value(); - aRow[12] = ODatabaseMetaDataResultSet::get0Value(); - aRow[13] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[14] = ODatabaseMetaDataResultSet::get0Value(); - aRow[15] = ODatabaseMetaDataResultSet::get0Value(); - aRow[16] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[17] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[18] = new ORowSetValueDecorator((sal_Int32) 10); - - aRows.push_back(aRow); - - aRow[1] = new ORowSetValueDecorator(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TIMESTAMP"))); - aRow[2] = new ORowSetValueDecorator(DataType::TIMESTAMP); - aRow[3] = new ORowSetValueDecorator((sal_Int32)19); - aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue(); - aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue(); - aRows.push_back(aRow); - - aRow[1] = new ORowSetValueDecorator(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("INTEGER"))); - aRow[2] = new ORowSetValueDecorator(DataType::INTEGER); - aRow[3] = new ORowSetValueDecorator((sal_Int32)20); - aRow[15] = new ORowSetValueDecorator((sal_Int32)20); - aRows.push_back(aRow); - - aRow[1] = new ORowSetValueDecorator(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FLOAT"))); - aRow[2] = new ORowSetValueDecorator(DataType::FLOAT); - aRow[3] = new ORowSetValueDecorator((sal_Int32)20); - aRow[15] = new ORowSetValueDecorator((sal_Int32)15); - aRows.push_back(aRow); - } - pResult->setRows(aRows); - return xRef; -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getCatalogs( ) throw(SQLException, RuntimeException) -{ - return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eCatalogs ); -} -// ----------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getSchemas( ) throw(SQLException, RuntimeException) -{ - return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eSchemas ); -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getColumnPrivileges( - const Any&, const ::rtl::OUString&, const ::rtl::OUString&, - const ::rtl::OUString& ) throw(SQLException, RuntimeException) -{ - return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eColumnPrivileges ); -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getColumns( - const Any&, - const ::rtl::OUString&, - const ::rtl::OUString& tableNamePattern, - const ::rtl::OUString& columnNamePattern) throw(SQLException, RuntimeException) -{ - ::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eColumns); - Reference< XResultSet > xRef = pResult; - MacabRecords *aRecords; - ::rtl::OUString sTableName; - - aRecords = m_xConnection->getAddressBook()->getMacabRecordsMatch(tableNamePattern); - - ODatabaseMetaDataResultSet::ORows aRows; - if(aRecords != NULL) - { - MacabHeader *aHeader = aRecords->getHeader(); - sTableName = aRecords->getName(); - - ODatabaseMetaDataResultSet::ORow aRow(19); - - aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[1] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[2] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[3] = new ORowSetValueDecorator(sTableName); - aRow[8] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[9] = ODatabaseMetaDataResultSet::get0Value(); - aRow[10] = new ORowSetValueDecorator((sal_Int32) 10); - aRow[11] = ODatabaseMetaDataResultSet::get1Value(); - aRow[12] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[13] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[14] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[15] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[16] = new ORowSetValueDecorator((sal_Int32) 254); - aRow[18] = new ORowSetValueDecorator(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("YES"))); - - sal_Int32 nPosition = 1; - ::rtl::OUString sName; - - MacabHeader::iterator aField; - - for ( aField = aHeader->begin(); - aField != aHeader->end(); - ++aField, ++nPosition) - { - - sName = CFStringToOUString((CFStringRef) (*aField)->value); - if (match(columnNamePattern, sName, '\0')) - { - aRow[4] = new ORowSetValueDecorator(sName); - aRow[17] = new ORowSetValueDecorator(nPosition); - switch((*aField)->type) - { - case kABStringProperty: - aRow[5] = new ORowSetValueDecorator(DataType::CHAR); - aRow[6] = new ORowSetValueDecorator(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CHAR"))); - aRow[7] = new ORowSetValueDecorator((sal_Int32) 256); - aRows.push_back(aRow); - break; - case kABDateProperty: - aRow[5] = new ORowSetValueDecorator(DataType::TIMESTAMP); - aRow[6] = new ORowSetValueDecorator(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TIMESTAMP"))); - aRows.push_back(aRow); - break; - case kABIntegerProperty: - aRow[5] = new ORowSetValueDecorator(DataType::INTEGER); - aRow[6] = new ORowSetValueDecorator(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("INTEGER"))); - aRow[7] = new ORowSetValueDecorator((sal_Int32) 20); - aRows.push_back(aRow); - break; - case kABRealProperty: - aRow[5] = new ORowSetValueDecorator(DataType::FLOAT); - aRow[6] = new ORowSetValueDecorator(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FLOAT"))); - aRow[7] = new ORowSetValueDecorator((sal_Int32) 15); - aRows.push_back(aRow); - break; - default: - ; - // shouldn't happen -- throw an error...? - } - } - } - } - pResult->setRows(aRows); - return xRef; -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getTables( - const Any&, - const ::rtl::OUString&, - const ::rtl::OUString&, - const Sequence< ::rtl::OUString >& types) throw(SQLException, RuntimeException) -{ - ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTables); - Reference< XResultSet > xRef = pResult; - - // check whether we have tables in the requested types - // for the moment, we answer only the "TABLE" table type - // when no types are given at all, we return all the tables - static const ::rtl::OUString aTable(RTL_CONSTASCII_USTRINGPARAM("TABLE")); - sal_Bool bTableFound = sal_False; - const ::rtl::OUString* p = types.getConstArray(), - * pEnd = p + types.getLength(); - - if (p == pEnd) - { - bTableFound = sal_True; - } - else while (p < pEnd) - { - if (match(*p, aTable, '\0')) - { - bTableFound = sal_True; - break; - } - p++; - } - if (!bTableFound) - return xRef; - - static ODatabaseMetaDataResultSet::ORows aRows; - - if (aRows.empty()) - { - ODatabaseMetaDataResultSet::ORow aRow(6); - - MacabRecords *xRecords = m_xConnection->getAddressBook()->getMacabRecords(); - ::std::vector<MacabGroup *> xGroups = m_xConnection->getAddressBook()->getMacabGroups(); - sal_Int32 i, nGroups; - nGroups = xGroups.size(); - - aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[1] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[2] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[3] = new ORowSetValueDecorator(xRecords->getName()); - aRow[4] = new ORowSetValueDecorator(aTable); - aRow[5] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRows.push_back(aRow); - - for(i = 0; i < nGroups; i++) - { - aRow[3] = new ORowSetValueDecorator(xGroups[i]->getName()); - aRows.push_back(aRow); - } - } - pResult->setRows(aRows); - return xRef; -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getProcedureColumns( - const Any&, const ::rtl::OUString&, - const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException) -{ - return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eProcedureColumns ); -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getProcedures( - const Any&, const ::rtl::OUString&, - const ::rtl::OUString& ) throw(SQLException, RuntimeException) -{ - return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eProcedures ); -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getVersionColumns( - const Any&, const ::rtl::OUString&, const ::rtl::OUString& table ) throw(SQLException, RuntimeException) -{ - return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eVersionColumns ); - - ::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eVersionColumns); - Reference< XResultSet > xRef = pResult; - - ODatabaseMetaDataResultSet::ORows aRows; - - if (m_xConnection->getAddressBook()->getMacabRecords(table) != NULL) - { - ODatabaseMetaDataResultSet::ORow aRow( 9 ); - - ::rtl::OUString sName = CFStringToOUString(kABModificationDateProperty); - - aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[1] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[2] = new ORowSetValueDecorator(sName); - aRow[3] = new ORowSetValueDecorator(DataType::TIMESTAMP); - aRow[4] = new ORowSetValueDecorator(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TIMESTAMP"))); - - aRow[5] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[6] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[7] = ODatabaseMetaDataResultSet::getEmptyValue(); - aRow[8] = ODatabaseMetaDataResultSet::getEmptyValue(); - - aRows.push_back(aRow); - } - pResult->setRows(aRows); - return xRef; -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getExportedKeys( - const Any&, const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException) -{ - return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eExportedKeys ); -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getImportedKeys( - const Any&, const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException) -{ - return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eImportedKeys ); -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getPrimaryKeys( - const Any&, const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException) -{ - return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::ePrimaryKeys ); -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getIndexInfo( - const Any&, const ::rtl::OUString&, const ::rtl::OUString&, - sal_Bool, sal_Bool ) throw(SQLException, RuntimeException) -{ - return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eIndexInfo ); -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getBestRowIdentifier( - const Any&, const ::rtl::OUString&, const ::rtl::OUString&, sal_Int32, - sal_Bool ) throw(SQLException, RuntimeException) -{ - return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eBestRowIdentifier ); -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getTablePrivileges( - const Any&, const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException) -{ - return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTablePrivileges ); -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getCrossReference( - const Any&, const ::rtl::OUString&, - const ::rtl::OUString&, const Any&, - const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException) -{ - return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eCrossReference ); -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabDatabaseMetaData::getUDTs( const Any&, const ::rtl::OUString&, const ::rtl::OUString&, const Sequence< sal_Int32 >& ) throw(SQLException, RuntimeException) -{ - OSL_FAIL("Not implemented yet!"); - throw SQLException(); -} -// ----------------------------------------------------------------------------- - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabDatabaseMetaData.hxx b/connectivity/source/drivers/macab/MacabDatabaseMetaData.hxx deleted file mode 100644 index 852cd32c7d..0000000000 --- a/connectivity/source/drivers/macab/MacabDatabaseMetaData.hxx +++ /dev/null @@ -1,215 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_DATABASEMETADATA_HXX_ -#define _CONNECTIVITY_MACAB_DATABASEMETADATA_HXX_ - -#include "MacabConnection.hxx" -#include <com/sun/star/sdbc/XDatabaseMetaData.hpp> -#include <cppuhelper/implbase1.hxx> - -namespace connectivity -{ - namespace macab - { - //************************************************************** - //************ Class: MacabDatabaseMetaData - //************************************************************** - - typedef ::cppu::WeakImplHelper1< ::com::sun::star::sdbc::XDatabaseMetaData> MacabDatabaseMetaData_BASE; - - class MacabDatabaseMetaData : public MacabDatabaseMetaData_BASE - { - ::com::sun::star::uno::Reference< MacabConnection > m_xConnection; - sal_Bool m_bUseCatalog; - - public: - - inline MacabConnection* getOwnConnection() const { return m_xConnection.get(); } - - MacabDatabaseMetaData(MacabConnection* _pCon); - virtual ~MacabDatabaseMetaData(); - - // this interface is really BIG - // XDatabaseMetaData - virtual sal_Bool SAL_CALL allProceduresAreCallable( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL allTablesAreSelectable( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getURL( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getUserName( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL isReadOnly( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL nullsAreSortedHigh( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL nullsAreSortedLow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL nullsAreSortedAtStart( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL nullsAreSortedAtEnd( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getDatabaseProductName( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getDatabaseProductVersion( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getDriverName( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getDriverVersion( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getDriverMajorVersion( ) throw(::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getDriverMinorVersion( ) throw(::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL usesLocalFiles( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL usesLocalFilePerTable( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsMixedCaseIdentifiers( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL storesUpperCaseIdentifiers( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL storesLowerCaseIdentifiers( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL storesMixedCaseIdentifiers( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsMixedCaseQuotedIdentifiers( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL storesUpperCaseQuotedIdentifiers( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL storesLowerCaseQuotedIdentifiers( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL storesMixedCaseQuotedIdentifiers( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getIdentifierQuoteString( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getSQLKeywords( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getNumericFunctions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getStringFunctions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getSystemFunctions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getTimeDateFunctions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getSearchStringEscape( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getExtraNameCharacters( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsAlterTableWithAddColumn( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsAlterTableWithDropColumn( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsColumnAliasing( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL nullPlusNonNullIsNull( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsTypeConversion( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsConvert( sal_Int32 fromType, sal_Int32 toType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsTableCorrelationNames( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsDifferentTableCorrelationNames( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsExpressionsInOrderBy( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsOrderByUnrelated( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsGroupBy( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsGroupByUnrelated( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsGroupByBeyondSelect( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsLikeEscapeClause( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsMultipleResultSets( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsMultipleTransactions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsNonNullableColumns( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsMinimumSQLGrammar( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsCoreSQLGrammar( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsExtendedSQLGrammar( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsANSI92EntryLevelSQL( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsANSI92IntermediateSQL( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsANSI92FullSQL( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsIntegrityEnhancementFacility( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsOuterJoins( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsFullOuterJoins( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsLimitedOuterJoins( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getSchemaTerm( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getProcedureTerm( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getCatalogTerm( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL isCatalogAtStart( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getCatalogSeparator( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsSchemasInDataManipulation( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsSchemasInProcedureCalls( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsSchemasInTableDefinitions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsSchemasInIndexDefinitions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsSchemasInPrivilegeDefinitions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsCatalogsInDataManipulation( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsCatalogsInProcedureCalls( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsCatalogsInTableDefinitions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsCatalogsInIndexDefinitions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsCatalogsInPrivilegeDefinitions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsPositionedDelete( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsPositionedUpdate( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsSelectForUpdate( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsStoredProcedures( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsSubqueriesInComparisons( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsSubqueriesInExists( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsSubqueriesInIns( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsSubqueriesInQuantifieds( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsCorrelatedSubqueries( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsUnion( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsUnionAll( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsOpenCursorsAcrossCommit( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsOpenCursorsAcrossRollback( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsOpenStatementsAcrossCommit( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsOpenStatementsAcrossRollback( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxBinaryLiteralLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxCharLiteralLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxColumnNameLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxColumnsInGroupBy( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxColumnsInIndex( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxColumnsInOrderBy( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxColumnsInSelect( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxColumnsInTable( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxConnections( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxCursorNameLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxIndexLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxSchemaNameLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxProcedureNameLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxCatalogNameLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxRowSize( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL doesMaxRowSizeIncludeBlobs( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxStatementLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxStatements( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxTableNameLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxTablesInSelect( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMaxUserNameLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getDefaultTransactionIsolation( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsTransactions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsTransactionIsolationLevel( sal_Int32 level ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsDataDefinitionAndDataManipulationTransactions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsDataManipulationTransactionsOnly( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL dataDefinitionCausesTransactionCommit( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL dataDefinitionIgnoredInTransactions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getProcedures( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& procedureNamePattern ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getProcedureColumns( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& procedureNamePattern, const ::rtl::OUString& columnNamePattern ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getTables( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& tableNamePattern, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& types ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getSchemas( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getCatalogs( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getTableTypes( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getColumns( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& tableNamePattern, const ::rtl::OUString& columnNamePattern ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getColumnPrivileges( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table, const ::rtl::OUString& columnNamePattern ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getTablePrivileges( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& tableNamePattern ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getBestRowIdentifier( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table, sal_Int32 scope, sal_Bool nullable ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getVersionColumns( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getPrimaryKeys( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getImportedKeys( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getExportedKeys( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getCrossReference( const ::com::sun::star::uno::Any& primaryCatalog, const ::rtl::OUString& primarySchema, const ::rtl::OUString& primaryTable, const ::com::sun::star::uno::Any& foreignCatalog, const ::rtl::OUString& foreignSchema, const ::rtl::OUString& foreignTable ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getTypeInfo( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getIndexInfo( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table, sal_Bool unique, sal_Bool approximate ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsResultSetType( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsResultSetConcurrency( sal_Int32 setType, sal_Int32 concurrency ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL ownUpdatesAreVisible( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL ownDeletesAreVisible( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL ownInsertsAreVisible( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL othersUpdatesAreVisible( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL othersDeletesAreVisible( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL othersInsertsAreVisible( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL updatesAreDetected( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL deletesAreDetected( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL insertsAreDetected( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsBatchUpdates( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getUDTs( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& typeNamePattern, const ::com::sun::star::uno::Sequence< sal_Int32 >& types ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL getConnection( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - }; - } -} - -#endif // _CONNECTIVITY_MACAB_DATABASEMETADATA_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabDriver.cxx b/connectivity/source/drivers/macab/MacabDriver.cxx deleted file mode 100644 index 3751b24ddc..0000000000 --- a/connectivity/source/drivers/macab/MacabDriver.cxx +++ /dev/null @@ -1,350 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "MacabDriver.hxx" -#include "MacabConnection.hxx" - -/** === begin UNO includes === **/ -#include <com/sun/star/sdb/SQLContext.hpp> -#include <com/sun/star/lang/NullPointerException.hpp> -#include <com/sun/star/frame/XDesktop.hpp> -/** === end UNO includes === **/ -#include <rtl/ustrbuf.hxx> -#include <tools/diagnose_ex.h> -#include "resource/macab_res.hrc" - -using namespace com::sun::star::uno; -using namespace com::sun::star::lang; -using namespace com::sun::star::beans; -using namespace com::sun::star::sdbc; -using namespace com::sun::star::sdb; -using namespace com::sun::star::frame; -using namespace connectivity::macab; - -// ======================================================================= -// = MacabImplModule -// ======================================================================= -// -------------------------------------------------------------------------------- -MacabImplModule::MacabImplModule( const Reference< XMultiServiceFactory >& _rxFactory ) - :m_xORB(_rxFactory) - ,m_bAttemptedLoadModule(false) - ,m_hConnectorModule(NULL) - ,m_pConnectionFactoryFunc(NULL) -{ - if ( !m_xORB.is() ) - throw NullPointerException(); -} - -// -------------------------------------------------------------------------------- -bool MacabImplModule::isMacOSPresent() -{ - return impl_loadModule(); -} - -// -------------------------------------------------------------------------------- -namespace -{ - template< typename FUNCTION > - void lcl_getFunctionFromModuleOrUnload( oslModule& _rModule, const sal_Char* _pAsciiSymbolName, FUNCTION& _rFunction ) - { - _rFunction = NULL; - if ( _rModule ) - { - // - const ::rtl::OUString sSymbolName = ::rtl::OUString::createFromAscii( _pAsciiSymbolName ); - _rFunction = (FUNCTION)( osl_getSymbol( _rModule, sSymbolName.pData ) ); - - if ( !_rFunction ) - { // did not find the symbol - OSL_FAIL( ::rtl::OString( "lcl_getFunctionFromModuleOrUnload: could not find the symbol " ) + ::rtl::OString( _pAsciiSymbolName ) ); - osl_unloadModule( _rModule ); - _rModule = NULL; - } - } - } -} - -// -------------------------------------------------------------------------------- -extern "C" { static void SAL_CALL thisModule() {} } - -bool MacabImplModule::impl_loadModule() -{ - if ( m_bAttemptedLoadModule ) - return ( m_hConnectorModule != NULL ); - m_bAttemptedLoadModule = true; - - OSL_ENSURE( !m_hConnectorModule && !m_pConnectionFactoryFunc, - "MacabImplModule::impl_loadModule: inconsistence: inconsistency (never attempted load before, but some values already set)!"); - - const ::rtl::OUString sModuleName(RTL_CONSTASCII_USTRINGPARAM( SAL_MODULENAME( "macabdrv1" )) ); - m_hConnectorModule = osl_loadModuleRelative( &thisModule, sModuleName.pData, SAL_LOADMODULE_NOW ); // LAZY! #i61335# - OSL_ENSURE( m_hConnectorModule, "MacabImplModule::impl_loadModule: could not load the implementation library!" ); - if ( !m_hConnectorModule ) - return false; - - lcl_getFunctionFromModuleOrUnload( m_hConnectorModule, "createMacabConnection", m_pConnectionFactoryFunc ); - - if ( !m_hConnectorModule ) - // one of the symbols did not exist - throw RuntimeException(); - - return true; -} - -// -------------------------------------------------------------------------------- -void MacabImplModule::impl_unloadModule() -{ - OSL_PRECOND( m_hConnectorModule != NULL, "MacabImplModule::impl_unloadModule: no module!" ); - - osl_unloadModule( m_hConnectorModule ); - m_hConnectorModule = NULL; - - m_pConnectionFactoryFunc = NULL; - - m_bAttemptedLoadModule = false; -} - -// -------------------------------------------------------------------------------- -void MacabImplModule::init() -{ - if ( !impl_loadModule() ) - impl_throwNoMacOSException(); - -} - -// -------------------------------------------------------------------------------- -void MacabImplModule::impl_throwNoMacOSException() -{ - ::connectivity::SharedResources aResources; - const ::rtl::OUString sError( aResources.getResourceString( - STR_NO_MAC_OS_FOUND - ) ); - impl_throwGenericSQLException( sError ); -} - -// -------------------------------------------------------------------------------- -void MacabImplModule::impl_throwGenericSQLException( const ::rtl::OUString& _rMessage ) -{ - SQLException aError; - aError.Message = _rMessage; - aError.SQLState = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "S1000" ) ); - aError.ErrorCode = 0; - throw aError; -} - -// -------------------------------------------------------------------------------- -MacabConnection* MacabImplModule::createConnection( MacabDriver* _pDriver ) const -{ - OSL_PRECOND( m_hConnectorModule, "MacabImplModule::createConnection: not initialized!" ); - - void* pUntypedConnection = (*m_pConnectionFactoryFunc)( _pDriver ); - if ( !pUntypedConnection ) - throw RuntimeException(); - - return static_cast< MacabConnection* >( pUntypedConnection ); -} - -// -------------------------------------------------------------------------------- -void MacabImplModule::shutdown() -{ - if ( !m_hConnectorModule ) - return; - - impl_unloadModule(); -} - -// ======================================================================= -// = MacabDriver -// ======================================================================= -MacabDriver::MacabDriver( - const Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory) - : MacabDriver_BASE(m_aMutex), - m_xMSFactory(_rxFactory), - m_aImplModule(_rxFactory) -{ - if ( !m_xMSFactory.is() ) - throw NullPointerException(); - - osl_incrementInterlockedCount( &m_refCount ); - try - { - Reference< XDesktop > xDesktop( - m_xMSFactory->createInstance( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.Desktop" ) ) ), - UNO_QUERY_THROW ); - xDesktop->addTerminateListener( this ); - } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - osl_decrementInterlockedCount( &m_refCount ); -} -// -------------------------------------------------------------------------------- -void MacabDriver::disposing() -{ - ::osl::MutexGuard aGuard(m_aMutex); - - // when driver will be destroied so all our connections have to be destroied as well - for (OWeakRefArray::iterator i = m_xConnections.begin(); m_xConnections.end() != i; ++i) - { - Reference< XComponent > xComp(i->get(), UNO_QUERY); - if (xComp.is()) - xComp->dispose(); - } - m_xConnections.clear(); - - WeakComponentImplHelperBase::disposing(); -} -// static ServiceInfo -//------------------------------------------------------------------------------ -rtl::OUString MacabDriver::getImplementationName_Static( ) throw(RuntimeException) -{ - return rtl::OUString::createFromAscii( impl_getAsciiImplementationName() ); -} -//------------------------------------------------------------------------------ -Sequence< ::rtl::OUString > MacabDriver::getSupportedServiceNames_Static( ) throw (RuntimeException) -{ - // which service is supported - // for more information @see com.sun.star.sdbc.Driver - Sequence< ::rtl::OUString > aSNS( 1 ); - aSNS[0] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sdbc.Driver")); - - return aSNS; -} -//------------------------------------------------------------------ -::rtl::OUString SAL_CALL MacabDriver::getImplementationName( ) throw(RuntimeException) -{ - return getImplementationName_Static(); -} -//------------------------------------------------------------------ -sal_Bool SAL_CALL MacabDriver::supportsService( const ::rtl::OUString& _rServiceName ) throw(RuntimeException) -{ - Sequence< ::rtl::OUString > aSupported(getSupportedServiceNames()); - const ::rtl::OUString* pSupported = aSupported.getConstArray(); - const ::rtl::OUString* pEnd = pSupported + aSupported.getLength(); - - while (pSupported != pEnd && !pSupported->equals(_rServiceName)) - ++pSupported; - return pSupported != pEnd; -} -//------------------------------------------------------------------ -Sequence< ::rtl::OUString > SAL_CALL MacabDriver::getSupportedServiceNames( ) throw(RuntimeException) -{ - return getSupportedServiceNames_Static(); -} -// -------------------------------------------------------------------------------- -Reference< XConnection > SAL_CALL MacabDriver::connect( const ::rtl::OUString& url, const Sequence< PropertyValue >& info ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard(m_aMutex); - - m_aImplModule.init(); - - // create a new connection with the given properties and append it to our vector - MacabConnection* pConnection = m_aImplModule.createConnection( this ); - OSL_POSTCOND( pConnection, "MacabDriver::connect: no connection has been created by the factory!" ); - - // by definition, the factory function returned an object which was acquired once - Reference< XConnection > xConnection = pConnection; - pConnection->release(); - - // late constructor call which can throw exception and allows a correct dtor call when so - pConnection->construct( url, info ); - - // remember it - m_xConnections.push_back( WeakReferenceHelper( *pConnection ) ); - - return xConnection; -} -// -------------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabDriver::acceptsURL( const ::rtl::OUString& url ) - throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard(m_aMutex); - - if ( !m_aImplModule.isMacOSPresent() ) - return sal_False; - - // here we have to look whether we support this URL format - return (!url.compareTo(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:address:macab:")), 18)); -} -// -------------------------------------------------------------------------------- -Sequence< DriverPropertyInfo > SAL_CALL MacabDriver::getPropertyInfo( const ::rtl::OUString&, const Sequence< PropertyValue >& ) throw(SQLException, RuntimeException) -{ - // if you have something special to say, return it here :-) - return Sequence< DriverPropertyInfo >(); -} -// -------------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDriver::getMajorVersion( ) throw(RuntimeException) -{ - return MACAB_DRIVER_VERSION_MAJOR; -} -// -------------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabDriver::getMinorVersion( ) throw(RuntimeException) -{ - return MACAB_DRIVER_VERSION_MINOR; -} -// -------------------------------------------------------------------------------- -void SAL_CALL MacabDriver::queryTermination( const EventObject& ) throw (TerminationVetoException, RuntimeException) -{ - // nothing to do, nothing to veto -} -// -------------------------------------------------------------------------------- -void SAL_CALL MacabDriver::notifyTermination( const EventObject& ) throw (RuntimeException) -{ - m_aImplModule.shutdown(); -} -// -------------------------------------------------------------------------------- -void SAL_CALL MacabDriver::disposing( const EventObject& ) throw (RuntimeException) -{ - // not interested in (this is the disposing of the desktop, if any) -} -// -------------------------------------------------------------------------------- -const sal_Char* MacabDriver::impl_getAsciiImplementationName() -{ - return "com.sun.star.comp.sdbc.macab.Driver"; - // this name is referenced in the configuration and in the macab.xml - // Please be careful when changing it. -} -// -------------------------------------------------------------------------------- -::rtl::OUString MacabDriver::impl_getConfigurationSettingsPath() -{ - ::rtl::OUStringBuffer aPath; - aPath.appendAscii( "/org.openoffice.Office.DataAccess/DriverSettings/" ); - aPath.appendAscii( "com.sun.star.comp.sdbc.macab.Driver" ); - return aPath.makeStringAndClear(); -} -// -------------------------------------------------------------------------------- -Reference< XInterface > SAL_CALL MacabDriver::Create( const Reference< XMultiServiceFactory >& _rxFactory ) throw( Exception ) -{ - return *(new MacabDriver(_rxFactory)); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabDriver.hxx b/connectivity/source/drivers/macab/MacabDriver.hxx deleted file mode 100644 index c21715ec09..0000000000 --- a/connectivity/source/drivers/macab/MacabDriver.hxx +++ /dev/null @@ -1,199 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_DRIVER_HXX_ -#define _CONNECTIVITY_MACAB_DRIVER_HXX_ - -/** === begin UNO includes === **/ -#include <com/sun/star/sdbc/XDriver.hpp> -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/frame/XTerminateListener.hpp> -/** === end UNO includes === **/ -#include <cppuhelper/compbase3.hxx> -#include <osl/module.h> - -// the address book driver's version -#define MACAB_DRIVER_VERSION "0.1" -#define MACAB_DRIVER_VERSION_MAJOR 0 -#define MACAB_DRIVER_VERSION_MINOR 1 - -namespace connectivity -{ - namespace macab - { - class MacabConnection; - class MacabDriver; - - typedef void* (SAL_CALL * ConnectionFactoryFunction)( void* _pDriver ); - - typedef std::vector< ::com::sun::star::uno::WeakReferenceHelper > OWeakRefArray; - - // =============================================================== - // = MacabImplModule - // =============================================================== - class MacabImplModule - { - private: - ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > - m_xORB; - - /// Did we already attempt to load the module and to retrieve the symbols? - bool m_bAttemptedLoadModule; - oslModule m_hConnectorModule; - ConnectionFactoryFunction m_pConnectionFactoryFunc; - - public: - MacabImplModule( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory ); - - /** determines whether there is a mac OS present in the environment - */ - bool isMacOSPresent(); - - /** initializes the implementation module. - - @raises ::com::sun::star::uno::RuntimeException - if the module could be loaded, but required symbols are missing - @raises ::com::sun::star::sdbc::SQLException - if no Mac OS was found at all - */ - void init(); - - /** shuts down the impl module - */ - void shutdown(); - - /** creates a new connection - @precond - <member>init</member> has been called before - @raises ::com::sun::star::uno::RuntimeException - if no connection object could be created (which is a severe error, normally impossible) - */ - MacabConnection* createConnection( MacabDriver* _pDriver ) const; - - private: - /** loads the implementation module and retrieves the needed symbols - - Save against being called multiple times. - - @return <TRUE/> if the module could be loaded successfully. - - @raises ::com::sun::star::uno::RuntimeException - if the module could be loaded, but required symbols are missing - */ - bool impl_loadModule(); - - /** unloads the implementation module, and resets all function pointers to <NULL/> - @precond m_hConnectorModule is not <NULL/> - */ - void impl_unloadModule(); - - /** throws an SQLException saying than no Mac OS installation was found - */ - void impl_throwNoMacOSException(); - - /** throws a generic SQL exception with SQLState S1000 and error code 0 - */ - void impl_throwGenericSQLException( const ::rtl::OUString& _rMessage ); - - }; - - // =============================================================== - // = MacabDriver - // =============================================================== - typedef ::cppu::WeakComponentImplHelper3< ::com::sun::star::sdbc::XDriver, - ::com::sun::star::lang::XServiceInfo, - ::com::sun::star::frame::XTerminateListener > MacabDriver_BASE; - class MacabDriver : public MacabDriver_BASE - { - protected: - ::osl::Mutex m_aMutex; // mutex is need to control member access - OWeakRefArray m_xConnections; // vector containing a list of all the - // MacabConnection objects for this Driver - ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > - m_xMSFactory; // the multi-service factory - MacabImplModule m_aImplModule; - - public: - static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL Create(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory) throw( ::com::sun::star::uno::Exception ); - - // XServiceInfo - static versions - static ::rtl::OUString getImplementationName_Static( ) throw(::com::sun::star::uno::RuntimeException); - static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static( ) throw (::com::sun::star::uno::RuntimeException); - - const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& - getMSFactory() const { return m_xMSFactory; } - - /** returns the driver's implementation name (being pure ASCII) for reference in various places - */ - static const sal_Char* impl_getAsciiImplementationName(); - - /** returns the path of our configuration settings - */ - static ::rtl::OUString impl_getConfigurationSettingsPath(); - - protected: - MacabDriver(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory); - - // OComponentHelper - virtual void SAL_CALL disposing(void); - - // XServiceInfo - virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw(::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException); - - // XDriver - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL connect( const ::rtl::OUString& url, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& info ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL acceptsURL( const ::rtl::OUString& url ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sdbc::DriverPropertyInfo > SAL_CALL getPropertyInfo( const ::rtl::OUString& url, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& info ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMajorVersion() throw(::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getMinorVersion() throw(::com::sun::star::uno::RuntimeException); - - // XTerminateListener - virtual void SAL_CALL queryTermination( const ::com::sun::star::lang::EventObject& Event ) throw (::com::sun::star::frame::TerminationVetoException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL notifyTermination( const ::com::sun::star::lang::EventObject& Event ) throw (::com::sun::star::uno::RuntimeException); - - // XEventListener - virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException); - - private: - /** shuts down the library which contains the real implementations - - This method is safe against being called multiple times - - @precond our mutex is locked - */ - void impl_shutdownImplementationModule(); - }; - } - -} - -#endif // _CONNECTIVITY_MACAB_DRIVER_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabGroup.cxx b/connectivity/source/drivers/macab/MacabGroup.cxx deleted file mode 100644 index 6f0dabf45b..0000000000 --- a/connectivity/source/drivers/macab/MacabGroup.cxx +++ /dev/null @@ -1,104 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "MacabGroup.hxx" -#include "MacabRecords.hxx" -#include "macabutilities.hxx" - -using namespace connectivity::macab; - -// ------------------------------------------------------------------------- -/* A MacabGroup is basically a MacabRecords with a different constructor. - * It only exists as a different entity for clarification purposes (a group - * is its own entity in the Mac OS X Address Book) and because its - * construction is so unique (it is based on an already existent - * MacabRecords of the entire address book). - */ -MacabGroup::MacabGroup(const ABAddressBookRef _addressBook, const MacabRecords *_allRecords, const ABGroupRef _xGroup) - : MacabRecords(_addressBook) -{ - sal_Int32 i, j, nAllRecordsSize; - CFArrayRef xGroupMembers = ABGroupCopyArrayOfAllMembers(_xGroup); - ABPersonRef xPerson; - CFStringRef sGroupMemberUID; - sal_Bool bFound; - macabfield *xRecordField; - - // Set the group's name (stored in MacabRecords as m_sName) - CFStringRef sGroupName; - sGroupName = (CFStringRef) ABRecordCopyValue(_xGroup, kABGroupNameProperty); - m_sName = CFStringToOUString(sGroupName); - CFRelease(sGroupName); - - // The _group's_ records (remember MacabGroup inherits from MacabRecords) - recordsSize = (sal_Int32) CFArrayGetCount(xGroupMembers); - records = new MacabRecord *[recordsSize]; - setHeader(_allRecords->getHeader()); - - /* Go through each record in the group and try to find that record's UID - * in the MacabRecords that was passed in. If it is found, add that - * record to the group. Otherwise, report an error. (All records should - * exist in the MacabRecords that was passed in.) - */ - nAllRecordsSize = _allRecords->size(); - for(i = 0; i < recordsSize; i++) - { - xPerson = (ABPersonRef) CFArrayGetValueAtIndex(xGroupMembers,i); - if(xPerson != NULL) - { - sGroupMemberUID = (CFStringRef) ABRecordCopyValue(xPerson, kABUIDProperty); - if(sGroupMemberUID != NULL) - { - bFound = sal_False; - for(j = 0; j < nAllRecordsSize; j++) - { - xRecordField = _allRecords->getField(j,CFStringToOUString(kABUIDProperty)); - if(xRecordField != NULL && xRecordField->value != NULL) - { - if(CFEqual(xRecordField->value, sGroupMemberUID)) - { - /* Found the matching UID! Insert into the group... */ - insertRecord(_allRecords->getRecord(j)); - bFound = sal_True; - break; - } - } - } - OSL_ENSURE(bFound, "MacabGroup::MacabGroup : Could not find group member based on UID!\n"); - CFRelease(sGroupMemberUID); - } - } - } - - CFRelease(xGroupMembers); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabGroup.hxx b/connectivity/source/drivers/macab/MacabGroup.hxx deleted file mode 100644 index 1f09ac0d09..0000000000 --- a/connectivity/source/drivers/macab/MacabGroup.hxx +++ /dev/null @@ -1,53 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_GROUP_HXX_ -#define _CONNECTIVITY_MACAB_GROUP_HXX_ - -#include "MacabRecords.hxx" - -#include <premac.h> -#include <Carbon/Carbon.h> -#include <AddressBook/ABAddressBookC.h> -#include <postmac.h> - - -namespace connectivity -{ - namespace macab - { - class MacabGroup: public MacabRecords { - public: - MacabGroup(const ABAddressBookRef _addressBook, const MacabRecords *_allRecords, const ABGroupRef _xGroup); - }; - } -} - -#endif // _CONNECTIVITY_MACAB_GROUP_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabHeader.cxx b/connectivity/source/drivers/macab/MacabHeader.cxx deleted file mode 100644 index 39fb28c62c..0000000000 --- a/connectivity/source/drivers/macab/MacabHeader.cxx +++ /dev/null @@ -1,346 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "MacabHeader.hxx" -#include "MacabRecord.hxx" -#include "macabutilities.hxx" - -#include <math.h> -#include <com/sun/star/sdbc/DataType.hpp> -#include <connectivity/dbconversion.hxx> - -using namespace connectivity::macab; -using namespace com::sun::star::sdbc; -using namespace com::sun::star::util; -using namespace ::dbtools; - -// ------------------------------------------------------------------------- -MacabHeader::MacabHeader(const sal_Int32 _size, macabfield **_fields) -{ - sal_Int32 i; - size = _size; - fields = new macabfield *[size]; - for(i = 0; i < size; i++) - { - if(_fields[i] == NULL) - { - fields[i] = NULL; - } - else - { - /* The constructor duplicates the macabfields it gets because they - * are either deleted later or used for other purposes. - */ - fields[i] = new macabfield; - fields[i]->type = _fields[i]->type; - fields[i]->value = _fields[i]->value; - if (fields[i]->value) - CFRetain(fields[i]->value); - } - } - -} - -// ------------------------------------------------------------------------- -MacabHeader::MacabHeader() -{ - size = 0; - fields = NULL; -} - -// ------------------------------------------------------------------------- -MacabHeader::~MacabHeader() -{ -} - -// ------------------------------------------------------------------------- -void MacabHeader::operator+= (const MacabHeader *r) -{ - /* Add one MacabHeader to another. Anything not already in the header is - * added to the end of it. - */ - sal_Int32 rSize = r->getSize(); - if(rSize != 0) // If the new header does actually have fields - { - /* If our header is currently empty, just copy all of the fields from - * the new header to this one. - */ - if(size == 0) - { - sal_Int32 i; - size = rSize; - fields = new macabfield *[size]; - for(i = 0; i < size; i++) - { - fields[i] = r->copy(i); - } - } - - /* Otherwise, only add the duplicates. We do this with a two-pass - * approach. First, find out how many fields to add, then reallocate - * the size of the fields array and add the old ones at the end. - * (More precisely, we create a _new_ fields array with the new length - * allocated to it, then get all of the fields from the current - * fields array to it, then copy the non-duplicates from the new - * header to the end.) - */ - else - { - sal_Int32 i; - sal_Int32 numToAdd = 0, numAdded = 0; - macabfield **newFields; - for( i = 0; i < rSize; i++) - { - if(!contains(r->get(i))) - { - numToAdd++; - } - } - - newFields = new macabfield *[size+numToAdd]; - for(i = 0; i < size; i++) - { - newFields[i] = copy(i); - } - - for( i = 0; i < rSize; i++) - { - if(!contains(r->get(i))) - { - newFields[size+numAdded] = r->copy(i); - numAdded++; - if(numAdded == numToAdd) - break; - } - } - - releaseFields(); - delete [] fields; - size += numAdded; - fields = newFields; - } - } -} - -// ------------------------------------------------------------------------- -::rtl::OUString MacabHeader::getString(const sal_Int32 i) const -{ - ::rtl::OUString nRet; - - if(i < size) - { - if(fields[i] == NULL || fields[i]->value == NULL || CFGetTypeID(fields[i]->value) != CFStringGetTypeID()) - return ::rtl::OUString(); - try - { - nRet = CFStringToOUString( (CFStringRef) fields[i]->value); - } - catch(...){ } - } - - return nRet; -} - -// ------------------------------------------------------------------------- -void MacabHeader::sortRecord() -{ - sortRecord(0,size); -} - -// ------------------------------------------------------------------------- -macabfield **MacabHeader::sortRecord(const sal_Int32 _start, const sal_Int32 _length) -{ - /* Sort using mergesort. Because it uses mergesort, it is recursive and - * not in place (so it creates a new array at every step of the - * recursion), so if you prefer to use a different sort, please feel - * free to implement it. - */ - macabfield** sorted = new macabfield *[_length]; - if(_length <= 2) - { - if(_length == 2) - { - if(compareFields(fields[_start], fields[_start+1]) > 0) - { - sorted[0] = get(_start+1); - sorted[1] = get(_start); - } - else - { - sorted[0] = get(_start); - sorted[1] = get(_start+1); - } - } - else if(_length == 1) - { - sorted[0] = get(_start); - } - } - else - { - sal_Int32 halfLength = floor(_length/2); - sal_Int32 fp = 0, lp = 0; - sal_Int32 i; - macabfield **firstHalf = new macabfield *[halfLength]; - macabfield **lastHalf = new macabfield *[_length - halfLength]; - - firstHalf = sortRecord(_start, halfLength); - lastHalf = sortRecord(_start+halfLength, _length-halfLength); - for(i = 0; i < _length; i++) - { - if(compareFields(firstHalf[fp],lastHalf[lp]) < 0) - { - sorted[i] = firstHalf[fp++]; - if(fp == halfLength) - { - for( i++; i < _length; i++) - { - sorted[i] = lastHalf[lp++]; - } - break; - } - } - else - { - sorted[i] = lastHalf[lp++]; - if(lp == _length - halfLength) - { - for( i++; i < _length; i++) - { - sorted[i] = firstHalf[fp++]; - } - break; - } - } - } - if(_length == size) - { - fields = sorted; - } - } - return sorted; -} - -sal_Int32 MacabHeader::compareFields(const macabfield *_field1, const macabfield *_field2) -{ - /* Comparing two fields in a MacabHeader is different than comparing two - * fields in a MacabRecord. It starts in the same way (if one of the two - * fields is NULL, it belongs after the other, so it is considered - * "greater"). But, then, all headers are CFStrings, no matter what - * type they claim to be (since they actually hold the expected type for - * the records with that header). That being said, all we have to do is - * the built-in CFStringCompare. - */ - if(_field1 == _field2) - return 0; - if(_field1 == NULL) - return 1; - if(_field2 == NULL) - return -1; - - CFComparisonResult result = CFStringCompare( - (CFStringRef) _field1->value, - (CFStringRef) _field2->value, - 0); // 0 = no options (like ignore case) - - return (sal_Int32) result; -} - -// ------------------------------------------------------------------------- -sal_Int32 MacabHeader::getColumnNumber(const ::rtl::OUString s) const -{ - sal_Int32 i; - for(i = 0; i < size; i++) - { - if(getString(i) == s) - break; - } - - if(i == size) - i = -1; - - return i; -} - -// ------------------------------------------------------------------------- -MacabHeader *MacabHeader::begin() -{ - return this; -} - -// ------------------------------------------------------------------------- -MacabHeader::iterator::iterator () -{ -} - -// ------------------------------------------------------------------------- -MacabHeader::iterator::~iterator () -{ -} - -MacabHeader::iterator& MacabHeader::iterator::operator= (MacabHeader *_record) -{ - id = 0; - record = _record; - return *this; -} - -// ------------------------------------------------------------------------- -void MacabHeader::iterator::operator++ () -{ - id++; -} - -// ------------------------------------------------------------------------- -sal_Bool MacabHeader::iterator::operator!= (const sal_Int32 i) const -{ - return(id != i); -} - -// ------------------------------------------------------------------------- -sal_Bool MacabHeader::iterator::operator== (const sal_Int32 i) const -{ - return(id == i); -} - -// ------------------------------------------------------------------------- -macabfield *MacabHeader::iterator::operator* () const -{ - return record->get(id); -} - -// ------------------------------------------------------------------------- -sal_Int32 MacabHeader::end() const -{ - return size; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabHeader.hxx b/connectivity/source/drivers/macab/MacabHeader.hxx deleted file mode 100644 index f24b593a9b..0000000000 --- a/connectivity/source/drivers/macab/MacabHeader.hxx +++ /dev/null @@ -1,74 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_HEADER_HXX_ -#define _CONNECTIVITY_MACAB_HEADER_HXX_ - -#include "MacabRecord.hxx" -#include <cppuhelper/compbase3.hxx> - -namespace connectivity -{ - namespace macab - { - class MacabHeader: public MacabRecord{ - protected: - macabfield **sortRecord(sal_Int32 _start, sal_Int32 _length); - public: - MacabHeader(); - MacabHeader(const sal_Int32 _size, macabfield **_fields); - virtual ~MacabHeader(); - void operator+= (const MacabHeader *r); - ::rtl::OUString getString(const sal_Int32 i) const; - void sortRecord(); - sal_Int32 getColumnNumber(const ::rtl::OUString s) const; - - static sal_Int32 compareFields(const macabfield *_field1, const macabfield *_field2); - - MacabHeader *begin(); - sal_Int32 end() const; - class iterator{ - protected: - sal_Int32 id; - MacabHeader *record; - public: - iterator& operator= (MacabHeader *_record); - iterator(); - ~iterator(); - void operator++ (); - sal_Bool operator!= (const sal_Int32 i) const; - sal_Bool operator== (const sal_Int32 i) const; - macabfield *operator* () const; - }; - }; - } -} - -#endif // _CONNECTIVITY_MACAB_HEADER_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabPreparedStatement.cxx b/connectivity/source/drivers/macab/MacabPreparedStatement.cxx deleted file mode 100644 index 19d9c5f9de..0000000000 --- a/connectivity/source/drivers/macab/MacabPreparedStatement.cxx +++ /dev/null @@ -1,410 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "MacabPreparedStatement.hxx" -#include "MacabAddressBook.hxx" -#include "propertyids.hxx" -#include <connectivity/dbexception.hxx> -#include "connectivity/dbtools.hxx" -#include "resource/macab_res.hrc" -#include "resource/sharedresources.hxx" - -using namespace connectivity::macab; -using namespace com::sun::star::uno; -using namespace com::sun::star::lang; -using namespace com::sun::star::sdbc; -using namespace com::sun::star::util; - -IMPLEMENT_SERVICE_INFO(MacabPreparedStatement, "com.sun.star.sdbc.drivers.MacabPreparedStatement", "com.sun.star.sdbc.PreparedStatement"); -// ------------------------------------------------------------------------- -void MacabPreparedStatement::checkAndResizeParameters(sal_Int32 nParams) throw(SQLException) -{ - if ( !m_aParameterRow.is() ) - m_aParameterRow = new OValueVector(); - - if (nParams < 1) - ::dbtools::throwInvalidIndexException(*(MacabPreparedStatement *) this,Any()); - - if (nParams >= (sal_Int32) (m_aParameterRow->get()).size()) - (m_aParameterRow->get()).resize(nParams); -} -// ------------------------------------------------------------------------- -void MacabPreparedStatement::setMacabFields() const throw(SQLException) -{ - ::rtl::Reference<connectivity::OSQLColumns> xColumns; // selected columns - - xColumns = m_aSQLIterator.getSelectColumns(); - if (!xColumns.is()) - { - ::connectivity::SharedResources aResources; - const ::rtl::OUString sError( aResources.getResourceString( - STR_INVALID_COLUMN_SELECTION - ) ); - ::dbtools::throwGenericSQLException(sError,NULL); - } - m_xMetaData->setMacabFields(xColumns); -} -// ------------------------------------------------------------------------- -void MacabPreparedStatement::resetParameters() const throw(SQLException) -{ - m_nParameterIndex = 0; -} -// ------------------------------------------------------------------------- -void MacabPreparedStatement::getNextParameter(::rtl::OUString &rParameter) const throw(SQLException) -{ - if (m_nParameterIndex >= (sal_Int32) (m_aParameterRow->get()).size()) - { - ::connectivity::SharedResources aResources; - const ::rtl::OUString sError( aResources.getResourceString( - STR_INVALID_PARA_COUNT - ) ); - ::dbtools::throwGenericSQLException(sError,*(MacabPreparedStatement *) this); - } - - rParameter = (m_aParameterRow->get())[m_nParameterIndex]; - - m_nParameterIndex++; -} -// ------------------------------------------------------------------------- -MacabPreparedStatement::MacabPreparedStatement( - MacabConnection* _pConnection, - const ::rtl::OUString& sql) - : MacabPreparedStatement_BASE(_pConnection), - m_sSqlStatement(sql), - m_bPrepared(sal_False), - m_nParameterIndex(0), - m_aParameterRow() -{ - -} -// ------------------------------------------------------------------------- -MacabPreparedStatement::~MacabPreparedStatement() -{ -} -// ------------------------------------------------------------------------- -void MacabPreparedStatement::disposing() -{ - MacabPreparedStatement_BASE::disposing(); - - if (m_aParameterRow.is()) - { - m_aParameterRow->get().clear(); - m_aParameterRow = NULL; - } -} -// ------------------------------------------------------------------------- -Reference< XResultSetMetaData > SAL_CALL MacabPreparedStatement::getMetaData() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabCommonStatement_BASE::rBHelper.bDisposed); - - if (!m_xMetaData.is()) - { - const OSQLTables& xTabs = m_aSQLIterator.getTables(); - ::rtl::OUString sTableName = MacabAddressBook::getDefaultTableName(); - - if(! xTabs.empty() ) - { - - // can only deal with one table at a time - if(xTabs.size() == 1 && !m_aSQLIterator.hasErrors() ) - sTableName = xTabs.begin()->first; - - } - m_xMetaData = new MacabResultSetMetaData(getOwnConnection(),sTableName); - setMacabFields(); - } - Reference< XResultSetMetaData > xMetaData = m_xMetaData.get(); - return xMetaData; -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::close() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabCommonStatement_BASE::rBHelper.bDisposed); - - // Reset last warning message - try { - clearWarnings (); - MacabCommonStatement::close(); - } - catch (SQLException &) { - // If we get an error, ignore - } - - // Remove this Statement object from the Connection object's - // list -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabPreparedStatement::execute() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabCommonStatement_BASE::rBHelper.bDisposed); - - Reference< XResultSet> xRS = MacabCommonStatement::executeQuery(m_sSqlStatement); - - return xRS.is(); -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabPreparedStatement::executeUpdate() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabCommonStatement_BASE::rBHelper.bDisposed); - - // same as in statement with the difference that this statement also can contain parameter - return 0; -} -// ------------------------------------------------------------------------- -Reference< XConnection > SAL_CALL MacabPreparedStatement::getConnection() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabCommonStatement_BASE::rBHelper.bDisposed); - - return (Reference< XConnection >) m_pConnection; -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabPreparedStatement::executeQuery() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabCommonStatement_BASE::rBHelper.bDisposed); - - Reference< XResultSet > rs = MacabCommonStatement::executeQuery(m_sSqlStatement); - - return rs; -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setNull(sal_Int32 parameterIndex, sal_Int32) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabCommonStatement_BASE::rBHelper.bDisposed); - - checkAndResizeParameters(parameterIndex); - - (m_aParameterRow->get())[parameterIndex - 1].setNull(); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setObjectNull(sal_Int32, sal_Int32, const ::rtl::OUString&) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setObjectNull", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setBoolean(sal_Int32, sal_Bool) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setBoolean", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setByte(sal_Int32, sal_Int8) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setByte", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setShort(sal_Int32, sal_Int16) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setShort", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setInt(sal_Int32, sal_Int32) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setInt", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setLong(sal_Int32, sal_Int64) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setLong", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setFloat(sal_Int32, float) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setFloat", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setDouble(sal_Int32, double) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setDouble", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setString(sal_Int32 parameterIndex, const ::rtl::OUString &x) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabCommonStatement_BASE::rBHelper.bDisposed); - - checkAndResizeParameters(parameterIndex); - - (m_aParameterRow->get())[parameterIndex - 1] = x; -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setBytes(sal_Int32, const Sequence< sal_Int8 >&) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setBytes", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setDate(sal_Int32, const Date&) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setDate", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setTime(sal_Int32, const Time&) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setTime", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setTimestamp(sal_Int32, const DateTime&) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setTimestamp", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setBinaryStream(sal_Int32, const Reference< ::com::sun::star::io::XInputStream >&, sal_Int32) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setBinaryStream", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setCharacterStream(sal_Int32, const Reference< ::com::sun::star::io::XInputStream >&, sal_Int32) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setCharacterStream", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setObject(sal_Int32 parameterIndex, const Any& x) throw(SQLException, RuntimeException) -{ - 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) -{ - - - -::dbtools::throwFunctionNotSupportedException("setObjectWithInfo", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setRef(sal_Int32, const Reference< XRef >&) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setRef", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setBlob(sal_Int32, const Reference< XBlob >&) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setBlob", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setClob(sal_Int32, const Reference< XClob >&) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setClob", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::setArray(sal_Int32, const Reference< XArray >&) throw(SQLException, RuntimeException) -{ - - - -::dbtools::throwFunctionNotSupportedException("setArray", NULL); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabPreparedStatement::clearParameters() throw(SQLException, RuntimeException) -{ -::dbtools::throwFunctionNotSupportedException("clearParameters", NULL); -} -// ------------------------------------------------------------------------- -void MacabPreparedStatement::setFastPropertyValue_NoBroadcast(sal_Int32 nHandle,const Any& rValue) throw (Exception) -{ - switch (nHandle) - { - case PROPERTY_ID_RESULTSETCONCURRENCY: - break; - case PROPERTY_ID_RESULTSETTYPE: - break; - case PROPERTY_ID_FETCHDIRECTION: - break; - case PROPERTY_ID_USEBOOKMARKS: - break; - default: - MacabCommonStatement::setFastPropertyValue_NoBroadcast(nHandle,rValue); - } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabPreparedStatement.hxx b/connectivity/source/drivers/macab/MacabPreparedStatement.hxx deleted file mode 100644 index 0fb1b6e92d..0000000000 --- a/connectivity/source/drivers/macab/MacabPreparedStatement.hxx +++ /dev/null @@ -1,122 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_PREPAREDSTATEMENT_HXX_ -#define _CONNECTIVITY_MACAB_PREPAREDSTATEMENT_HXX_ - -#include "MacabStatement.hxx" -#include "MacabResultSetMetaData.hxx" -#include <connectivity/FValue.hxx> -#include <com/sun/star/sdbc/XParameters.hpp> -#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp> -#include <cppuhelper/implbase4.hxx> - -namespace connectivity -{ - namespace macab - { - - class OBoundParam; - typedef ::cppu::ImplInheritanceHelper4< MacabCommonStatement, - ::com::sun::star::sdbc::XPreparedStatement, - ::com::sun::star::sdbc::XParameters, - ::com::sun::star::sdbc::XResultSetMetaDataSupplier, - ::com::sun::star::lang::XServiceInfo> MacabPreparedStatement_BASE; - - class MacabPreparedStatement : public MacabPreparedStatement_BASE - { - protected: - ::rtl::OUString m_sSqlStatement; - ::rtl::Reference< MacabResultSetMetaData > - m_xMetaData; - sal_Bool m_bPrepared; - mutable sal_Int32 m_nParameterIndex; - OValueRow m_aParameterRow; - - void checkAndResizeParameters(sal_Int32 nParams) throw(::com::sun::star::sdbc::SQLException); - void setMacabFields() const throw(::com::sun::star::sdbc::SQLException); - - protected: - virtual void SAL_CALL setFastPropertyValue_NoBroadcast( - sal_Int32 nHandle, - const ::com::sun::star::uno::Any& rValue) throw (::com::sun::star::uno::Exception); - - virtual void resetParameters() const throw(::com::sun::star::sdbc::SQLException); - virtual void getNextParameter(::rtl::OUString &rParameter) const throw(::com::sun::star::sdbc::SQLException); - virtual ~MacabPreparedStatement(); - - public: - DECLARE_SERVICE_INFO(); - MacabPreparedStatement(MacabConnection* _pConnection, const ::rtl::OUString& sql); - - // OComponentHelper - virtual void SAL_CALL disposing(); - - // XPreparedStatement - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL executeQuery( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL executeUpdate( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL execute( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL getConnection( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - - // XParameters - virtual void SAL_CALL setNull( sal_Int32 parameterIndex, sal_Int32 sqlType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setObjectNull( sal_Int32 parameterIndex, sal_Int32 sqlType, const ::rtl::OUString& typeName ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setBoolean( sal_Int32 parameterIndex, sal_Bool x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setByte( sal_Int32 parameterIndex, sal_Int8 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setShort( sal_Int32 parameterIndex, sal_Int16 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setInt( sal_Int32 parameterIndex, sal_Int32 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setLong( sal_Int32 parameterIndex, sal_Int64 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setFloat( sal_Int32 parameterIndex, float x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setDouble( sal_Int32 parameterIndex, double x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setString( sal_Int32 parameterIndex, const ::rtl::OUString& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setBytes( sal_Int32 parameterIndex, const ::com::sun::star::uno::Sequence< sal_Int8 >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setDate( sal_Int32 parameterIndex, const ::com::sun::star::util::Date& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setTime( sal_Int32 parameterIndex, const ::com::sun::star::util::Time& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setTimestamp( sal_Int32 parameterIndex, const ::com::sun::star::util::DateTime& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setBinaryStream( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setCharacterStream( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setObject( sal_Int32 parameterIndex, const ::com::sun::star::uno::Any& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setObjectWithInfo( sal_Int32 parameterIndex, const ::com::sun::star::uno::Any& x, sal_Int32 targetSqlType, sal_Int32 scale ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setRef( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRef >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setBlob( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XBlob >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setClob( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XClob >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setArray( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XArray >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL clearParameters( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - - // XCloseable - virtual void SAL_CALL close( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - - // XResultSetMetaDataSupplier - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > SAL_CALL getMetaData( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - }; - } -} - -#endif // _CONNECTIVITY_MACAB_PREPAREDSTATEMENT_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabRecord.cxx b/connectivity/source/drivers/macab/MacabRecord.cxx deleted file mode 100644 index 3bf9cac179..0000000000 --- a/connectivity/source/drivers/macab/MacabRecord.cxx +++ /dev/null @@ -1,350 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "MacabRecord.hxx" -#include "macabutilities.hxx" -#include <com/sun/star/util/DateTime.hpp> - -#include <premac.h> -#include <Carbon/Carbon.h> -#include <AddressBook/ABAddressBookC.h> -#include <postmac.h> -#include <connectivity/dbconversion.hxx> - -using namespace connectivity::macab; -using namespace com::sun::star::util; -using namespace ::dbtools; - -// ------------------------------------------------------------------------- -MacabRecord::MacabRecord() -{ - size = 0; - fields = NULL; -} - -// ------------------------------------------------------------------------- -MacabRecord::MacabRecord(const sal_Int32 _size) -{ - size = _size; - fields = new macabfield *[size]; - sal_Int32 i; - for(i = 0; i < size; i++) - fields[i] = NULL; -} - -// ------------------------------------------------------------------------- -MacabRecord::~MacabRecord() -{ - if(size > 0) - { - int i; - for(i = 0; i < size; i++) - { - delete fields[i]; - fields[i] = NULL; - } - } - delete [] fields; - fields = NULL; -} - -// ------------------------------------------------------------------------- -void MacabRecord::insertAtColumn (CFTypeRef _value, ABPropertyType _type, const sal_Int32 _column) -{ - if(_column < size) - { - if(fields[_column] == NULL) - fields[_column] = new macabfield; - - fields[_column]->value = _value; - if (fields[_column]->value) - CFRetain(fields[_column]->value); - fields[_column]->type = _type; - } -} - -// ------------------------------------------------------------------------- -sal_Bool MacabRecord::contains (const macabfield *_field) const -{ - if(_field == NULL) - return sal_False; - else - return contains(_field->value); -} - -// ------------------------------------------------------------------------- -sal_Bool MacabRecord::contains (const CFTypeRef _value) const -{ - sal_Int32 i; - for(i = 0; i < size; i++) - { - if(fields[i] != NULL) - { - if(CFEqual(fields[i]->value, _value)) - { - return sal_True; - } - } - } - - return sal_False; -} - -// ------------------------------------------------------------------------- -sal_Int32 MacabRecord::getSize() const -{ - return size; -} - -// ------------------------------------------------------------------------- -macabfield *MacabRecord::copy(const sal_Int32 i) const -{ - /* Note: copy(i) creates a new macabfield identical to that at - * location i, whereas get(i) returns a pointer to the macabfield - * at location i. - */ - if(i < size) - { - macabfield *_copy = new macabfield; - _copy->type = fields[i]->type; - _copy->value = fields[i]->value; - if (_copy->value) - CFRetain(_copy->value); - return _copy; - } - - return NULL; -} - -// ------------------------------------------------------------------------- -macabfield *MacabRecord::get(const sal_Int32 i) const -{ - /* Note: copy(i) creates a new macabfield identical to that at - * location i, whereas get(i) returns a pointer to the macabfield - * at location i. - */ - if(i < size) - { - return fields[i]; - } - - return NULL; -} - -// ------------------------------------------------------------------------- -void MacabRecord::releaseFields() -{ - /* This method is, at the moment, only used in MacabHeader.cxx, but - * the idea is simple: if you are not destroying this object but want - * to clear it of its macabfields, you should release each field's - * value. - */ - sal_Int32 i; - for(i = 0; i < size; i++) - CFRelease(fields[i]->value); -} - -// ------------------------------------------------------------------------- -sal_Int32 MacabRecord::compareFields(const macabfield *_field1, const macabfield *_field2) -{ - - /* When comparing records, if either field is NULL (and the other is - * not), that field is considered "greater than" the other, so that it - * shows up later in the list when fields are ordered. - */ - if(_field1 == _field2) - return 0; - if(_field1 == NULL) - return 1; - if(_field2 == NULL) - return -1; - - /* If they aren't the same type, for now, return the one with - * the smaller type ID... I don't know of a better way to compare - * two different data types. - */ - if(_field1->type != _field2->type) - return(_field1->type - _field2->type); - - CFComparisonResult result; - - /* Carbon has a unique compare function for each data type: */ - switch(_field1->type) - { - case kABStringProperty: - result = CFStringCompare( - (CFStringRef) _field1->value, - (CFStringRef) _field2->value, - kCFCompareLocalized); // Specifies that the comparison should take into account differences related to locale, such as the thousands separator character. - break; - - case kABDateProperty: - result = CFDateCompare( - (CFDateRef) _field1->value, - (CFDateRef) _field2->value, - NULL); // NULL = unused variable - break; - - case kABIntegerProperty: - case kABRealProperty: - result = CFNumberCompare( - (CFNumberRef) _field1->value, - (CFNumberRef) _field2->value, - NULL); // NULL = unused variable - break; - - default: - result = kCFCompareEqualTo; // can't compare - } - - return (sal_Int32) result; -} - -// ------------------------------------------------------------------------- -/* Create a macabfield out of an OUString and type. Together with the - * method fieldToString() (below), it is possible to switch conveniently - * between an OUString and a macabfield (for use when creating and handling - * SQL statement). - */ -macabfield *MacabRecord::createMacabField(const ::rtl::OUString _newFieldString, const ABPropertyType _abType) -{ - macabfield *newField = NULL; - switch(_abType) - { - case kABStringProperty: - newField = new macabfield; - newField->value = OUStringToCFString(_newFieldString); - newField->type = _abType; - break; - case kABDateProperty: - { - DateTime aDateTime = DBTypeConversion::toDateTime(_newFieldString); - - // bad format... - if(aDateTime.Year == 0 && aDateTime.Month == 0 && aDateTime.Day == 0) - { - } - else - { - double nTime = DBTypeConversion::toDouble(aDateTime, DBTypeConversion::getStandardDate()); - nTime -= kCFAbsoluteTimeIntervalSince1970; - newField = new macabfield; - newField->value = CFDateCreate(NULL, (CFAbsoluteTime) nTime); - newField->type = _abType; - } - } - break; - case kABIntegerProperty: - try - { - sal_Int64 nVal = _newFieldString.toInt64(); - - newField = new macabfield; - newField->value = CFNumberCreate(NULL,kCFNumberLongType, &nVal); - newField->type = _abType; - } - // bad format... - catch(...) - { - } - break; - case kABRealProperty: - try - { - double nVal = _newFieldString.toDouble(); - - newField = new macabfield; - newField->value = CFNumberCreate(NULL,kCFNumberDoubleType, &nVal); - newField->type = _abType; - } - // bad format... - catch(...) - { - } - break; - default: - ; - } - return newField; -} - -// ------------------------------------------------------------------------- -/* Create an OUString out of a macabfield. Together with the method - * createMacabField() (above), it is possible to switch conveniently - * between an OUString and a macabfield (for use when creating and handling - * SQL statement). - */ -::rtl::OUString MacabRecord::fieldToString(const macabfield *_aField) -{ - if(_aField == NULL) - return ::rtl::OUString(); - - ::rtl::OUString fieldString; - - switch(_aField->type) - { - case kABStringProperty: - fieldString = CFStringToOUString((CFStringRef) _aField->value); - break; - case kABDateProperty: - { - DateTime aTime = CFDateToDateTime((CFDateRef) _aField->value); - fieldString = DBTypeConversion::toDateTimeString(aTime); - } - break; - case kABIntegerProperty: - { - CFNumberType numberType = CFNumberGetType( (CFNumberRef) _aField->value ); - sal_Int64 nVal; - // Should we check for the wrong type here, e.g., a float? - sal_Bool m_bSuccess = !CFNumberGetValue((CFNumberRef) _aField->value, numberType, &nVal); - if(m_bSuccess != sal_False) - fieldString = ::rtl::OUString::valueOf(nVal); - } - break; - case kABRealProperty: - { - CFNumberType numberType = CFNumberGetType( (CFNumberRef) _aField->value ); - double nVal; - // Should we check for the wrong type here, e.g., an int? - sal_Bool m_bSuccess = !CFNumberGetValue((CFNumberRef) _aField->value, numberType, &nVal); - if(m_bSuccess != sal_False) - fieldString = ::rtl::OUString::valueOf(nVal); - } - break; - default: - ; - } - return fieldString; - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabRecord.hxx b/connectivity/source/drivers/macab/MacabRecord.hxx deleted file mode 100644 index aa47f8377b..0000000000 --- a/connectivity/source/drivers/macab/MacabRecord.hxx +++ /dev/null @@ -1,80 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_RECORD_HXX_ -#define _CONNECTIVITY_MACAB_RECORD_HXX_ - -#include <cppuhelper/compbase3.hxx> - -#include <premac.h> -#include <Carbon/Carbon.h> -#include <AddressBook/ABAddressBookC.h> -#include <postmac.h> - -namespace connectivity -{ - namespace macab - { - /* a MacabRecord is at root a list of macabfields (which is just - * something to hold both a CFTypeRef (a CoreFoundation object) and - * its Address Book type. - */ - struct macabfield - { - CFTypeRef value; - ABPropertyType type; - }; - - class MacabRecord{ - protected: - sal_Int32 size; - macabfield **fields; - protected: - void releaseFields(); - public: - MacabRecord(); - MacabRecord(const sal_Int32 _size); - virtual ~MacabRecord(); - void insertAtColumn (CFTypeRef _value, ABPropertyType _type, const sal_Int32 _column); - sal_Bool contains(const macabfield *_field) const; - sal_Bool contains(const CFTypeRef _value) const; - sal_Int32 getSize() const; - macabfield *copy(const sal_Int32 i) const; - macabfield *get(const sal_Int32 i) const; - - static sal_Int32 compareFields(const macabfield *_field1, const macabfield *_field2); - static macabfield *createMacabField(const ::rtl::OUString _newFieldString, const ABPropertyType _abtype); - static ::rtl::OUString fieldToString(const macabfield *_aField); - - }; - } -} - -#endif // _CONNECTIVITY_MACAB_RECORD_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabRecords.cxx b/connectivity/source/drivers/macab/MacabRecords.cxx deleted file mode 100644 index a92e2313e9..0000000000 --- a/connectivity/source/drivers/macab/MacabRecords.cxx +++ /dev/null @@ -1,1215 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "MacabRecords.hxx" -#include "MacabRecord.hxx" -#include "MacabHeader.hxx" -#include "macabutilities.hxx" - -#include <premac.h> -#include <Carbon/Carbon.h> -#include <AddressBook/ABAddressBookC.h> -#include <postmac.h> -#include <com/sun/star/util/DateTime.hpp> - -using namespace connectivity::macab; -using namespace com::sun::star::util; - -// ------------------------------------------------------------------------- -MacabRecords::MacabRecords(const ABAddressBookRef _addressBook, MacabHeader *_header, MacabRecord **_records, sal_Int32 _numRecords) -{ - /* Variables passed in... */ - header = _header; - recordsSize = _numRecords; - currentRecord = _numRecords; - records = _records; - addressBook = _addressBook; - - /* Default variables... */ - recordType = kABPersonRecordType; - - /* Variables constructed... */ - bootstrap_CF_types(); - bootstrap_requiredProperties(); -} - -// ------------------------------------------------------------------------- -/* Creates a MacabRecords from another: copies the length, name, and - * address book of the original, but the header or the records themselves. - * The idea is that the only reason to copy a MacabRecords is to create - * a filtered version of it, which can have the same length (to avoid - * resizing) and will work from the same base addressbook, but might have - * entirey different values and even (possibly in the future) a different - * header. - */ -MacabRecords::MacabRecords(const MacabRecords *_copy) -{ - /* Variables passed in... */ - recordsSize = _copy->recordsSize; - addressBook = _copy->addressBook; - m_sName = _copy->m_sName; - - /* Default variables... */ - currentRecord = 0; - header = NULL; - records = new MacabRecord *[recordsSize]; - recordType = kABPersonRecordType; - - /* Variables constructed... */ - bootstrap_CF_types(); - bootstrap_requiredProperties(); -} - -// ------------------------------------------------------------------------- -MacabRecords::MacabRecords(const ABAddressBookRef _addressBook) -{ - /* Variables passed in... */ - addressBook = _addressBook; - - /* Default variables... */ - recordsSize = 0; - currentRecord = 0; - records = NULL; - header = NULL; - recordType = kABPersonRecordType; - - /* Variables constructed... */ - bootstrap_CF_types(); - bootstrap_requiredProperties(); -} - -// ------------------------------------------------------------------------- -void MacabRecords::initialize() -{ - - /* Make sure everything is NULL before initializing. (We usually just - * initialize after we use the constructor that takes only a - * MacabAddressBook, so these variables will most likely already be - * NULL. - */ - if(records != NULL) - { - sal_Int32 i; - - for(i = 0; i < recordsSize; i++) - delete records[i]; - - delete [] records; - } - - if(header != NULL) - delete header; - - /* We can handle both default record Address Book record types in - * this method, though only kABPersonRecordType is ever used. - */ - CFArrayRef allRecords; - if(CFStringCompare(recordType, kABPersonRecordType, 0) == kCFCompareEqualTo) - allRecords = ABCopyArrayOfAllPeople(addressBook); - else - allRecords = ABCopyArrayOfAllGroups(addressBook); - - ABRecordRef record; - sal_Int32 i; - recordsSize = (sal_Int32) CFArrayGetCount(allRecords); - records = new MacabRecord *[recordsSize]; - - /* First, we create the header... */ - header = createHeaderForRecordType(allRecords, recordType); - - /* Then, we create each of the records... */ - for(i = 0; i < recordsSize; i++) - { - record = (ABRecordRef) CFArrayGetValueAtIndex(allRecords, i); - records[i] = createMacabRecord(record, header, recordType); - } - currentRecord = recordsSize; - - CFRelease(allRecords); -} - -// ------------------------------------------------------------------------- -MacabRecords::~MacabRecords() -{ -} - -// ------------------------------------------------------------------------- -void MacabRecords::setHeader(MacabHeader *_header) -{ - if(header != NULL) - delete header; - header = _header; -} - -// ------------------------------------------------------------------------- -MacabHeader *MacabRecords::getHeader() const -{ - return header; -} - -// ------------------------------------------------------------------------- -/* Inserts a MacabRecord at a given location. If there is already a - * MacabRecord at that location, return it. - */ -MacabRecord *MacabRecords::insertRecord(MacabRecord *_newRecord, const sal_Int32 _location) -{ - MacabRecord *oldRecord; - - /* If the location is greater than the current allocated size of this - * MacabRecords, allocate more space. - */ - if(_location >= recordsSize) - { - sal_Int32 i; - MacabRecord **newRecordsArray = new MacabRecord *[_location+1]; - for(i = 0; i < recordsSize; i++) - { - newRecordsArray[i] = records[i]; - } - delete [] records; - records = newRecordsArray; - } - - /* Remember: currentRecord refers to one above the highest existing - * record (i.e., it refers to where to place the next record if a - * location is not given). - */ - if(_location >= currentRecord) - currentRecord = _location+1; - - oldRecord = records[_location]; - records[_location] = _newRecord; - return oldRecord; -} - -// ------------------------------------------------------------------------- -/* Insert a record at the next available place. */ -void MacabRecords::insertRecord(MacabRecord *_newRecord) -{ - insertRecord(_newRecord, currentRecord); -} - -// ------------------------------------------------------------------------- -MacabRecord *MacabRecords::getRecord(const sal_Int32 _location) const -{ - if(_location >= recordsSize) - return NULL; - return records[_location]; -} - -// ------------------------------------------------------------------------- -macabfield *MacabRecords::getField(const sal_Int32 _recordNumber, const sal_Int32 _columnNumber) const -{ - if(_recordNumber >= recordsSize) - return NULL; - - MacabRecord *record = records[_recordNumber]; - - if(_columnNumber < 0 || _columnNumber >= record->getSize()) - return NULL; - - return record->get(_columnNumber); -} - -// ------------------------------------------------------------------------- -macabfield *MacabRecords::getField(const sal_Int32 _recordNumber, const ::rtl::OUString _columnName) const -{ - if(header != NULL) - { - sal_Int32 columnNumber = header->getColumnNumber(_columnName); - if(columnNumber == -1) - return NULL; - - return getField(_recordNumber, columnNumber); - } - else - { - // error: shouldn't access field with null header! - return NULL; - } -} - -// ------------------------------------------------------------------------- -sal_Int32 MacabRecords::getFieldNumber(const ::rtl::OUString _columnName) const -{ - if(header != NULL) - return header->getColumnNumber(_columnName); - else - // error: shouldn't access field with null header! - return -1; -} - -// ------------------------------------------------------------------------- -/* Create the lcl_CFTypes array -- we need this because there is no - * way to get the ABType of an object from the object itself, and the - * function ABTypeOfProperty can't handle multiple levels of data - * (e.g., it can tell us that "address" is of type - * kABDictionaryProperty, but it cannot tell us that all of the keys - * and values in the dictionary have type kABStringProperty. On the - * other hand, we _can_ get the CFType out of any object. - * Unfortunately, all information about CFTypeIDs comes with the - * warning that they change between releases, so we build them - * ourselves here. (The one that we can't build is for multivalues, - * e.g., kABMultiStringProperty. All of these appear to have the - * same type: 1, but there is no function that I've found to give - * us that dynamically in case that number ever changes. - */ -void MacabRecords::bootstrap_CF_types() -{ - lcl_CFTypesLength = 6; - lcl_CFTypes = new lcl_CFType[lcl_CFTypesLength]; - - lcl_CFTypes[0].cf = CFNumberGetTypeID(); - lcl_CFTypes[0].ab = kABIntegerProperty; - - lcl_CFTypes[1].cf = CFStringGetTypeID(); - lcl_CFTypes[1].ab = kABStringProperty; - - lcl_CFTypes[2].cf = CFDateGetTypeID(); - lcl_CFTypes[2].ab = kABDateProperty; - - lcl_CFTypes[3].cf = CFArrayGetTypeID(); - lcl_CFTypes[3].ab = kABArrayProperty; - - lcl_CFTypes[4].cf = CFDictionaryGetTypeID(); - lcl_CFTypes[4].ab = kABDictionaryProperty; - - lcl_CFTypes[5].cf = CFDataGetTypeID(); - lcl_CFTypes[5].ab = kABDataProperty; -} - -// ------------------------------------------------------------------------- -/* This is based on the possible fields required in the mail merge template - * in sw. If the fields possible there change, it would be optimal to - * change these fields as well. - */ -void MacabRecords::bootstrap_requiredProperties() -{ - numRequiredProperties = 7; - requiredProperties = new CFStringRef[numRequiredProperties]; - requiredProperties[0] = kABTitleProperty; - requiredProperties[1] = kABFirstNameProperty; - requiredProperties[2] = kABLastNameProperty; - requiredProperties[3] = kABOrganizationProperty; - requiredProperties[4] = kABAddressProperty; - requiredProperties[5] = kABPhoneProperty; - requiredProperties[6] = kABEmailProperty; -} - -// ------------------------------------------------------------------------- -/* Create the header for a given record type and a given array of records. - * Because the array of records and the record type are given, if you want - * to, you can run this method on the members of a group, or on any other - * filtered list of people and get a header relevant to them (e.g., if - * they only have home addresses, the work address fields won't show up). - */ -MacabHeader *MacabRecords::createHeaderForRecordType(const CFArrayRef _records, const CFStringRef _recordType) const -{ - /* We have two types of properties for a given record type, nonrequired - * and required. Required properties are ones that will show up whether - * or not they are empty. Nonrequired properties will only show up if - * at least one record in the set has that property filled. The reason - * is that some properties, like the kABTitleProperty are required by - * the mail merge wizard (in module sw) but are by default not shown in - * the Mac OS X address book, so they would be weeded out at this stage - * and not shown if they were not required. - * - * Note: with the addition of required properties, I am not sure that - * this method still works for kABGroupRecordType (since the required - * properites are all for kABPersonRecordType). - * - * Note: required properties are constructed in the method - * bootstrap_requiredProperties() (above). - */ - CFArrayRef allProperties = ABCopyArrayOfPropertiesForRecordType(addressBook, _recordType); - CFStringRef *nonRequiredProperties; - sal_Int32 numRecords = (sal_Int32) CFArrayGetCount(_records); - sal_Int32 numProperties = (sal_Int32) CFArrayGetCount(allProperties); - sal_Int32 numNonRequiredProperties = numProperties - numRequiredProperties; - - /* While searching through the properties for required properties, these - * sal_Bools will keep track of what we have found. - */ - sal_Bool bFoundProperty; - sal_Bool bFoundRequiredProperties[numRequiredProperties]; - - - /* We have three MacabHeaders: headerDataForProperty is where we - * store the result of createHeaderForProperty(), which return a - * MacabHeader for a single property. lcl_header is where we store - * the MacabHeader that we are constructing. And, nonRequiredHeader - * is where we construct the MacabHeader for non-required properties, - * so that we can sort them before adding them to lcl_header. - */ - MacabHeader *headerDataForProperty; - MacabHeader *lcl_header = new MacabHeader(); - MacabHeader *nonRequiredHeader = new MacabHeader(); - - /* Other variables... */ - sal_Int32 i, j, k; - ABRecordRef record; - CFStringRef property; - - - /* Allocate and initialize... */ - nonRequiredProperties = new CFStringRef[numNonRequiredProperties]; - k = 0; - for(i = 0; i < numRequiredProperties; i++) - bFoundRequiredProperties[i] = sal_False; - - /* Determine the non-required properties... */ - for(i = 0; i < numProperties; i++) - { - property = (CFStringRef) CFArrayGetValueAtIndex(allProperties, i); - bFoundProperty = sal_False; - for(j = 0; j < numRequiredProperties; j++) - { - if(CFEqual(property, requiredProperties[j])) - { - bFoundProperty = sal_True; - bFoundRequiredProperties[j] = sal_True; - break; - } - } - - if(bFoundProperty == sal_False) - { - /* If we have found too many non-required properties */ - if(k == numNonRequiredProperties) - { - k++; // so that the OSL_ENSURE below fails - break; - } - nonRequiredProperties[k] = property; - k++; - } - } - - // Somehow, we got too many or too few non-requird properties... - // Most likely, one of the required properties no longer exists, which - // we also test later. - OSL_ENSURE(k == numNonRequiredProperties, "MacabRecords::createHeaderForRecordType: Found an unexpected number of non-required properties"); - - /* Fill the header with required properties first... */ - for(i = 0; i < numRequiredProperties; i++) - { - if(bFoundRequiredProperties[i] == sal_True) - { - /* The order of these matters (we want all address properties - * before any phone properties, or else things will look weird), - * so we get all possibilitities for each property, going through - * each record, and then go onto the next property. - * (Note: the reason that we have to go through all records - * in the first place is that properties like address, phone, and - * e-mail are multi-value properties with an unknown number of - * values. A user could specify thirteen different kinds of - * e-mail addresses for one of her or his contacts, and we need to - * get all of them. - */ - for(j = 0; j < numRecords; j++) - { - record = (ABRecordRef) CFArrayGetValueAtIndex(_records, j); - headerDataForProperty = createHeaderForProperty(record,requiredProperties[i],_recordType,sal_True); - if(headerDataForProperty != NULL) - { - (*lcl_header) += headerDataForProperty; - delete headerDataForProperty; - } - } - } - else - { - // Couldn't find a required property... - OSL_FAIL(::rtl::OString("MacabRecords::createHeaderForRecordType: could not find required property: ") + - ::rtl::OUStringToOString(CFStringToOUString(requiredProperties[i]), RTL_TEXTENCODING_ASCII_US)); - } - } - - /* And now, non-required properties... */ - for(i = 0; i < numRecords; i++) - { - record = (ABRecordRef) CFArrayGetValueAtIndex(_records, i); - - for(j = 0; j < numNonRequiredProperties; j++) - { - property = nonRequiredProperties[j]; - headerDataForProperty = createHeaderForProperty(record,property,_recordType,sal_False); - if(headerDataForProperty != NULL) - { - (*nonRequiredHeader) += headerDataForProperty; - delete headerDataForProperty; - } - } - - } - nonRequiredHeader->sortRecord(); - - (*lcl_header) += nonRequiredHeader; - delete nonRequiredHeader; - - CFRelease(allProperties); - delete [] nonRequiredProperties; - - return lcl_header; -} - -// ------------------------------------------------------------------------- -/* Create a header for a single property. Basically, this method gets - * the property's value and type and then calls another method of - * the same name to do the dirty work. - */ -MacabHeader *MacabRecords::createHeaderForProperty(const ABRecordRef _record, const CFStringRef _propertyName, const CFStringRef _recordType, const sal_Bool _isPropertyRequired) const -{ - // local variables - CFStringRef localizedPropertyName; - CFTypeRef propertyValue; - ABPropertyType propertyType; - MacabHeader *result; - - /* Get the property's value */ - propertyValue = ABRecordCopyValue(_record,_propertyName); - if(propertyValue == NULL && _isPropertyRequired == sal_False) - return NULL; - - propertyType = ABTypeOfProperty(addressBook, _recordType, _propertyName); - localizedPropertyName = ABCopyLocalizedPropertyOrLabel(_propertyName); - - result = createHeaderForProperty(propertyType, propertyValue, localizedPropertyName); - - if(propertyValue != NULL) - CFRelease(propertyValue); - - return result; -} - -// ------------------------------------------------------------------------- -/* Create a header for a single property. This method is recursive - * because a single property might contain several sub-properties that - * we also want to treat singly. - */ -MacabHeader *MacabRecords::createHeaderForProperty(const ABPropertyType _propertyType, const CFTypeRef _propertyValue, const CFStringRef _propertyName) const -{ - macabfield **headerNames = NULL; - sal_Int32 length = 0; - - switch(_propertyType) - { - /* Scalars */ - case kABStringProperty: - case kABRealProperty: - case kABIntegerProperty: - case kABDateProperty: - length = 1; - headerNames = new macabfield *[1]; - headerNames[0] = new macabfield; - headerNames[0]->value = _propertyName; - headerNames[0]->type = _propertyType; - break; - - /* Multi-scalars */ - case kABMultiIntegerProperty: - case kABMultiDateProperty: - case kABMultiStringProperty: - case kABMultiRealProperty: - case kABMultiDataProperty: - /* For non-scalars, we can only get more information if the property - * actually exists. - */ - if(_propertyValue != NULL) - { - sal_Int32 i; - - sal_Int32 multiLength = ABMultiValueCount((ABMutableMultiValueRef) _propertyValue); - CFStringRef multiLabel, localizedMultiLabel; - ::rtl::OUString multiLabelString; - ::rtl::OUString multiPropertyString; - ::rtl::OUString headerNameString; - ABPropertyType multiType = (ABPropertyType) (ABMultiValuePropertyType((ABMutableMultiValueRef) _propertyValue) - 0x100); - - length = multiLength; - headerNames = new macabfield *[multiLength]; - multiPropertyString = CFStringToOUString(_propertyName); - - /* Go through each element, and - since each element is a scalar - - * just create a new macabfield for it. - */ - for(i = 0; i < multiLength; i++) - { - multiLabel = ABMultiValueCopyLabelAtIndex((ABMutableMultiValueRef) _propertyValue, i); - localizedMultiLabel = ABCopyLocalizedPropertyOrLabel(multiLabel); - multiLabelString = CFStringToOUString(localizedMultiLabel); - CFRelease(multiLabel); - CFRelease(localizedMultiLabel); - headerNameString = multiPropertyString + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(": ")) + fixLabel(multiLabelString); - headerNames[i] = new macabfield; - headerNames[i]->value = OUStringToCFString(headerNameString); - headerNames[i]->type = multiType; - } - } - break; - - /* Multi-array or dictionary */ - case kABMultiArrayProperty: - case kABMultiDictionaryProperty: - /* For non-scalars, we can only get more information if the property - * actually exists. - */ - if(_propertyValue != NULL) - { - sal_Int32 i,j,k; - - // Total number of multi-array or multi-dictionary elements. - sal_Int32 multiLengthFirstLevel = ABMultiValueCount((ABMutableMultiValueRef) _propertyValue); - - /* Total length, including the length of each element (e.g., if - * this multi-dictionary contains three dictionaries, and each - * dictionary has four elements, this variable will be twelve, - * whereas multiLengthFirstLevel will be three. - */ - sal_Int32 multiLengthSecondLevel = 0; - - CFStringRef multiLabel, localizedMultiLabel; - CFTypeRef multiValue; - ::rtl::OUString multiLabelString; - ::rtl::OUString multiPropertyString; - MacabHeader **multiHeaders = new MacabHeader *[multiLengthFirstLevel]; - ABPropertyType multiType = (ABPropertyType) (ABMultiValuePropertyType((ABMutableMultiValueRef) _propertyValue) - 0x100); - - multiPropertyString = CFStringToOUString(_propertyName); - - /* Go through each element - since each element can really - * contain anything, we run this method again on each element - * and store the resulting MacabHeader (in the multiHeaders - * array). Then, all we'll have to do is combine the MacabHeaders - * into a single one. - */ - for(i = 0; i < multiLengthFirstLevel; i++) - { - /* label */ - multiLabel = ABMultiValueCopyLabelAtIndex((ABMutableMultiValueRef) _propertyValue, i); - multiValue = ABMultiValueCopyValueAtIndex((ABMutableMultiValueRef) _propertyValue, i); - if(multiValue && multiLabel) - { - localizedMultiLabel = ABCopyLocalizedPropertyOrLabel(multiLabel); - multiLabelString = multiPropertyString + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(": ")) + fixLabel(CFStringToOUString(localizedMultiLabel)); - CFRelease(multiLabel); - CFRelease(localizedMultiLabel); - multiLabel = OUStringToCFString(multiLabelString); - multiHeaders[i] = createHeaderForProperty(multiType, multiValue, multiLabel); - if (!multiHeaders[i]) - multiHeaders[i] = new MacabHeader(); - multiLengthSecondLevel += multiHeaders[i]->getSize(); - } - else - { - multiHeaders[i] = new MacabHeader(); - } - if(multiValue) - CFRelease(multiValue); - } - - /* We now have enough information to create our final MacabHeader. - * We go through each field of each header and add it to the - * headerNames array (which is what is used below to construct - * the MacabHeader we return). - */ - length = multiLengthSecondLevel; - headerNames = new macabfield *[multiLengthSecondLevel]; - - for(i = 0, j = 0, k = 0; i < multiLengthSecondLevel; i++,k++) - { - while(multiHeaders[j]->getSize() == k) - { - j++; - k = 0; - } - - headerNames[i] = multiHeaders[j]->copy(k); - } - for(i = 0; i < multiLengthFirstLevel; i++) - delete multiHeaders[i]; - - delete [] multiHeaders; - } - break; - - /* Dictionary */ - case kABDictionaryProperty: - /* For non-scalars, we can only get more information if the property - * actually exists. - */ - if(_propertyValue != NULL) - { - /* Assume all keys are strings */ - sal_Int32 numRecords = (sal_Int32) CFDictionaryGetCount((CFDictionaryRef) _propertyValue); - - /* The only method for getting info out of a CFDictionary, of both - * keys and values, is to all of them all at once, so these - * variables will hold them. - */ - CFStringRef *dictKeys; - CFTypeRef *dictValues; - - sal_Int32 i,j,k; - ::rtl::OUString dictKeyString, propertyNameString; - ABPropertyType dictType; - MacabHeader **dictHeaders = new MacabHeader *[numRecords]; - ::rtl::OUString dictLabelString; - CFStringRef dictLabel, localizedDictKey; - - /* Get the keys and values */ - dictKeys = (CFStringRef *) malloc(sizeof(CFStringRef)*numRecords); - dictValues = (CFTypeRef *) malloc(sizeof(CFTypeRef)*numRecords); - CFDictionaryGetKeysAndValues((CFDictionaryRef) _propertyValue, (const void **) dictKeys, (const void **) dictValues); - - propertyNameString = CFStringToOUString(_propertyName); - - length = 0; - /* Go through each element - assuming that the key is a string but - * that the value could be anything. Since the value could be - * anything, we can't assume that it is scalar (it could even be - * another dictionary), so we attempt to get its type using - * the method getABTypeFromCFType and then run this method - * recursively on that element, storing the MacabHeader that - * results. Then, we just combine all of the MacabHeaders into - * one. - */ - for(i = 0; i < numRecords; i++) - { - dictType = (ABPropertyType) getABTypeFromCFType( CFGetTypeID(dictValues[i]) ); - localizedDictKey = ABCopyLocalizedPropertyOrLabel(dictKeys[i]); - dictKeyString = CFStringToOUString(localizedDictKey); - dictLabelString = propertyNameString + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(": ")) + fixLabel(dictKeyString); - dictLabel = OUStringToCFString(dictLabelString); - dictHeaders[i] = createHeaderForProperty(dictType, dictValues[i], dictLabel); - if (!dictHeaders[i]) - dictHeaders[i] = new MacabHeader(); - length += dictHeaders[i]->getSize(); - CFRelease(dictLabel); - CFRelease(localizedDictKey); - } - - /* Combine all of the macabfields in each MacabHeader into the - * headerNames array, which (at the end of this method) is used - * to create the MacabHeader that is returned. - */ - headerNames = new macabfield *[length]; - for(i = 0, j = 0, k = 0; i < length; i++,k++) - { - while(dictHeaders[j]->getSize() == k) - { - j++; - k = 0; - } - - headerNames[i] = dictHeaders[j]->copy(k); - } - - for(i = 0; i < numRecords; i++) - delete dictHeaders[i]; - - delete [] dictHeaders; - free(dictKeys); - free(dictValues); - } - break; - - /* Array */ - case kABArrayProperty: - /* For non-scalars, we can only get more information if the property - * actually exists. - */ - if(_propertyValue != NULL) - { - sal_Int32 arrLength = (sal_Int32) CFArrayGetCount( (CFArrayRef) _propertyValue); - sal_Int32 i,j,k; - CFTypeRef arrValue; - ABPropertyType arrType; - MacabHeader **arrHeaders = new MacabHeader *[arrLength]; - ::rtl::OUString propertyNameString = CFStringToOUString(_propertyName); - ::rtl::OUString arrLabelString; - CFStringRef arrLabel; - - length = 0; - /* Go through each element - since the elements here do not have - * unique keys like the ones in dictionaries, we create a unique - * key out of the id of the element in the array (the first - * element gets a 0 plopped onto the end of it, the second a 1... - * As with dictionaries, the elements could be anything, including - * another array, so we have to run this method recursively on - * each element, storing the resulting MacabHeader into an array, - * which we then combine into one MacabHeader that is returned. - */ - for(i = 0; i < arrLength; i++) - { - arrValue = (CFTypeRef) CFArrayGetValueAtIndex( (CFArrayRef) _propertyValue, i); - arrType = (ABPropertyType) getABTypeFromCFType( CFGetTypeID(arrValue) ); - arrLabelString = propertyNameString + ::rtl::OUString::valueOf(i); - arrLabel = OUStringToCFString(arrLabelString); - arrHeaders[i] = createHeaderForProperty(arrType, arrValue, arrLabel); - if (!arrHeaders[i]) - arrHeaders[i] = new MacabHeader(); - length += arrHeaders[i]->getSize(); - CFRelease(arrLabel); - } - - headerNames = new macabfield *[length]; - for(i = 0, j = 0, k = 0; i < length; i++,k++) - { - while(arrHeaders[j]->getSize() == k) - { - j++; - k = 0; - } - - headerNames[i] = arrHeaders[j]->copy(k); - } - for(i = 0; i < arrLength; i++) - delete arrHeaders[i]; - - delete [] arrHeaders; - } - break; - - default: - break; - - } - - /* If we succeeded at adding elements to the headerNames array, then - * length will no longer be 0. If it is, create a new MacabHeader - * out of the headerNames (after weeding out duplicate headers), and - * then return the result. If the length is still 0, return NULL: we - * failed to create a MacabHeader out of this property. - */ - if(length != 0) - { - manageDuplicateHeaders(headerNames, length); - MacabHeader *headerResult = new MacabHeader(length, headerNames); - delete [] headerNames; - return headerResult; - } - else - return NULL; -} - -// ------------------------------------------------------------------------- -void MacabRecords::manageDuplicateHeaders(macabfield **_headerNames, const sal_Int32 _length) const -{ - /* If we have two cases of, say, phone: home, this makes it: - * phone: home (1) - * phone: home (2) - */ - sal_Int32 i, j; - sal_Int32 count; - for(i = _length-1; i >= 0; i--) - { - count = 1; - for( j = i-1; j >= 0; j--) - { - if(CFEqual(_headerNames[i]->value, _headerNames[j]->value)) - { - count++; - } - } - - // duplicate! - if(count != 1) - { - // There is probably a better way to do this... - ::rtl::OUString newName = CFStringToOUString((CFStringRef) _headerNames[i]->value); - CFRelease(_headerNames[i]->value); - newName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" (")) + ::rtl::OUString::valueOf(count) + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")")); - _headerNames[i]->value = OUStringToCFString(newName); - } - } -} - -// ------------------------------------------------------------------------- -/* Create a MacabRecord out of an ABRecord, using a given MacabHeader and - * the record's type. We go through each property for this record type - * then process it much like we processed the header (above), with two - * exceptions: if we come upon something not in the header, we ignore it - * (it's something we don't want to add), and once we find a corresponding - * location in the header, we store the property and the property type in - * a macabfield. (For the header, we stored the property type and the name - * of the property as a CFString.) - */ -MacabRecord *MacabRecords::createMacabRecord(const ABRecordRef _abrecord, const MacabHeader *_header, const CFStringRef _recordType) const -{ - /* The new record that we will create... */ - MacabRecord *macabRecord = new MacabRecord(_header->getSize()); - - CFArrayRef recordProperties = ABCopyArrayOfPropertiesForRecordType(addressBook, _recordType); - sal_Int32 numProperties = (sal_Int32) CFArrayGetCount(recordProperties); - - sal_Int32 i; - - CFTypeRef propertyValue; - ABPropertyType propertyType; - - CFStringRef propertyName, localizedPropertyName; - ::rtl::OUString propertyNameString; - for(i = 0; i < numProperties; i++) - { - propertyName = (CFStringRef) CFArrayGetValueAtIndex(recordProperties, i); - localizedPropertyName = ABCopyLocalizedPropertyOrLabel(propertyName); - propertyNameString = CFStringToOUString(localizedPropertyName); - CFRelease(localizedPropertyName); - - /* Get the property's value */ - propertyValue = ABRecordCopyValue(_abrecord,propertyName); - if(propertyValue != NULL) - { - propertyType = ABTypeOfProperty(addressBook, _recordType, propertyName); - if(propertyType != kABErrorInProperty) - insertPropertyIntoMacabRecord(propertyType, macabRecord, _header, propertyNameString, propertyValue); - - CFRelease(propertyValue); - } - } - CFRelease(recordProperties); - return macabRecord; -} - -// ------------------------------------------------------------------------- -/* Inserts a given property into a MacabRecord. This method calls another - * method by the same name after getting the property type (it only - * receives the property value). It is called when we aren't given the - * property's type already. - */ -void MacabRecords::insertPropertyIntoMacabRecord(MacabRecord *_abrecord, const MacabHeader *_header, const ::rtl::OUString _propertyName, const CFTypeRef _propertyValue) const -{ - CFTypeID cf_type = CFGetTypeID(_propertyValue); - ABPropertyType ab_type = getABTypeFromCFType( cf_type ); - - if(ab_type != kABErrorInProperty) - insertPropertyIntoMacabRecord(ab_type, _abrecord, _header, _propertyName, _propertyValue); -} - -// ------------------------------------------------------------------------- -/* Inserts a given property into a MacabRecord. This method is recursive - * because properties can contain many sub-properties. - */ -void MacabRecords::insertPropertyIntoMacabRecord(const ABPropertyType _propertyType, MacabRecord *_abrecord, const MacabHeader *_header, const ::rtl::OUString _propertyName, const CFTypeRef _propertyValue) const -{ - /* If there is no value, return */ - if(_propertyValue == NULL) - return; - - /* The main switch statement */ - switch(_propertyType) - { - /* Scalars */ - case kABStringProperty: - case kABRealProperty: - case kABIntegerProperty: - case kABDateProperty: - { - /* Only scalars actually insert a property into the MacabRecord. - * In all other cases, this method is called recursively until a - * scalar type, an error, or an unknown type are found. - * Because of that, the following checks only occur for this type. - * We store whether we have successfully placed this property - * into the MacabRecord (or whether an unrecoverable error occurred). - * Then, we try over and over again to place the property into the - * record. There are three possible results: - * 1) Success! - * 2) There is already a property stored at the column of this name, - * in which case we have a duplicate header (see the method - * manageDuplicateHeaders()). If that is the case, we add an ID - * to the end of the column name in the same format as we do in - * manageDuplicateHeaders() and try again. - * 3) No column of this name exists in the header. In this case, - * there is nothing we can do: we have failed to place this - * property into the record. - */ - sal_Bool bPlaced = sal_False; - ::rtl::OUString columnName = ::rtl::OUString(_propertyName); - sal_Int32 i = 1; - - // A big safeguard to prevent two fields from having the same name. - while(bPlaced != sal_True) - { - sal_Int32 columnNumber = _header->getColumnNumber(columnName); - bPlaced = sal_True; - if(columnNumber != -1) - { - // collision! A property already exists here! - if(_abrecord->get(columnNumber) != NULL) - { - bPlaced = sal_False; - i++; - columnName = ::rtl::OUString(_propertyName) + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" (")) + ::rtl::OUString::valueOf(i) + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")")); - } - - // success! - else - { - _abrecord->insertAtColumn(_propertyValue, _propertyType, columnNumber); - } - } - } - } - break; - - /* Array */ - case kABArrayProperty: - { - /* An array is basically just a list of anything, so all we do - * is go through the array, and rerun this method recursively - * on each element. - */ - sal_Int32 arrLength = (sal_Int32) CFArrayGetCount( (CFArrayRef) _propertyValue); - sal_Int32 i; - const void *arrValue; - ::rtl::OUString newPropertyName; - - /* Going through each element... */ - for(i = 0; i < arrLength; i++) - { - arrValue = CFArrayGetValueAtIndex( (CFArrayRef) _propertyValue, i); - newPropertyName = _propertyName + ::rtl::OUString::valueOf(i); - insertPropertyIntoMacabRecord(_abrecord, _header, newPropertyName, arrValue); - CFRelease(arrValue); - } - - } - break; - - /* Dictionary */ - case kABDictionaryProperty: - { - /* A dictionary is basically a hashmap. Technically, it can - * hold any object as a key and any object as a value. - * For our case, we assume that the key is a string (so that - * we can use the key to get the column name and match it against - * the header), but we don't assume anything about the value, so - * we run this method recursively (or, rather, we run the version - * of this method for when we don't know the object's type) until - * we hit a scalar value. - */ - - sal_Int32 numRecords = (sal_Int32) CFDictionaryGetCount((CFDictionaryRef) _propertyValue); - ::rtl::OUString dictKeyString; - sal_Int32 i; - ::rtl::OUString newPropertyName; - - /* Unfortunately, the only way to get both keys and values out - * of a dictionary in Carbon is to get them all at once, so we - * do that. - */ - CFStringRef *dictKeys; - CFStringRef localizedDictKey; - CFTypeRef *dictValues; - dictKeys = (CFStringRef *) malloc(sizeof(CFStringRef)*numRecords); - dictValues = (CFTypeRef *) malloc(sizeof(CFTypeRef)*numRecords); - CFDictionaryGetKeysAndValues((CFDictionaryRef) _propertyValue, (const void **) dictKeys, (const void **) dictValues); - - /* Going through each element... */ - for(i = 0; i < numRecords; i++) - { - localizedDictKey = ABCopyLocalizedPropertyOrLabel(dictKeys[i]); - dictKeyString = CFStringToOUString(localizedDictKey); - CFRelease(localizedDictKey); - newPropertyName = _propertyName + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(": ")) + fixLabel(dictKeyString); - insertPropertyIntoMacabRecord(_abrecord, _header, newPropertyName, dictValues[i]); - } - - free(dictKeys); - free(dictValues); - } - break; - - /* Multivalue */ - case kABMultiIntegerProperty: - case kABMultiDateProperty: - case kABMultiStringProperty: - case kABMultiRealProperty: - case kABMultiDataProperty: - case kABMultiDictionaryProperty: - case kABMultiArrayProperty: - { - /* All scalar multivalues are handled in the same way. Each element - * is a label and a value. All labels are strings - * (kABStringProperty), and all values have the same type - * (which is the type of the multivalue minus 255, or as - * Carbon's list of property types has it, minus 0x100. - * We just get the correct type, then go through each element - * and get the label and value and print them in a list. - */ - - sal_Int32 i; - sal_Int32 multiLength = ABMultiValueCount((ABMutableMultiValueRef) _propertyValue); - CFStringRef multiLabel, localizedMultiLabel; - CFTypeRef multiValue; - ::rtl::OUString multiLabelString, newPropertyName; - ABPropertyType multiType = (ABPropertyType) (ABMultiValuePropertyType((ABMutableMultiValueRef) _propertyValue) - 0x100); - - /* Go through each element... */ - for(i = 0; i < multiLength; i++) - { - /* Label and value */ - multiLabel = ABMultiValueCopyLabelAtIndex((ABMutableMultiValueRef) _propertyValue, i); - multiValue = ABMultiValueCopyValueAtIndex((ABMutableMultiValueRef) _propertyValue, i); - - localizedMultiLabel = ABCopyLocalizedPropertyOrLabel(multiLabel); - multiLabelString = CFStringToOUString(localizedMultiLabel); - newPropertyName = _propertyName + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(": ")) + fixLabel(multiLabelString); - insertPropertyIntoMacabRecord(multiType, _abrecord, _header, newPropertyName, multiValue); - - /* free our variables */ - CFRelease(multiLabel); - CFRelease(localizedMultiLabel); - CFRelease(multiValue); - } - } - break; - - /* Unhandled types */ - case kABErrorInProperty: - case kABDataProperty: - default: - /* An error, as far as I have seen, only shows up as a type - * returned by a function for dictionaries when the dictionary - * holds many types of values. Since we do not use that function, - * it shouldn't come up. I have yet to see the kABDataProperty, - * and I am not sure how to represent it as a string anyway, - * since it appears to just be a bunch of bytes. Assumably, if - * these bytes made up a string, the type would be - * kABStringProperty. I think that this is used when we are not - * sure what the type is (e.g., it could be a string or a number). - * That being the case, I still don't know how to represent it. - * And, default should never come up, since we've exhausted all - * of the possible types for ABPropertyType, but... just in case. - */ - break; - } - -} - -// ------------------------------------------------------------------------- -ABPropertyType MacabRecords::getABTypeFromCFType(const CFTypeID cf_type ) const -{ - sal_Int32 i; - for(i = 0; i < lcl_CFTypesLength; i++) - { - /* A match! */ - if(lcl_CFTypes[i].cf == (sal_Int32) cf_type) - { - return (ABPropertyType) lcl_CFTypes[i].ab; - } - } - return kABErrorInProperty; -} - -// ------------------------------------------------------------------------- -sal_Int32 MacabRecords::size() const -{ - return currentRecord; -} - -// ------------------------------------------------------------------------- -MacabRecords *MacabRecords::begin() -{ - return this; -} - -// ------------------------------------------------------------------------- -MacabRecords::iterator::iterator () -{ -} - -// ------------------------------------------------------------------------- -MacabRecords::iterator::~iterator () -{ -} - -// ------------------------------------------------------------------------- -MacabRecords::iterator& MacabRecords::iterator::operator= (MacabRecords *_records) -{ - id = 0; - records = _records; - return *this; -} - -// ------------------------------------------------------------------------- -void MacabRecords::iterator::operator++ () -{ - id++; -} - -// ------------------------------------------------------------------------- -sal_Bool MacabRecords::iterator::operator!= (const sal_Int32 i) const -{ - return(id != i); -} - -// ------------------------------------------------------------------------- -sal_Bool MacabRecords::iterator::operator== (const sal_Int32 i) const -{ - return(id == i); -} - -// ------------------------------------------------------------------------- -MacabRecord *MacabRecords::iterator::operator* () const -{ - return records->getRecord(id); -} - -// ------------------------------------------------------------------------- -sal_Int32 MacabRecords::end() const -{ - return currentRecord; -} - -// ------------------------------------------------------------------------- -void MacabRecords::swap(const sal_Int32 _id1, const sal_Int32 _id2) -{ - MacabRecord *swapRecord = records[_id1]; - - records[_id1] = records[_id2]; - records[_id2] = swapRecord; -} - -// ------------------------------------------------------------------------- -void MacabRecords::setName(const ::rtl::OUString _sName) -{ - m_sName = _sName; -} - -// ------------------------------------------------------------------------- -::rtl::OUString MacabRecords::getName() const -{ - return m_sName; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabRecords.hxx b/connectivity/source/drivers/macab/MacabRecords.hxx deleted file mode 100644 index 0ac946b5c0..0000000000 --- a/connectivity/source/drivers/macab/MacabRecords.hxx +++ /dev/null @@ -1,139 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_RECORDS_HXX_ -#define _CONNECTIVITY_MACAB_RECORDS_HXX_ - -#include "MacabRecord.hxx" -#include "MacabHeader.hxx" - -#include <premac.h> -#include <Carbon/Carbon.h> -#include <AddressBook/ABAddressBookC.h> -#include <postmac.h> -#include <com/sun/star/util/DateTime.hpp> - -namespace connectivity -{ - namespace macab - { - /* This struct is for converting CF types to AB types (Core Foundation - * types to Address Book types). - */ - struct lcl_CFType { - sal_Int32 cf; - sal_Int32 ab; - }; - - class MacabRecords{ - protected: - /* MacabRecords is, at its core, a table of macabfields, in the - * form of a header and a list of objects of type MacabRecord. - * It also has a unique name that refers to the name of the table. - */ - sal_Int32 recordsSize; - sal_Int32 currentRecord; - CFStringRef recordType; - MacabHeader *header; - MacabRecord **records; - ABAddressBookRef addressBook; - ::rtl::OUString m_sName; - - /* For converting CF types to AB types */ - sal_Int32 lcl_CFTypesLength; - lcl_CFType *lcl_CFTypes; - - /* For required properties */ - CFStringRef *requiredProperties; - sal_Int32 numRequiredProperties; - - private: - /* All of the private methods are for creating a MacabHeader or a - * MacabRecord. They are used by the initialize method that goes - * about filling a MacabRecords using all of the records in the - * Mac OS X Address Book. - */ - void bootstrap_CF_types(); - void bootstrap_requiredProperties(); - MacabHeader *createHeaderForProperty(const ABRecordRef _record, const CFStringRef _propertyName, const CFStringRef _recordType, const sal_Bool _isPropertyRequired) const; - MacabHeader *createHeaderForProperty(const ABPropertyType _propertyType, const CFTypeRef _propertyValue, const CFStringRef _propertyName) const; - void manageDuplicateHeaders(macabfield **_headerNames, const sal_Int32 _length) const; - ABPropertyType getABTypeFromCFType(const CFTypeID cf_type ) const; - void insertPropertyIntoMacabRecord(MacabRecord *_abrecord, const MacabHeader *_header, const ::rtl::OUString _propertyName, const CFTypeRef _propertyValue) const; - void insertPropertyIntoMacabRecord(const ABPropertyType _propertyType, MacabRecord *_abrecord, const MacabHeader *_header, const ::rtl::OUString _propertyName, const CFTypeRef _propertyValue) const; - public: - MacabRecords(const ABAddressBookRef _addressBook, MacabHeader *_header, MacabRecord **_records, sal_Int32 _numRecords); - MacabRecords(const MacabRecords *_copy); - MacabRecords(const ABAddressBookRef _addressBook); - ~MacabRecords(); - - void initialize(); - - void setHeader(MacabHeader *_header); - MacabHeader *getHeader() const; - - void setName(const ::rtl::OUString _sName); - ::rtl::OUString getName() const; - - MacabRecord *insertRecord(MacabRecord *_newRecord, const sal_Int32 _location); - void insertRecord(MacabRecord *_newRecord); - MacabRecord *getRecord(const sal_Int32 _location) const; - void swap(const sal_Int32 _id1, const sal_Int32 _id2); - - macabfield *getField(const sal_Int32 _recordNumber, const sal_Int32 _columnNumber) const; - macabfield *getField(const sal_Int32 _recordNumber, const ::rtl::OUString _columnName) const; - sal_Int32 getFieldNumber(const ::rtl::OUString _columnName) const; - - sal_Int32 size() const; - - MacabHeader *createHeaderForRecordType(const CFArrayRef _records, const CFStringRef _recordType) const; - MacabRecord *createMacabRecord(const ABRecordRef _abrecord, const MacabHeader *_header, const CFStringRef _recordType) const; - - MacabRecords *begin(); - sal_Int32 end() const; - class iterator{ - protected: - MacabRecords *records; - public: - sal_Int32 id; - iterator& operator= (MacabRecords *_records); - iterator(); - ~iterator(); - void operator++ (); - sal_Bool operator!= (const sal_Int32 i) const; - sal_Bool operator== (const sal_Int32 i) const; - MacabRecord *operator* () const; - }; - - }; - } -} - -#endif // _CONNECTIVITY_MACAB_RECORDS_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabResultSet.cxx b/connectivity/source/drivers/macab/MacabResultSet.cxx deleted file mode 100644 index 851052aa59..0000000000 --- a/connectivity/source/drivers/macab/MacabResultSet.cxx +++ /dev/null @@ -1,1076 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "MacabResultSet.hxx" -#include "MacabAddressBook.hxx" -#include "MacabRecords.hxx" -#include "macabutilities.hxx" -#include "MacabResultSetMetaData.hxx" -#include "MacabConnection.hxx" -#include "macabcondition.hxx" -#include "macaborder.hxx" -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/sdbcx/CompareBookmark.hpp> -#include "TConnection.hxx" -#include <connectivity/dbexception.hxx> -#include "resource/sharedresources.hxx" -#include "resource/macab_res.hrc" - -using namespace connectivity::macab; -using namespace cppu; -using namespace com::sun::star::uno; -using namespace com::sun::star::lang; -using namespace com::sun::star::beans; -using namespace com::sun::star::sdbc; -using namespace com::sun::star::sdbcx; -using namespace com::sun::star::io; -using namespace com::sun::star::util; - -IMPLEMENT_SERVICE_INFO(MacabResultSet, "com.sun.star.sdbc.drivers.MacabResultSet", "com.sun.star.sdbc.ResultSet"); -// ------------------------------------------------------------------------- -MacabResultSet::MacabResultSet(MacabCommonStatement* pStmt) - : MacabResultSet_BASE(m_aMutex), - OPropertySetHelper(MacabResultSet_BASE::rBHelper), - m_xStatement(pStmt), - m_xMetaData(NULL), - m_aMacabRecords(), - m_nRowPos(-1), - m_bWasNull(sal_True) -{ - m_sTableName = MacabAddressBook::getDefaultTableName(); -} -// ------------------------------------------------------------------------- -MacabResultSet::~MacabResultSet() -{ -} -// ------------------------------------------------------------------------- -void MacabResultSet::allMacabRecords() -{ - MacabConnection* pConnection = static_cast< MacabConnection *>(m_xStatement->getConnection().get()); - - m_aMacabRecords = pConnection->getAddressBook()->getMacabRecords(m_sTableName); -} -// ------------------------------------------------------------------------- -void MacabResultSet::someMacabRecords(const MacabCondition *pCondition) -{ - MacabConnection* pConnection = static_cast< MacabConnection *>(m_xStatement->getConnection().get()); - MacabRecords* allRecords; - - allRecords = pConnection->getAddressBook()->getMacabRecords(m_sTableName); - - // Bad table!! Throw exception? - if(allRecords == NULL) - return; - - if(m_aMacabRecords != NULL && m_aMacabRecords != allRecords) - delete m_aMacabRecords; - - // The copy constructor copies everything but records (including the - // maximum alloted size, which means that we'll never have to resize) - m_aMacabRecords = new MacabRecords(allRecords); - - MacabRecords::iterator iterator; - - for (iterator = allRecords->begin(); - iterator != allRecords->end(); - ++iterator) - { - if (pCondition->eval(*iterator)) - m_aMacabRecords->insertRecord(*iterator); - } -} -// ------------------------------------------------------------------------- -void MacabResultSet::sortMacabRecords(const MacabOrder *pOrder) -{ - // I do this with ints rather than an iterator because the ids will - // be changing when we change the order and ints are easier to deal - // with (for me). - sal_Int32 i, j, size, smallest; - size = m_aMacabRecords->size(); - - for(i = 0; i < size; i++) - { - smallest = i; - for( j = i + 1; j < size; j++) - { - // if smallest > j - if(pOrder->compare(m_aMacabRecords->getRecord(smallest), - m_aMacabRecords->getRecord(j) ) > 0) - { - smallest = j; - } - - } - - if(smallest != i) - { - m_aMacabRecords->swap(i,smallest); - } - } - -} -// ------------------------------------------------------------------------- -void MacabResultSet::setTableName(::rtl::OUString _sTableName) -{ - m_sTableName = _sTableName; -} -// ------------------------------------------------------------------------- -void MacabResultSet::disposing() -{ - OPropertySetHelper::disposing(); - - ::osl::MutexGuard aGuard(m_aMutex); - -m_xStatement.clear(); -m_xMetaData.clear(); -} -// ------------------------------------------------------------------------- -Any SAL_CALL MacabResultSet::queryInterface(const Type & rType) throw(RuntimeException) -{ - Any aRet = OPropertySetHelper::queryInterface(rType); - if (!aRet.hasValue()) - aRet = MacabResultSet_BASE::queryInterface(rType); - return aRet; -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::acquire() throw() -{ - MacabResultSet_BASE::acquire(); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::release() throw() -{ - MacabResultSet_BASE::release(); -} -// ------------------------------------------------------------------------- -Sequence< Type > SAL_CALL MacabResultSet::getTypes() throw(RuntimeException) -{ - 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(), MacabResultSet_BASE::getTypes()); -} -// ------------------------------------------------------------------------- -::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL MacabResultSet::getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException) -{ - return ::cppu::OPropertySetHelper::createPropertySetInfo(getInfoHelper()); -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabResultSet::findColumn(const ::rtl::OUString& columnName) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - // find the first column with the name columnName - Reference< XResultSetMetaData > xMeta = getMetaData(); - sal_Int32 nLen = xMeta->getColumnCount(); - - for (sal_Int32 i = 1; i <= nLen; ++i) - if (xMeta->isCaseSensitive(i) ? - columnName == xMeta->getColumnName(i) : - columnName.equalsIgnoreAsciiCase(xMeta->getColumnName(i))) - return i; - - ::connectivity::SharedResources aResources; - const ::rtl::OUString sError( aResources.getResourceStringWithSubstitution( - STR_NO_ELEMENT_NAME, - "$name$", columnName - ) ); - ::dbtools::throwGenericSQLException(sError , *this); - // Unreachable: - OSL_ASSERT(false); - return 0; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabResultSet::getString(sal_Int32 columnIndex) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - ::rtl::OUString aRet; - sal_Int32 nRecords = m_aMacabRecords->size(); - m_bWasNull = true; - - if (m_nRowPos != -1 && m_nRowPos != nRecords && m_xMetaData.is()) - { - sal_Int32 nFieldNumber = m_xMetaData->fieldAtColumn(columnIndex); - macabfield *aField = m_aMacabRecords->getField(m_nRowPos,nFieldNumber); - if(aField != NULL) - { - if(aField->type == kABStringProperty) - { - aRet = CFStringToOUString( (CFStringRef) aField->value); - m_bWasNull = false; - } - } - } - -// Trigger an exception if m_bWasNull is true? - return aRet; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::getBoolean(sal_Int32) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - -::dbtools::throwFunctionNotSupportedException("getBoolean", NULL); - - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Int8 SAL_CALL MacabResultSet::getByte(sal_Int32) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - -::dbtools::throwFunctionNotSupportedException("getByte", NULL); - - sal_Int8 nRet = 0; - return nRet; -} -// ------------------------------------------------------------------------- -sal_Int16 SAL_CALL MacabResultSet::getShort(sal_Int32) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - -::dbtools::throwFunctionNotSupportedException("getShort", NULL); - - sal_Int16 nRet = 0; - return nRet; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabResultSet::getInt(sal_Int32 columnIndex) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - sal_Int32 nRet = 0; - sal_Int32 nRecords = m_aMacabRecords->size(); - m_bWasNull = true; - - if (m_nRowPos != -1 && m_nRowPos != nRecords && m_xMetaData.is()) - { - sal_Int32 nFieldNumber = m_xMetaData->fieldAtColumn(columnIndex); - macabfield *aField = m_aMacabRecords->getField(m_nRowPos,nFieldNumber); - if(aField != NULL) - { - if(aField->type == kABIntegerProperty) - { - CFNumberType numberType = CFNumberGetType( (CFNumberRef) aField->value ); - // m_bWasNull now becomes whether getting the value was successful - // Should we check for the wrong type here, e.g., a float or a 64 bit int? - m_bWasNull = !CFNumberGetValue((CFNumberRef) aField->value, numberType, &nRet); - } - } - } - -// Trigger an exception if m_bWasNull is true? - return nRet; -} -// ------------------------------------------------------------------------- -sal_Int64 SAL_CALL MacabResultSet::getLong(sal_Int32 columnIndex) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - sal_Int64 nRet = 0; - sal_Int32 nRecords = m_aMacabRecords->size(); - m_bWasNull = true; - - if (m_nRowPos != -1 && m_nRowPos != nRecords && m_xMetaData.is()) - { - sal_Int32 nFieldNumber = m_xMetaData->fieldAtColumn(columnIndex); - macabfield *aField = m_aMacabRecords->getField(m_nRowPos,nFieldNumber); - if(aField != NULL) - { - if(aField->type == kABIntegerProperty) - { - CFNumberType numberType = CFNumberGetType( (CFNumberRef) aField->value ); - // m_bWasNull now becomes whether getting the value was successful - // Should we check for the wrong type here, e.g., a float or a 32 bit int? - m_bWasNull = !CFNumberGetValue((CFNumberRef) aField->value, numberType, &nRet); - } - } - } - -// Trigger an exception if m_bWasNull is true? - return nRet; -} -// ------------------------------------------------------------------------- -float SAL_CALL MacabResultSet::getFloat(sal_Int32 columnIndex) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - float nVal = 0; - sal_Int32 nRecords = m_aMacabRecords->size(); - m_bWasNull = true; - - if (m_nRowPos != -1 && m_nRowPos != nRecords && m_xMetaData.is()) - { - sal_Int32 nFieldNumber = m_xMetaData->fieldAtColumn(columnIndex); - macabfield *aField = m_aMacabRecords->getField(m_nRowPos,nFieldNumber); - if(aField != NULL) - { - if(aField->type == kABRealProperty) - { - CFNumberType numberType = CFNumberGetType( (CFNumberRef) aField->value ); - // m_bWasNull now becomes whether getting the value was successful - // Should we check for the wrong type here, e.g., an int or a double? - m_bWasNull = !CFNumberGetValue((CFNumberRef) aField->value, numberType, &nVal); - } - } - } - -// Trigger an exception if m_bWasNull is true? - return nVal; -} -// ------------------------------------------------------------------------- -double SAL_CALL MacabResultSet::getDouble(sal_Int32 columnIndex) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - double nVal = 0; - sal_Int32 nRecords = m_aMacabRecords->size(); - m_bWasNull = true; - - if (m_nRowPos != -1 && m_nRowPos != nRecords && m_xMetaData.is()) - { - sal_Int32 nFieldNumber = m_xMetaData->fieldAtColumn(columnIndex); - macabfield *aField = m_aMacabRecords->getField(m_nRowPos,nFieldNumber); - if(aField != NULL) - { - if(aField->type == kABRealProperty) - { - CFNumberType numberType = CFNumberGetType( (CFNumberRef) aField->value ); - // m_bWasNull now becomes whether getting the value was successful - // Should we check for the wrong type here, e.g., an int or a float? - m_bWasNull = !CFNumberGetValue((CFNumberRef) aField->value, numberType, &nVal); - } - } - } - -// Trigger an exception if m_bWasNull is true? - return nVal; -} -// ------------------------------------------------------------------------- -Sequence< sal_Int8 > SAL_CALL MacabResultSet::getBytes(sal_Int32) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - -::dbtools::throwFunctionNotSupportedException("getBytes", NULL); - - return Sequence< sal_Int8 >(); -} -// ------------------------------------------------------------------------- -Date SAL_CALL MacabResultSet::getDate(sal_Int32) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - -::dbtools::throwFunctionNotSupportedException("getDate", NULL); - - Date aRet; - return aRet; -} -// ------------------------------------------------------------------------- -Time SAL_CALL MacabResultSet::getTime(sal_Int32) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - -::dbtools::throwFunctionNotSupportedException("getTime", NULL); - - Time nRet; - return nRet; -} -// ------------------------------------------------------------------------- -DateTime SAL_CALL MacabResultSet::getTimestamp(sal_Int32 columnIndex) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - DateTime nRet; - sal_Int32 nRecords = m_aMacabRecords->size(); - m_bWasNull = true; - - if (m_nRowPos != -1 && m_nRowPos != nRecords && m_xMetaData.is()) - { - sal_Int32 nFieldNumber = m_xMetaData->fieldAtColumn(columnIndex); - macabfield *aField = m_aMacabRecords->getField(m_nRowPos,nFieldNumber); - if(aField != NULL) - { - if(aField->type == kABDateProperty) - { - nRet = CFDateToDateTime((CFDateRef) aField->value); - m_bWasNull = false; - } - } - } - -// Trigger an exception if m_bWasNull is true? - return nRet; -} -// ------------------------------------------------------------------------- -Reference< XInputStream > SAL_CALL MacabResultSet::getBinaryStream(sal_Int32) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - -::dbtools::throwFunctionNotSupportedException("getBinaryStream", NULL); - - return NULL; -} -// ------------------------------------------------------------------------- -Reference< XInputStream > SAL_CALL MacabResultSet::getCharacterStream(sal_Int32) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - -::dbtools::throwFunctionNotSupportedException("getCharacterStream", NULL); - - return NULL; -} -// ------------------------------------------------------------------------- -Any SAL_CALL MacabResultSet::getObject(sal_Int32, const Reference< ::com::sun::star::container::XNameAccess >&) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - -::dbtools::throwFunctionNotSupportedException("getObject", NULL); - - return Any(); -} -// ------------------------------------------------------------------------- -Reference< XRef > SAL_CALL MacabResultSet::getRef(sal_Int32) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - -::dbtools::throwFunctionNotSupportedException("getRef", NULL); - - return NULL; -} -// ------------------------------------------------------------------------- -Reference< XBlob > SAL_CALL MacabResultSet::getBlob(sal_Int32) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - -::dbtools::throwFunctionNotSupportedException("getBlob", NULL); - - return NULL; -} -// ------------------------------------------------------------------------- -Reference< XClob > SAL_CALL MacabResultSet::getClob(sal_Int32) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - -::dbtools::throwFunctionNotSupportedException("getClob", NULL); - - return NULL; -} -// ------------------------------------------------------------------------- -Reference< XArray > SAL_CALL MacabResultSet::getArray(sal_Int32) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - -::dbtools::throwFunctionNotSupportedException("getArray", NULL); - - return NULL; -} -// ------------------------------------------------------------------------- -Reference< XResultSetMetaData > SAL_CALL MacabResultSet::getMetaData() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - if (!m_xMetaData.is()) - m_xMetaData = new MacabResultSetMetaData(m_xStatement->getOwnConnection(), m_sTableName); - - Reference< XResultSetMetaData > xMetaData = m_xMetaData.get(); - return xMetaData; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::isBeforeFirst() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - if (m_nRowPos == -1) - return sal_True; - - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::isAfterLast() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - sal_Int32 nRecords = m_aMacabRecords->size(); - if (m_nRowPos == nRecords) - return sal_True; - - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::isFirst() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - if (m_nRowPos == 0) - return sal_True; - - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::isLast() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - sal_Int32 nRecords = m_aMacabRecords->size(); - if (m_nRowPos == nRecords - 1) - return sal_True; - - return sal_False; -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::beforeFirst() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - // move before the first row - m_nRowPos = -1; -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::afterLast() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - // move after the last row - sal_Int32 nRecords = m_aMacabRecords->size(); - m_nRowPos = nRecords; -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::close() throw(SQLException, RuntimeException) -{ - { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - } - dispose(); -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::first() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - sal_Int32 nRecords = m_aMacabRecords->size(); - if (nRecords == 0) - return sal_False; - - m_nRowPos = 0; - return sal_True; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::last() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - sal_Int32 nRecords = m_aMacabRecords->size(); - if (nRecords == 0) - return sal_False; - - m_nRowPos = nRecords - 1; - return sal_True; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabResultSet::getRow() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - return m_nRowPos; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::absolute(sal_Int32 row) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - sal_Int32 nRecords = m_aMacabRecords->size(); - if (row <= -1 || - row >= nRecords) - return sal_False; - - m_nRowPos = row; - return sal_True; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::relative(sal_Int32 row) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - return absolute(m_nRowPos + row); -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::next() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - return absolute(m_nRowPos + 1); -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::previous() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - return absolute(m_nRowPos - 1); -} -// ------------------------------------------------------------------------- -Reference< XInterface > SAL_CALL MacabResultSet::getStatement() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - Reference< XStatement > xStatement = m_xStatement.get(); - return xStatement; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::rowDeleted() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::rowInserted() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::rowUpdated() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::wasNull() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - return m_bWasNull; -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::cancel() throw(RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::clearWarnings() throw(SQLException, RuntimeException) -{ -} -// ------------------------------------------------------------------------- -Any SAL_CALL MacabResultSet::getWarnings() throw(SQLException, RuntimeException) -{ - return Any(); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::insertRow() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - // you only have to implement this if you want to insert new rows -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateRow() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - // only when you allow updates -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::deleteRow() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::cancelRowUpdates() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::moveToInsertRow() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - // only when you allow inserts -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::moveToCurrentRow() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateNull(sal_Int32) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateBoolean(sal_Int32, sal_Bool) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateByte(sal_Int32, sal_Int8) throw(SQLException, RuntimeException) -{ - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - ::osl::MutexGuard aGuard( m_aMutex ); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateShort(sal_Int32, sal_Int16) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateInt(sal_Int32, sal_Int32) throw(SQLException, RuntimeException) -{ - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - ::osl::MutexGuard aGuard( m_aMutex ); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateLong(sal_Int32, sal_Int64) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ----------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateFloat(sal_Int32, float) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateDouble(sal_Int32, double) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateString(sal_Int32, const ::rtl::OUString&) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateBytes(sal_Int32, const Sequence< sal_Int8 >&) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateDate(sal_Int32, const Date&) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateTime(sal_Int32, const Time&) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateTimestamp(sal_Int32, const DateTime&) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateBinaryStream(sal_Int32, const Reference< XInputStream >&, sal_Int32) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateCharacterStream(sal_Int32, const Reference< XInputStream >&, sal_Int32) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::refreshRow() throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateObject(sal_Int32, const Any&) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabResultSet::updateNumericObject(sal_Int32, const Any&, sal_Int32) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); -} -// ------------------------------------------------------------------------- -// XRowLocate -Any SAL_CALL MacabResultSet::getBookmark() throw( SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - sal_Int32 nRecords = m_aMacabRecords->size(); - - if (m_nRowPos != -1 && m_nRowPos != nRecords) - { - macabfield *uidField = m_aMacabRecords->getField(m_nRowPos,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("UID"))); - if(uidField != NULL) - { - if(uidField->type == kABStringProperty) - { - return makeAny(CFStringToOUString( (CFStringRef) uidField->value )); - } - } - } - return Any(); -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::moveToBookmark(const Any& bookmark) throw( SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - ::rtl::OUString sBookmark = comphelper::getString(bookmark); - sal_Int32 nRecords = m_aMacabRecords->size(); - - for (sal_Int32 nRow = 0; nRow < nRecords; nRow++) - { - macabfield *uidField = m_aMacabRecords->getField(m_nRowPos,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("UID"))); - if(uidField != NULL) - { - if(uidField->type == kABStringProperty) - { - ::rtl::OUString sUniqueIdentifier = CFStringToOUString( (CFStringRef) uidField->value ); - if (sUniqueIdentifier == sBookmark) - { - m_nRowPos = nRow; - return sal_True; - } - } - } - } - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::moveRelativeToBookmark(const Any& bookmark, sal_Int32 rows) throw( SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - sal_Int32 nRowSave = m_nRowPos; - - if (moveToBookmark(bookmark)) - { - sal_Int32 nRecords = m_aMacabRecords->size(); - - m_nRowPos += rows; - - if (-1 < m_nRowPos && m_nRowPos < nRecords) - return sal_True; - } - - m_nRowPos = nRowSave; - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabResultSet::compareBookmarks(const Any& firstItem, const Any& secondItem) throw( SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - ::rtl::OUString sFirst = comphelper::getString(firstItem); - ::rtl::OUString sSecond = comphelper::getString(secondItem); - - if (sFirst < sSecond) - return CompareBookmark::LESS; - if (sFirst > sSecond) - return CompareBookmark::GREATER; - return CompareBookmark::EQUAL; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSet::hasOrderedBookmarks() throw( SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabResultSet::hashBookmark(const Any& bookmark) throw( SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - ::rtl::OUString sBookmark = comphelper::getString(bookmark); - - return sBookmark.hashCode(); -} -// ------------------------------------------------------------------------- -// XDeleteRows -Sequence< sal_Int32 > SAL_CALL MacabResultSet::deleteRows(const Sequence< Any >&) throw( SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabResultSet_BASE::rBHelper.bDisposed); - - return Sequence< sal_Int32 >(); -} -// ------------------------------------------------------------------------- -IPropertyArrayHelper* MacabResultSet::createArrayHelper() const -{ - Sequence< Property > aProps(6); - Property* pProperties = aProps.getArray(); - sal_Int32 nPos = 0; - DECL_PROP1IMPL(CURSORNAME, ::rtl::OUString) PropertyAttribute::READONLY); - DECL_PROP0(FETCHDIRECTION, sal_Int32); - DECL_PROP0(FETCHSIZE, sal_Int32); - DECL_BOOL_PROP1IMPL(ISBOOKMARKABLE) PropertyAttribute::READONLY); - DECL_PROP1IMPL(RESULTSETCONCURRENCY,sal_Int32) PropertyAttribute::READONLY); - DECL_PROP1IMPL(RESULTSETTYPE, sal_Int32) PropertyAttribute::READONLY); - - return new OPropertyArrayHelper(aProps); -} -// ------------------------------------------------------------------------- -IPropertyArrayHelper & MacabResultSet::getInfoHelper() -{ - return *static_cast<MacabResultSet*>(this)->getArrayHelper(); -} -// ------------------------------------------------------------------------- -sal_Bool MacabResultSet::convertFastPropertyValue( - Any &, - Any &, - sal_Int32 nHandle, - const Any& ) - throw (::com::sun::star::lang::IllegalArgumentException) -{ - switch (nHandle) - { - case PROPERTY_ID_ISBOOKMARKABLE: - case PROPERTY_ID_CURSORNAME: - case PROPERTY_ID_RESULTSETCONCURRENCY: - case PROPERTY_ID_RESULTSETTYPE: - throw ::com::sun::star::lang::IllegalArgumentException(); - break; - case PROPERTY_ID_FETCHDIRECTION: - case PROPERTY_ID_FETCHSIZE: - default: - ; - } - return sal_False; -} -// ------------------------------------------------------------------------- -void MacabResultSet::setFastPropertyValue_NoBroadcast( - sal_Int32 nHandle, - const Any& ) - throw (Exception) -{ - switch (nHandle) - { - case PROPERTY_ID_ISBOOKMARKABLE: - case PROPERTY_ID_CURSORNAME: - case PROPERTY_ID_RESULTSETCONCURRENCY: - case PROPERTY_ID_RESULTSETTYPE: - throw Exception(); - break; - case PROPERTY_ID_FETCHDIRECTION: - break; - case PROPERTY_ID_FETCHSIZE: - break; - default: - ; - } -} -// ------------------------------------------------------------------------- -void MacabResultSet::getFastPropertyValue( - Any& _rValue, - sal_Int32 nHandle) const -{ - switch (nHandle) - { - case PROPERTY_ID_ISBOOKMARKABLE: - _rValue <<= (sal_Bool)sal_False; - break; - case PROPERTY_ID_CURSORNAME: - case PROPERTY_ID_RESULTSETCONCURRENCY: - case PROPERTY_ID_RESULTSETTYPE: - case PROPERTY_ID_FETCHDIRECTION: - case PROPERTY_ID_FETCHSIZE: - ; - } -} -// ----------------------------------------------------------------------------- - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabResultSet.hxx b/connectivity/source/drivers/macab/MacabResultSet.hxx deleted file mode 100644 index 029aa6c13a..0000000000 --- a/connectivity/source/drivers/macab/MacabResultSet.hxx +++ /dev/null @@ -1,229 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_RESULTSET_HXX_ -#define _CONNECTIVITY_MACAB_RESULTSET_HXX_ - -#include "MacabStatement.hxx" -#include "MacabResultSetMetaData.hxx" -#include <com/sun/star/sdbc/XRow.hpp> -#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp> -#include <com/sun/star/sdbc/XColumnLocate.hpp> -#include <com/sun/star/sdbc/XResultSetUpdate.hpp> -#include <com/sun/star/sdbc/XRowUpdate.hpp> -#include <com/sun/star/sdbcx/XRowLocate.hpp> -#include <com/sun/star/sdbcx/XDeleteRows.hpp> -#include <cppuhelper/compbase12.hxx> - -namespace connectivity -{ - namespace macab - { - /* - ** MacabResultSet - */ - typedef ::cppu::WeakComponentImplHelper12< ::com::sun::star::sdbc::XResultSet, - ::com::sun::star::sdbc::XRow, - ::com::sun::star::sdbc::XResultSetMetaDataSupplier, - ::com::sun::star::util::XCancellable, - ::com::sun::star::sdbc::XWarningsSupplier, - ::com::sun::star::sdbc::XResultSetUpdate, - ::com::sun::star::sdbc::XRowUpdate, - ::com::sun::star::sdbcx::XRowLocate, - ::com::sun::star::sdbcx::XDeleteRows, - ::com::sun::star::sdbc::XCloseable, - ::com::sun::star::sdbc::XColumnLocate, - ::com::sun::star::lang::XServiceInfo> MacabResultSet_BASE; - class MacabRecords; - - class MacabResultSet : public comphelper::OBaseMutex, - public MacabResultSet_BASE, - public ::cppu::OPropertySetHelper, - public comphelper::OPropertyArrayUsageHelper<MacabResultSet> - { - protected: - ::rtl::Reference< MacabCommonStatement > m_xStatement; // the statement that has created this result set - ::rtl::Reference< MacabResultSetMetaData > m_xMetaData; // the description of the columns in this result set - MacabRecords * m_aMacabRecords; // address book entries matching the query - sal_Int32 m_nRowPos; // the current row within the result set - sal_Bool m_bWasNull; // last entry retrieved from this result set was NULL - ::rtl::OUString m_sTableName; - - // OPropertyArrayUsageHelper - virtual ::cppu::IPropertyArrayHelper* createArrayHelper( ) const; - - // OPropertySetHelper - virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper(); - - virtual sal_Bool SAL_CALL convertFastPropertyValue( - ::com::sun::star::uno::Any & rConvertedValue, - ::com::sun::star::uno::Any & rOldValue, - sal_Int32 nHandle, - const ::com::sun::star::uno::Any& rValue) - throw (::com::sun::star::lang::IllegalArgumentException); - virtual void SAL_CALL setFastPropertyValue_NoBroadcast( - sal_Int32 nHandle, - const ::com::sun::star::uno::Any& rValue) - throw (::com::sun::star::uno::Exception); - virtual void SAL_CALL getFastPropertyValue( - ::com::sun::star::uno::Any& rValue, - sal_Int32 nHandle) const; - - // you can't delete objects of this type - virtual ~MacabResultSet(); - - public: - DECLARE_SERVICE_INFO(); - - MacabResultSet(MacabCommonStatement *pStmt); - - ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > operator *() - { - return ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >(*(MacabResultSet_BASE*) this); - } - - void allMacabRecords(); - void someMacabRecords(const class MacabCondition *pCondition); - void sortMacabRecords(const class MacabOrder *pOrder); - void setTableName(const ::rtl::OUString _sTableName); - - // ::cppu::OComponentHelper - virtual void SAL_CALL disposing(void); - - // 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(); - virtual void SAL_CALL release() throw(); - - // XTypeProvider - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException); - - // XPropertySet - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException); - - // XResultSet - virtual sal_Bool SAL_CALL isBeforeFirst( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL isAfterLast( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL isFirst( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL isLast( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL beforeFirst( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL afterLast( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL first( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL last( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL absolute( sal_Int32 row ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL relative( sal_Int32 rows ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL next( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL previous( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL refreshRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL rowUpdated( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL rowInserted( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL rowDeleted( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getStatement( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - - // XRow - virtual sal_Bool SAL_CALL wasNull( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getString( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL getBoolean( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int8 SAL_CALL getByte( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int16 SAL_CALL getShort( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getInt( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int64 SAL_CALL getLong( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual float SAL_CALL getFloat( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual double SAL_CALL getDouble( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getBytes( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::util::Date SAL_CALL getDate( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::util::Time SAL_CALL getTime( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::util::DateTime SAL_CALL getTimestamp( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getBinaryStream( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getCharacterStream( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Any SAL_CALL getObject( sal_Int32 columnIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& typeMap ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRef > SAL_CALL getRef( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XBlob > SAL_CALL getBlob( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XClob > SAL_CALL getClob( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XArray > SAL_CALL getArray( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - - // XResultSetMetaDataSupplier - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > SAL_CALL getMetaData( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - - // XCancellable - virtual void SAL_CALL cancel( ) throw(::com::sun::star::uno::RuntimeException); - - // XCloseable - virtual void SAL_CALL close( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - - // XWarningsSupplier - virtual ::com::sun::star::uno::Any SAL_CALL getWarnings( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL clearWarnings( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - - // XResultSetUpdate - virtual void SAL_CALL insertRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL updateRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL deleteRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL cancelRowUpdates( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL moveToInsertRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL moveToCurrentRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - // XRowUpdate - virtual void SAL_CALL updateNull( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL updateBoolean( sal_Int32 columnIndex, sal_Bool x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL updateByte( sal_Int32 columnIndex, sal_Int8 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL updateShort( sal_Int32 columnIndex, sal_Int16 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL updateInt( sal_Int32 columnIndex, sal_Int32 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL updateLong( sal_Int32 columnIndex, sal_Int64 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL updateFloat( sal_Int32 columnIndex, float x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL updateDouble( sal_Int32 columnIndex, double x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL updateString( sal_Int32 columnIndex, const ::rtl::OUString& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL updateBytes( sal_Int32 columnIndex, const ::com::sun::star::uno::Sequence< sal_Int8 >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL updateDate( sal_Int32 columnIndex, const ::com::sun::star::util::Date& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL updateTime( sal_Int32 columnIndex, const ::com::sun::star::util::Time& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL updateTimestamp( sal_Int32 columnIndex, const ::com::sun::star::util::DateTime& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL updateBinaryStream( sal_Int32 columnIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL updateCharacterStream( sal_Int32 columnIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL updateObject( sal_Int32 columnIndex, const ::com::sun::star::uno::Any& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL updateNumericObject( sal_Int32 columnIndex, const ::com::sun::star::uno::Any& x, sal_Int32 scale ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - - // XColumnLocate - virtual sal_Int32 SAL_CALL findColumn( const ::rtl::OUString& columnName ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - - // XRowLocate - virtual ::com::sun::star::uno::Any SAL_CALL getBookmark( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL moveToBookmark( const ::com::sun::star::uno::Any& bookmark ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL moveRelativeToBookmark( const ::com::sun::star::uno::Any& bookmark, sal_Int32 rows ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL compareBookmarks( const ::com::sun::star::uno::Any& firstItem, const ::com::sun::star::uno::Any& secondItem ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL hasOrderedBookmarks( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL hashBookmark( const ::com::sun::star::uno::Any& bookmark ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - - // 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); - }; - } -} - -#endif // _CONNECTIVITY_MACAB_RESULTSET_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabResultSetMetaData.cxx b/connectivity/source/drivers/macab/MacabResultSetMetaData.cxx deleted file mode 100644 index 064065213c..0000000000 --- a/connectivity/source/drivers/macab/MacabResultSetMetaData.cxx +++ /dev/null @@ -1,227 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "MacabResultSetMetaData.hxx" -#include "MacabHeader.hxx" -#include "MacabRecords.hxx" -#include "MacabAddressBook.hxx" -#include "macabutilities.hxx" -#include "resource/macab_res.hrc" - -using namespace connectivity::macab; -using namespace com::sun::star::uno; -using namespace com::sun::star::lang; -using namespace com::sun::star::sdbc; - -MacabResultSetMetaData::MacabResultSetMetaData(MacabConnection* _pConnection, ::rtl::OUString _sTableName) - : m_pConnection(_pConnection), - m_sTableName(_sTableName), - m_aMacabFields() -{ -} -// ------------------------------------------------------------------------- -MacabResultSetMetaData::~MacabResultSetMetaData() -{ -} -// ------------------------------------------------------------------------- -void MacabResultSetMetaData::setMacabFields(const ::rtl::Reference<connectivity::OSQLColumns> &xColumns) throw(SQLException) -{ - OSQLColumns::Vector::const_iterator aIter; - static const ::rtl::OUString aName(RTL_CONSTASCII_USTRINGPARAM("Name")); - MacabRecords *aRecords; - MacabHeader *aHeader; - - aRecords = m_pConnection->getAddressBook()->getMacabRecords(m_sTableName); - - // In case, somehow, we don't have anything with the name m_sTableName - if(aRecords == NULL) - { - impl_throwError(STR_NO_TABLE); - } - - aHeader = aRecords->getHeader(); - - for (aIter = xColumns->get().begin(); aIter != xColumns->get().end(); ++aIter) - { - ::rtl::OUString aFieldName; - sal_uInt32 nFieldNumber; - - (*aIter)->getPropertyValue(aName) >>= aFieldName; - nFieldNumber = aHeader->getColumnNumber(aFieldName); - m_aMacabFields.push_back(nFieldNumber); - } - -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabResultSetMetaData::getColumnDisplaySize(sal_Int32 column) throw(SQLException, RuntimeException) -{ - // For now, all columns are the same size. - return 50; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabResultSetMetaData::getColumnType(sal_Int32 column) throw(SQLException, RuntimeException) -{ - MacabRecords *aRecords; - MacabHeader *aHeader; - macabfield *aField; - - aRecords = m_pConnection->getAddressBook()->getMacabRecords(m_sTableName); - - // In case, somehow, we don't have anything with the name m_sTableName - if(aRecords == NULL) - { - impl_throwError(STR_NO_TABLE); - } - - aHeader = aRecords->getHeader(); - aField = aHeader->get(column-1); - - if(aField == NULL) - { - ::dbtools::throwInvalidIndexException(*this,Any()); - return -1; - } - - return ABTypeToDataType(aField->type); -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabResultSetMetaData::getColumnCount() throw(SQLException, RuntimeException) -{ - return m_aMacabFields.size(); -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSetMetaData::isCaseSensitive(sal_Int32) throw(SQLException, RuntimeException) -{ - return sal_True; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabResultSetMetaData::getSchemaName(sal_Int32) throw(SQLException, RuntimeException) -{ - return ::rtl::OUString(); -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabResultSetMetaData::getColumnName(sal_Int32 column) throw(SQLException, RuntimeException) -{ - sal_uInt32 nFieldNumber = m_aMacabFields[column - 1]; - MacabRecords *aRecords; - MacabHeader *aHeader; - - aRecords = m_pConnection->getAddressBook()->getMacabRecords(m_sTableName); - - // In case, somehow, we don't have anything with the name m_sTableName - if(aRecords == NULL) - { - impl_throwError(STR_NO_TABLE); - } - - aHeader = aRecords->getHeader(); - ::rtl::OUString aName = aHeader->getString(nFieldNumber); - - return aName; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabResultSetMetaData::getTableName(sal_Int32) throw(SQLException, RuntimeException) -{ - return m_sTableName; -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabResultSetMetaData::getCatalogName(sal_Int32) throw(SQLException, RuntimeException) -{ - return ::rtl::OUString(); -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabResultSetMetaData::getColumnTypeName(sal_Int32) throw(SQLException, RuntimeException) -{ - return ::rtl::OUString(); -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabResultSetMetaData::getColumnLabel(sal_Int32) throw(SQLException, RuntimeException) -{ - return ::rtl::OUString(); -} -// ------------------------------------------------------------------------- -::rtl::OUString SAL_CALL MacabResultSetMetaData::getColumnServiceName(sal_Int32) throw(SQLException, RuntimeException) -{ - return ::rtl::OUString(); -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSetMetaData::isCurrency(sal_Int32) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSetMetaData::isAutoIncrement(sal_Int32) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSetMetaData::isSigned(sal_Int32) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabResultSetMetaData::getPrecision(sal_Int32) throw(SQLException, RuntimeException) -{ - return 0; -} -// ----------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabResultSetMetaData::getScale(sal_Int32) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) -{ - return 0; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabResultSetMetaData::isNullable(sal_Int32) throw(SQLException, RuntimeException) -{ - return (sal_Int32) sal_True; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSetMetaData::isSearchable(sal_Int32) throw(SQLException, RuntimeException) -{ - return sal_True; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSetMetaData::isReadOnly(sal_Int32) throw(SQLException, RuntimeException) -{ - return sal_True; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSetMetaData::isDefinitelyWritable(sal_Int32) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabResultSetMetaData::isWritable(sal_Int32) throw(SQLException, RuntimeException) -{ - return sal_False; -} -// ------------------------------------------------------------------------- - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabResultSetMetaData.hxx b/connectivity/source/drivers/macab/MacabResultSetMetaData.hxx deleted file mode 100644 index 2140a03b30..0000000000 --- a/connectivity/source/drivers/macab/MacabResultSetMetaData.hxx +++ /dev/null @@ -1,97 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_RESULTSETMETADATA_HXX_ -#define _CONNECTIVITY_MACAB_RESULTSETMETADATA_HXX_ - -#include "MacabConnection.hxx" -#include <connectivity/CommonTools.hxx> -#include <com/sun/star/sdbc/XResultSetMetaData.hpp> -#include <cppuhelper/implbase1.hxx> -#include <connectivity/dbexception.hxx> -#include <rtl/ref.hxx> - -namespace connectivity -{ - namespace macab - { - /* - ** MacabResultSetMetaData - */ - typedef ::cppu::WeakImplHelper1< ::com::sun::star::sdbc::XResultSetMetaData> MacabResultSetMetaData_BASE; - - class MacabResultSetMetaData : public MacabResultSetMetaData_BASE - { - MacabConnection* m_pConnection; - ::rtl::OUString m_sTableName; - ::std::vector<sal_Int32> m_aMacabFields; // for each selected column, contains the number - // of the corresponding AddressBook field - - protected: - virtual ~MacabResultSetMetaData(); - - public: - MacabResultSetMetaData(MacabConnection* _pConnection, ::rtl::OUString _sTableName); - - // avoid ambigous cast error from the compiler - inline operator ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > () throw() - { return this; } - - void setMacabFields( - const ::rtl::Reference<connectivity::OSQLColumns> &xColumns) throw(::com::sun::star::sdbc::SQLException); - inline sal_uInt32 fieldAtColumn(sal_Int32 columnIndex) const - { return m_aMacabFields[columnIndex - 1]; } - - virtual sal_Int32 SAL_CALL getColumnCount( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL isAutoIncrement( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL isCaseSensitive( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL isSearchable( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL isCurrency( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL isNullable( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL isSigned( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getColumnDisplaySize( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getColumnLabel( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getColumnName( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getSchemaName( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getPrecision( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getScale( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getTableName( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getCatalogName( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL getColumnType( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getColumnTypeName( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL isReadOnly( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL isWritable( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL isDefinitelyWritable( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::rtl::OUString SAL_CALL getColumnServiceName( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - }; - } -} - -#endif // _CONNECTIVITY_MACAB_RESULTSETMETADATA_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabServices.cxx b/connectivity/source/drivers/macab/MacabServices.cxx deleted file mode 100644 index 3319c19cdc..0000000000 --- a/connectivity/source/drivers/macab/MacabServices.cxx +++ /dev/null @@ -1,117 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "MacabDriver.hxx" -#include <cppuhelper/factory.hxx> - -using namespace connectivity::macab; -using ::rtl::OUString; -using ::com::sun::star::uno::Reference; -using ::com::sun::star::uno::Sequence; -using ::com::sun::star::lang::XSingleServiceFactory; -using ::com::sun::star::lang::XMultiServiceFactory; - -typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc) - ( - const Reference< XMultiServiceFactory > & rServiceManager, - const OUString & rComponentName, - ::cppu::ComponentInstantiation pCreateFunction, - const Sequence< OUString > & rServiceNames, - rtl_ModuleCount* _pTemp - ); - -//--------------------------------------------------------------------------------------- -struct ProviderRequest -{ - Reference< XSingleServiceFactory > xRet; - Reference< XMultiServiceFactory > const xServiceManager; - OUString const sImplementationName; - - ProviderRequest( - void* pServiceManager, - sal_Char const* pImplementationName - ) - : xServiceManager(reinterpret_cast<XMultiServiceFactory*>(pServiceManager)) - , sImplementationName(OUString::createFromAscii(pImplementationName)) - { - } - - inline - sal_Bool CREATE_PROVIDER( - const OUString& Implname, - const Sequence< OUString > & Services, - ::cppu::ComponentInstantiation Factory, - createFactoryFunc creator - ) - { - if (!xRet.is() && (Implname == sImplementationName)) - try - { - xRet = creator( xServiceManager, sImplementationName,Factory, Services,0); - } - catch(...) - { - } - return xRet.is(); - } - - void* getProvider() const { return xRet.get(); } -}; - -//--------------------------------------------------------------------------------------- -extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( - const sal_Char* pImplementationName, - void* pServiceManager, - void*) -{ - void* pRet = 0; - if (pServiceManager) - { - ProviderRequest aReq(pServiceManager,pImplementationName); - - aReq.CREATE_PROVIDER( - MacabDriver::getImplementationName_Static(), - MacabDriver::getSupportedServiceNames_Static(), - &MacabDriver::Create, - ::cppu::createSingleFactory) - ; - - if (aReq.xRet.is()) - aReq.xRet->acquire(); - - pRet = aReq.getProvider(); - } - - return pRet; -}; - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabStatement.cxx b/connectivity/source/drivers/macab/MacabStatement.cxx deleted file mode 100644 index fa2654131f..0000000000 --- a/connectivity/source/drivers/macab/MacabStatement.cxx +++ /dev/null @@ -1,614 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "MacabStatement.hxx" -#include "MacabConnection.hxx" -#include "MacabAddressBook.hxx" -#include "MacabDriver.hxx" -#include "MacabResultSet.hxx" -#include "MacabResultSetMetaData.hxx" -#include "macabcondition.hxx" -#include "macaborder.hxx" -#include "TConnection.hxx" -#include <connectivity/dbexception.hxx> -#include "resource/sharedresources.hxx" -#include "resource/macab_res.hrc" - -#if OSL_DEBUG_LEVEL > 0 -# define OUtoCStr( x ) ( ::rtl::OUStringToOString ( (x), RTL_TEXTENCODING_ASCII_US).getStr()) -#else /* OSL_DEBUG_LEVEL */ -# define OUtoCStr( x ) ("dummy") -#endif /* OSL_DEBUG_LEVEL */ - -using namespace connectivity::macab; -using namespace com::sun::star::uno; -using namespace com::sun::star::lang; -using namespace com::sun::star::beans; -using namespace com::sun::star::sdbc; -using namespace com::sun::star::sdbcx; -using namespace com::sun::star::container; -using namespace com::sun::star::io; -using namespace com::sun::star::util; - -namespace connectivity -{ - namespace macab - { - void impl_throwError(sal_uInt16 _nErrorId) - { - ::connectivity::SharedResources aResources; - const ::rtl::OUString sError( aResources.getResourceString(_nErrorId) ); - ::dbtools::throwGenericSQLException(sError,NULL); - } - } -} - -IMPLEMENT_SERVICE_INFO(MacabStatement, "com.sun.star.sdbc.drivers.MacabStatement", "com.sun.star.sdbc.Statement"); -//------------------------------------------------------------------------------ -MacabCommonStatement::MacabCommonStatement(MacabConnection* _pConnection ) - : MacabCommonStatement_BASE(m_aMutex), - OPropertySetHelper(MacabCommonStatement_BASE::rBHelper), - m_aParser(_pConnection->getDriver()->getMSFactory()), - m_aSQLIterator(_pConnection, _pConnection->createCatalog()->getTables(), m_aParser, NULL ), - m_pParseTree(NULL), - m_pConnection(_pConnection), - rBHelper(MacabCommonStatement_BASE::rBHelper) -{ - m_pConnection->acquire(); -} -// ----------------------------------------------------------------------------- -MacabCommonStatement::~MacabCommonStatement() -{ -} -// ----------------------------------------------------------------------------- -void MacabCommonStatement::disposing() -{ - MacabCommonStatement_BASE::disposing(); -} -// ----------------------------------------------------------------------------- -void MacabCommonStatement::resetParameters() const throw(::com::sun::star::sdbc::SQLException) -{ - impl_throwError(STR_PARA_ONLY_PREPARED); -} -// ----------------------------------------------------------------------------- -void MacabCommonStatement::getNextParameter(::rtl::OUString &) const throw(::com::sun::star::sdbc::SQLException) -{ - impl_throwError(STR_PARA_ONLY_PREPARED); -} -// ----------------------------------------------------------------------------- -MacabCondition *MacabCommonStatement::analyseWhereClause(const OSQLParseNode *pParseNode) const throw(SQLException) -{ - if (pParseNode->count() == 3) - { - const OSQLParseNode *pLeft = pParseNode->getChild(0), - *pMiddle = pParseNode->getChild(1), - *pRight = pParseNode->getChild(2); - - // WHERE ( ... ) ? - if (SQL_ISPUNCTUATION(pLeft, "(") && SQL_ISPUNCTUATION(pRight, ")")) - { - return analyseWhereClause(pMiddle); - } - else if (SQL_ISRULE(pParseNode, comparison_predicate)) - { - if (pLeft->isToken() && pRight->isToken()) - { - switch (pMiddle->getNodeType()) - { - case SQL_NODE_EQUAL: - // WHERE 0 = 1 - return new MacabConditionConstant(pLeft->getTokenValue() == pRight->getTokenValue()); - - case SQL_NODE_NOTEQUAL: - // WHERE 0 <> 1 - // (might not be correct SQL... don't care, handling anyway) - return new MacabConditionConstant(pLeft->getTokenValue() != pRight->getTokenValue()); - - default: - break; - } - } - else if (SQL_ISRULE(pLeft, column_ref)) - { - ::rtl::OUString sColumnName, - sTableRange; - - m_aSQLIterator.getColumnRange(pLeft, sColumnName, sTableRange); - - if (pRight->isToken() || SQL_ISRULE(pRight, parameter)) - { - ::rtl::OUString sMatchString; - - if (pRight->isToken()) // WHERE Name = 'Doe' - sMatchString = pRight->getTokenValue(); - else if (SQL_ISRULE(pRight, parameter)) // WHERE Name = ? - getNextParameter(sMatchString); - - switch (pMiddle->getNodeType()) - { - case SQL_NODE_EQUAL: - // WHERE Name = 'Smith' - return new MacabConditionEqual(m_pHeader, sColumnName, sMatchString); - - case SQL_NODE_NOTEQUAL: - // WHERE Name <> 'Jones' - return new MacabConditionDifferent(m_pHeader, sColumnName, sMatchString); - - default: - break; - } - } - } - } - else if (SQL_ISRULE(pParseNode, search_condition)) - { - if (SQL_ISTOKEN(pMiddle, OR)) - { - // WHERE Name = 'Smith' OR Name = 'Jones' - return new MacabConditionOr( - analyseWhereClause(pLeft), - analyseWhereClause(pRight)); - } - } - else if (SQL_ISRULE(pParseNode, boolean_term)) - { - if (SQL_ISTOKEN(pMiddle, AND)) - { - // WHERE Name = 'Smith' AND "Given Name" = 'Peter' - return new MacabConditionAnd( - analyseWhereClause(pLeft), - analyseWhereClause(pRight)); - } - } - } - else if (SQL_ISRULE(pParseNode, test_for_null) || SQL_ISRULE(pParseNode, like_predicate)) - { - const OSQLParseNode *pLeft = pParseNode->getChild(0); - const OSQLParseNode* pPart2 = pParseNode->getChild(1); - const OSQLParseNode *pMiddleLeft = pPart2->getChild(0), - *pMiddleRight = pPart2->getChild(1), - *pRight = pPart2->getChild(2); - - if (SQL_ISRULE(pParseNode, test_for_null)) - { - if (SQL_ISRULE(pLeft, column_ref) && - SQL_ISTOKEN(pMiddleLeft, IS) && - SQL_ISTOKEN(pRight, NULL)) - { - ::rtl::OUString sColumnName, - sTableRange; - - m_aSQLIterator.getColumnRange(pLeft, sColumnName, sTableRange); - - if (SQL_ISTOKEN(pMiddleRight, NOT)) - { - // WHERE "Mobile Phone" IS NOT NULL - return new MacabConditionNotNull(m_pHeader, sColumnName); - } - else - { - // WHERE "Mobile Phone" IS NULL - return new MacabConditionNull(m_pHeader, sColumnName); - } - } - } - else if (SQL_ISRULE(pParseNode, like_predicate)) - { - if (SQL_ISRULE(pLeft, column_ref)) - { - ::rtl::OUString sColumnName, - sTableRange; - - m_aSQLIterator.getColumnRange(pLeft, sColumnName, sTableRange); - - if (pMiddleRight->isToken() || SQL_ISRULE(pMiddleRight, parameter)) - { - ::rtl::OUString sMatchString; - - if (pMiddleRight->isToken()) // WHERE Name LIKE 'Sm%' - sMatchString = pMiddleRight->getTokenValue(); - else if (SQL_ISRULE(pMiddleRight, parameter)) // WHERE Name LIKE ? - getNextParameter(sMatchString); - - return new MacabConditionSimilar(m_pHeader, sColumnName, sMatchString); - } - } - } - } - impl_throwError(STR_QUERY_TOO_COMPLEX); - // Unreachable: - OSL_ASSERT(false); - return 0; -} -// ----------------------------------------------------------------------------- -MacabOrder *MacabCommonStatement::analyseOrderByClause(const OSQLParseNode *pParseNode) const throw(SQLException) -{ - if (SQL_ISRULE(pParseNode, ordering_spec_commalist)) - { - MacabComplexOrder *list = new MacabComplexOrder(); - sal_uInt32 n = pParseNode->count(); - - // Iterate through the ordering columns - for (sal_uInt32 i = 0; i < n; i++) - { - list->addOrder - (analyseOrderByClause(pParseNode->getChild(i))); - } - - return list; - } - else if (SQL_ISRULE(pParseNode, ordering_spec)) - { - if (pParseNode->count() == 2) - { - OSQLParseNode* pColumnRef = pParseNode->getChild(0); - OSQLParseNode* pAscendingDescending = pParseNode->getChild(1); - - if (SQL_ISRULE(pColumnRef, column_ref)) - { - if (pColumnRef->count() == 3) - pColumnRef = pColumnRef->getChild(2); - - if (pColumnRef->count() == 1) - { - ::rtl::OUString sColumnName = - pColumnRef->getChild(0)->getTokenValue(); - sal_Bool bAscending = - SQL_ISTOKEN(pAscendingDescending, DESC)? - sal_False: - sal_True; - - return new MacabSimpleOrder(m_pHeader, sColumnName, bAscending); - } - } - } - } - impl_throwError(STR_QUERY_TOO_COMPLEX); - // Unreachable: - OSL_ASSERT(false); - return 0; -} -//------------------------------------------------------------------------------ -::rtl::OUString MacabCommonStatement::getTableName() const -{ - const OSQLTables& xTabs = m_aSQLIterator.getTables(); - - if( xTabs.empty() ) - return ::rtl::OUString(); - - // can only deal with one table at a time - if(xTabs.size() > 1 || m_aSQLIterator.hasErrors() ) - return ::rtl::OUString(); - - return xTabs.begin()->first; -} -//------------------------------------------------------------------------------ -void MacabCommonStatement::setMacabFields(MacabResultSet *pResult) const throw(SQLException) -{ - ::rtl::Reference<connectivity::OSQLColumns> xColumns; // selected columns - MacabResultSetMetaData *pMeta; // meta information - holds the list of AddressBook fields - - xColumns = m_aSQLIterator.getSelectColumns(); - if (!xColumns.is()) - { - ::connectivity::SharedResources aResources; - const ::rtl::OUString sError( aResources.getResourceString( - STR_INVALID_COLUMN_SELECTION - ) ); - ::dbtools::throwGenericSQLException(sError,NULL); - } - pMeta = static_cast<MacabResultSetMetaData *>(pResult->getMetaData().get()); - pMeta->setMacabFields(xColumns); -} -// ------------------------------------------------------------------------- -void MacabCommonStatement::selectRecords(MacabResultSet *pResult) const throw(SQLException) -{ - const OSQLParseNode *pParseNode; - MacabCondition *pCondition; - - pParseNode = m_aSQLIterator.getWhereTree(); - if (pParseNode != NULL) - { - if (SQL_ISRULE(pParseNode, where_clause)) - { - // Since we don't support parameters, don't reset them. If we ever - // support them, uncomment this line and fix resetParameters. - //resetParameters(); - pParseNode = pParseNode->getChild(1); - pCondition = analyseWhereClause(pParseNode); - if (pCondition->isAlwaysTrue()) - pResult->allMacabRecords(); - else if (!pCondition->isAlwaysFalse()) - pResult->someMacabRecords(pCondition); - delete pCondition; - return; - } - } - - // no WHERE clause: get all rows - pResult->allMacabRecords(); -} -// ------------------------------------------------------------------------- -void MacabCommonStatement::sortRecords(MacabResultSet *pResult) const throw(SQLException) -{ - const OSQLParseNode *pParseNode; - MacabOrder *pOrder; - - pParseNode = m_aSQLIterator.getOrderTree(); - if (pParseNode != NULL) - { - if (SQL_ISRULE(pParseNode, opt_order_by_clause)) - { - pParseNode = pParseNode->getChild(2); - pOrder = analyseOrderByClause(pParseNode); - pResult->sortMacabRecords(pOrder); - delete pOrder; - } - } -} -//----------------------------------------------------------------------------- -Any SAL_CALL MacabCommonStatement::queryInterface( const Type & rType ) throw(RuntimeException) -{ - Any aRet = MacabCommonStatement_BASE::queryInterface(rType); - if (!aRet.hasValue()) - aRet = OPropertySetHelper::queryInterface(rType); - return aRet; -} -// ------------------------------------------------------------------------- -Sequence< Type > SAL_CALL MacabCommonStatement::getTypes( ) throw(RuntimeException) -{ - ::cppu::OTypeCollection aTypes( ::getCppuType( (const Reference< XMultiPropertySet > *)0 ), - ::getCppuType( (const Reference< XFastPropertySet > *)0 ), - ::getCppuType( (const Reference< XPropertySet > *)0 )); - - return comphelper::concatSequences(aTypes.getTypes(),MacabCommonStatement_BASE::getTypes()); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabCommonStatement::cancel( ) throw(RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - - checkDisposed(MacabCommonStatement_BASE::rBHelper.bDisposed); - // cancel the current sql statement -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabCommonStatement::close( ) throw(SQLException, RuntimeException) -{ - { - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabCommonStatement_BASE::rBHelper.bDisposed); - - } - dispose(); -} -// ------------------------------------------------------------------------- -sal_Bool SAL_CALL MacabCommonStatement::execute( - const ::rtl::OUString& sql ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabCommonStatement_BASE::rBHelper.bDisposed); - - Reference< XResultSet > xRS = executeQuery(sql); - - return xRS.is(); -} -// ------------------------------------------------------------------------- -Reference< XResultSet > SAL_CALL MacabCommonStatement::executeQuery( - const ::rtl::OUString& sql ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabCommonStatement_BASE::rBHelper.bDisposed); - -OSL_TRACE("Mac OS Address book - SQL Request: %s", OUtoCStr(sql)); - - MacabResultSet* pResult = new MacabResultSet(this); - Reference< XResultSet > xRS = pResult; - ::rtl::OUString aErr; - - m_pParseTree = m_aParser.parseTree(aErr, sql); - if (m_pParseTree == NULL) - throw SQLException(aErr, *this, aErr, 0, Any()); - - m_aSQLIterator.setParseTree(m_pParseTree); - m_aSQLIterator.traverseAll(); - switch (m_aSQLIterator.getStatementType()) - { - case SQL_STATEMENT_SELECT: - { - ::rtl::OUString sTableName = getTableName(); // FROM which table ? - if (sTableName.getLength() != 0) // a match - { - MacabRecords *aRecords; - aRecords = m_pConnection->getAddressBook()->getMacabRecords(sTableName); - - // In case, somehow, we don't have anything with the name m_sTableName - if(aRecords == NULL) - { - impl_throwError(STR_NO_TABLE); - } - else - { - m_pHeader = aRecords->getHeader(); - - pResult->setTableName(sTableName); - - setMacabFields(pResult); // SELECT which columns ? - selectRecords(pResult); // WHERE which condition ? - sortRecords(pResult); // ORDER BY which columns ? - } -// To be continued: DISTINCT -// etc... - } - } - break; - - default: -// To be continued: UPDATE -// DELETE -// etc... - impl_throwError(STR_QUERY_TOO_COMPLEX); - } - - m_xResultSet = Reference<XResultSet>(pResult); - return xRS; -} -// ------------------------------------------------------------------------- -Reference< XConnection > SAL_CALL MacabCommonStatement::getConnection( ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabCommonStatement_BASE::rBHelper.bDisposed); - - // just return our connection here - return (Reference< XConnection >) m_pConnection; -} -// ------------------------------------------------------------------------- -sal_Int32 SAL_CALL MacabCommonStatement::executeUpdate( const ::rtl::OUString& ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabCommonStatement_BASE::rBHelper.bDisposed); - - // the return values gives information about how many rows are affected by executing the sql statement - return 0; -} -// ------------------------------------------------------------------------- -Any SAL_CALL MacabCommonStatement::getWarnings( ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabCommonStatement_BASE::rBHelper.bDisposed); - - return makeAny(m_aLastWarning); -} -// ------------------------------------------------------------------------- -void SAL_CALL MacabCommonStatement::clearWarnings( ) throw(SQLException, RuntimeException) -{ - ::osl::MutexGuard aGuard( m_aMutex ); - checkDisposed(MacabCommonStatement_BASE::rBHelper.bDisposed); - - m_aLastWarning = SQLWarning(); -} -// ------------------------------------------------------------------------- -::cppu::IPropertyArrayHelper* MacabCommonStatement::createArrayHelper( ) const -{ - // this properties are defined by the service statement - // they must be in alphabetic order - Sequence< Property > aProps(10); - Property* pProperties = aProps.getArray(); - sal_Int32 nPos = 0; - DECL_PROP0(CURSORNAME, ::rtl::OUString); - DECL_BOOL_PROP0(ESCAPEPROCESSING); - DECL_PROP0(FETCHDIRECTION,sal_Int32); - DECL_PROP0(FETCHSIZE, sal_Int32); - DECL_PROP0(MAXFIELDSIZE,sal_Int32); - DECL_PROP0(MAXROWS, sal_Int32); - DECL_PROP0(QUERYTIMEOUT,sal_Int32); - DECL_PROP0(RESULTSETCONCURRENCY,sal_Int32); - DECL_PROP0(RESULTSETTYPE,sal_Int32); - DECL_BOOL_PROP0(USEBOOKMARKS); - - return new ::cppu::OPropertyArrayHelper(aProps); -} -// ------------------------------------------------------------------------- -::cppu::IPropertyArrayHelper & MacabCommonStatement::getInfoHelper() -{ - return *const_cast<MacabCommonStatement*>(this)->getArrayHelper(); -} -// ------------------------------------------------------------------------- -sal_Bool MacabCommonStatement::convertFastPropertyValue( - Any &, - Any &, - sal_Int32, - const Any&) throw (::com::sun::star::lang::IllegalArgumentException) -{ - sal_Bool bConverted = sal_False; - // here we have to try to convert - return bConverted; -} -// ------------------------------------------------------------------------- -void MacabCommonStatement::setFastPropertyValue_NoBroadcast(sal_Int32 nHandle,const Any&) throw (Exception) -{ - // set the value to whatever is nescessary - switch (nHandle) - { - case PROPERTY_ID_QUERYTIMEOUT: - case PROPERTY_ID_MAXFIELDSIZE: - case PROPERTY_ID_MAXROWS: - case PROPERTY_ID_CURSORNAME: - case PROPERTY_ID_RESULTSETCONCURRENCY: - case PROPERTY_ID_RESULTSETTYPE: - case PROPERTY_ID_FETCHDIRECTION: - case PROPERTY_ID_FETCHSIZE: - case PROPERTY_ID_ESCAPEPROCESSING: - case PROPERTY_ID_USEBOOKMARKS: - default: - ; - } -} -// ------------------------------------------------------------------------- -void MacabCommonStatement::getFastPropertyValue(Any&,sal_Int32 nHandle) const -{ - switch (nHandle) - { - case PROPERTY_ID_QUERYTIMEOUT: - case PROPERTY_ID_MAXFIELDSIZE: - case PROPERTY_ID_MAXROWS: - case PROPERTY_ID_CURSORNAME: - case PROPERTY_ID_RESULTSETCONCURRENCY: - case PROPERTY_ID_RESULTSETTYPE: - case PROPERTY_ID_FETCHDIRECTION: - case PROPERTY_ID_FETCHSIZE: - case PROPERTY_ID_ESCAPEPROCESSING: - case PROPERTY_ID_USEBOOKMARKS: - default: - ; - } -} -// ----------------------------------------------------------------------------- -void SAL_CALL MacabCommonStatement::acquire() throw() -{ - MacabCommonStatement_BASE::acquire(); -} -// ----------------------------------------------------------------------------- -void SAL_CALL MacabCommonStatement::release() throw() -{ - MacabCommonStatement_BASE::release(); -} -// ----------------------------------------------------------------------------- -Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL MacabCommonStatement::getPropertySetInfo( ) throw(RuntimeException) -{ - return ::cppu::OPropertySetHelper::createPropertySetInfo(getInfoHelper()); -} -// ----------------------------------------------------------------------------- -MacabStatement::MacabStatement(MacabConnection* _pConnection) - : MacabStatement_BASE(_pConnection) -{ -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabStatement.hxx b/connectivity/source/drivers/macab/MacabStatement.hxx deleted file mode 100644 index 0eda7b05f5..0000000000 --- a/connectivity/source/drivers/macab/MacabStatement.hxx +++ /dev/null @@ -1,177 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_STATEMENT_HXX_ -#define _CONNECTIVITY_MACAB_STATEMENT_HXX_ - -#include "MacabConnection.hxx" -#include "MacabHeader.hxx" -#include <list> -#include "connectivity/sqliterator.hxx" -#include "connectivity/sqlparse.hxx" -#include <com/sun/star/sdbc/XStatement.hpp> -#include <com/sun/star/util/XCancellable.hpp> -#include <cppuhelper/compbase4.hxx> -#include <cppuhelper/implbase1.hxx> -#include <comphelper/proparrhlp.hxx> - -namespace connectivity -{ - namespace macab - { - typedef ::cppu::WeakComponentImplHelper4< ::com::sun::star::sdbc::XStatement, - ::com::sun::star::sdbc::XWarningsSupplier, - ::com::sun::star::util::XCancellable, - ::com::sun::star::sdbc::XCloseable> MacabCommonStatement_BASE; - - //************************************************************** - // Class MacabCommonStatement - // is a base class for the normal statement and for the prepared statement - //************************************************************** - class MacabCommonStatement : public comphelper::OBaseMutex, - public MacabCommonStatement_BASE, - public ::cppu::OPropertySetHelper, - public comphelper::OPropertyArrayUsageHelper<MacabCommonStatement> - - { - ::com::sun::star::sdbc::SQLWarning m_aLastWarning; - - protected: - ::std::list< ::rtl::OUString> m_aBatchList; - connectivity::OSQLParser m_aParser; - connectivity::OSQLParseTreeIterator m_aSQLIterator; - connectivity::OSQLParseNode* m_pParseTree; - MacabConnection* m_pConnection; // The owning Connection object - MacabHeader* m_pHeader; // The header of the address book on which to run queries (provided by m_pConnection) - ::com::sun::star::uno::WeakReference< ::com::sun::star::sdbc::XResultSet> m_xResultSet; // The last ResultSet created - - - protected: - class MacabCondition *analyseWhereClause( - const OSQLParseNode *pParseNode) const throw(::com::sun::star::sdbc::SQLException); - class MacabOrder *analyseOrderByClause( - const OSQLParseNode *pParseNode) const throw(::com::sun::star::sdbc::SQLException); - ::rtl::OUString getTableName( ) const; - void setMacabFields(class MacabResultSet *pResult) const throw(::com::sun::star::sdbc::SQLException); - void selectRecords(MacabResultSet *pResult) const throw(::com::sun::star::sdbc::SQLException); - void sortRecords(MacabResultSet *pResult) const throw(::com::sun::star::sdbc::SQLException); - - // OPropertyArrayUsageHelper - virtual ::cppu::IPropertyArrayHelper* createArrayHelper() const; - - // OPropertySetHelper - virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper(); - virtual sal_Bool SAL_CALL convertFastPropertyValue( - ::com::sun::star::uno::Any & rConvertedValue, - ::com::sun::star::uno::Any & rOldValue, - sal_Int32 nHandle, - const ::com::sun::star::uno::Any& rValue) throw (::com::sun::star::lang::IllegalArgumentException); - virtual void SAL_CALL setFastPropertyValue_NoBroadcast( - sal_Int32 nHandle, - const ::com::sun::star::uno::Any& rValue) throw (::com::sun::star::uno::Exception); - virtual void SAL_CALL getFastPropertyValue( - ::com::sun::star::uno::Any& rValue, - sal_Int32 nHandle) const; - - virtual void resetParameters() const throw(::com::sun::star::sdbc::SQLException); - virtual void getNextParameter(::rtl::OUString &rParameter) const throw(::com::sun::star::sdbc::SQLException); - virtual ~MacabCommonStatement(); - - public: - ::cppu::OBroadcastHelper& rBHelper; - - MacabCommonStatement(MacabConnection *_pConnection); - using MacabCommonStatement_BASE::operator ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >; - - // OComponentHelper - virtual void SAL_CALL disposing(); - - // XInterface - virtual void SAL_CALL release() throw(); - virtual void SAL_CALL acquire() throw(); - virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( - const ::com::sun::star::uno::Type & rType - ) throw(::com::sun::star::uno::RuntimeException); - - // XTypeProvider - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( - ) throw(::com::sun::star::uno::RuntimeException); - - // XPropertySet - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( - ) throw(::com::sun::star::uno::RuntimeException); - - // XStatement - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL executeQuery( - const ::rtl::OUString& sql ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Int32 SAL_CALL executeUpdate( - const ::rtl::OUString& sql ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual sal_Bool SAL_CALL execute( - const ::rtl::OUString& sql ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL getConnection( - ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - - // XWarningsSupplier - virtual ::com::sun::star::uno::Any SAL_CALL getWarnings( - ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL clearWarnings( - ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - - // XCancellable - virtual void SAL_CALL cancel( - ) throw(::com::sun::star::uno::RuntimeException); - - // XCloseable - virtual void SAL_CALL close( - ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); - - // other methods - inline MacabConnection* getOwnConnection() const { return m_pConnection; } - }; - - //************************************************************** - // Class MacabStatement - //************************************************************** - typedef ::cppu::ImplInheritanceHelper1< - MacabCommonStatement, ::com::sun::star::lang::XServiceInfo > MacabStatement_BASE; - - class MacabStatement : public MacabStatement_BASE - { - protected: - virtual ~MacabStatement() { } - - public: - MacabStatement(MacabConnection* _pConnection); - DECLARE_SERVICE_INFO(); - }; - } -} - -#endif // _CONNECTIVITY_MACAB_STATEMENT_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabTable.cxx b/connectivity/source/drivers/macab/MacabTable.cxx deleted file mode 100644 index ab4ff29d65..0000000000 --- a/connectivity/source/drivers/macab/MacabTable.cxx +++ /dev/null @@ -1,99 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "MacabTable.hxx" -#include "MacabTables.hxx" -#include "MacabColumns.hxx" -#include "MacabCatalog.hxx" - -using namespace connectivity::macab; -using namespace connectivity; -using namespace ::comphelper; -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; - -// ------------------------------------------------------------------------- -MacabTable::MacabTable( sdbcx::OCollection* _pTables, MacabConnection* _pConnection) - : MacabTable_TYPEDEF(_pTables, sal_True), - m_pConnection(_pConnection) -{ - construct(); -} -// ------------------------------------------------------------------------- -MacabTable::MacabTable( sdbcx::OCollection* _pTables, - MacabConnection* _pConnection, - const ::rtl::OUString& _Name, - const ::rtl::OUString& _Type, - const ::rtl::OUString& _Description , - const ::rtl::OUString& _SchemaName, - const ::rtl::OUString& _CatalogName - ) : MacabTable_TYPEDEF(_pTables,sal_True, - _Name, - _Type, - _Description, - _SchemaName, - _CatalogName), - m_pConnection(_pConnection) -{ - construct(); -} -// ------------------------------------------------------------------------- -void MacabTable::refreshColumns() -{ - TStringVector aVector; - - if (!isNew()) - { - Reference< XResultSet > xResult = m_pConnection->getMetaData()->getColumns( - Any(), - m_SchemaName, - m_Name, - ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%"))); - - if (xResult.is()) - { - Reference< XRow > xRow(xResult, UNO_QUERY); - while (xResult->next()) - aVector.push_back(xRow->getString(4)); - } - } - - if (m_pColumns) - m_pColumns->reFill(aVector); - else - m_pColumns = new MacabColumns(this,m_aMutex,aVector); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabTable.hxx b/connectivity/source/drivers/macab/MacabTable.hxx deleted file mode 100644 index 39f113368e..0000000000 --- a/connectivity/source/drivers/macab/MacabTable.hxx +++ /dev/null @@ -1,71 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_TABLE_HXX_ -#define _CONNECTIVITY_MACAB_TABLE_HXX_ - -#include "MacabConnection.hxx" -#include "connectivity/sdbcx/VTable.hxx" - -namespace connectivity -{ - namespace macab - { - typedef connectivity::sdbcx::OTable MacabTable_TYPEDEF; - - ::rtl::OUString getTypeString(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xColProp); - - class MacabTable : public MacabTable_TYPEDEF - { - ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > m_xMetaData; - MacabConnection* m_pConnection; - - public: - MacabTable( sdbcx::OCollection* _pTables, MacabConnection* _pConnection); - MacabTable( sdbcx::OCollection* _pTables, - MacabConnection* _pConnection, - const ::rtl::OUString& _Name, - const ::rtl::OUString& _Type, - const ::rtl::OUString& _Description = ::rtl::OUString(), - const ::rtl::OUString& _SchemaName = ::rtl::OUString(), - const ::rtl::OUString& _CatalogName = ::rtl::OUString() - ); - - MacabConnection* getConnection() { return m_pConnection;} - - virtual void refreshColumns(); - - ::rtl::OUString getTableName() const { return m_Name; } - ::rtl::OUString getSchema() const { return m_SchemaName; } - }; - } -} - -#endif // _CONNECTIVITY_MACAB_TABLE_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabTables.cxx b/connectivity/source/drivers/macab/MacabTables.cxx deleted file mode 100644 index 1d839f40f9..0000000000 --- a/connectivity/source/drivers/macab/MacabTables.cxx +++ /dev/null @@ -1,93 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "MacabTables.hxx" -#include "MacabTable.hxx" -#include "MacabCatalog.hxx" -#include "MacabConnection.hxx" -#include <comphelper/types.hxx> - -using namespace connectivity::macab; -using namespace connectivity; -using namespace ::comphelper; -using namespace ::cppu; -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; - -sdbcx::ObjectType MacabTables::createObject(const ::rtl::OUString& _rName) -{ - ::rtl::OUString aName,aSchema; - aSchema = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("%")); - aName = _rName; - - Sequence< ::rtl::OUString > aTypes(1); - aTypes[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("%")); - ::rtl::OUString sEmpty; - - Reference< XResultSet > xResult = m_xMetaData->getTables(Any(), aSchema, aName, aTypes); - - sdbcx::ObjectType xRet = NULL; - if (xResult.is()) - { - Reference< XRow > xRow(xResult, UNO_QUERY); - if (xResult->next()) // there can be only one table with this name - { - MacabTable* pRet = new MacabTable( - this, - static_cast<MacabCatalog&>(m_rParent).getConnection(), - aName, - xRow->getString(4), - xRow->getString(5), - sEmpty); - xRet = pRet; - } - } - ::comphelper::disposeComponent(xResult); - - return xRet; -} -// ------------------------------------------------------------------------- -void MacabTables::impl_refresh( ) throw(RuntimeException) -{ - static_cast<MacabCatalog&>(m_rParent).refreshTables(); -} -// ------------------------------------------------------------------------- -void MacabTables::disposing(void) -{ -m_xMetaData.clear(); - OCollection::disposing(); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/MacabTables.hxx b/connectivity/source/drivers/macab/MacabTables.hxx deleted file mode 100644 index 17422ce862..0000000000 --- a/connectivity/source/drivers/macab/MacabTables.hxx +++ /dev/null @@ -1,64 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_TABLES_HXX_ -#define _CONNECTIVITY_MACAB_TABLES_HXX_ - -#include "connectivity/sdbcx/VCollection.hxx" -#include <com/sun/star/sdbc/XDatabaseMetaData.hpp> - -namespace connectivity -{ - namespace macab - { - class MacabTables : public sdbcx::OCollection - { - ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > m_xMetaData; - - protected: - virtual sdbcx::ObjectType createObject(const ::rtl::OUString& _rName); - virtual void impl_refresh() throw(::com::sun::star::uno::RuntimeException); - - public: - MacabTables( - const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >& _rMetaData, - ::cppu::OWeakObject& _rParent, - ::osl::Mutex& _rMutex, - const TStringVector &_rVector) - : sdbcx::OCollection(_rParent,sal_True,_rMutex,_rVector), - m_xMetaData(_rMetaData) - { } - - virtual void SAL_CALL disposing(void); - }; - } -} - -#endif // _CONNECTIVITY_MACAB_TABLES_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/exports.dxp b/connectivity/source/drivers/macab/exports.dxp deleted file mode 100755 index 7003307892..0000000000 --- a/connectivity/source/drivers/macab/exports.dxp +++ /dev/null @@ -1 +0,0 @@ -component_getFactory diff --git a/connectivity/source/drivers/macab/macab.xcu b/connectivity/source/drivers/macab/macab.xcu deleted file mode 100644 index cbb9d0b6b0..0000000000 --- a/connectivity/source/drivers/macab/macab.xcu +++ /dev/null @@ -1,46 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!--*********************************************************************** - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************ --> -<oor:component-data oor:name="Drivers" oor:package="org.openoffice.Office.DataAccess" xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema"> - <node oor:name="Installed"> - <node oor:name="sdbc:address:macab" oor:op="replace"> - <prop oor:name="Driver"> - <value>com.sun.star.comp.sdbc.macab.Driver</value> - </prop> - <prop oor:name="DriverTypeDisplayName" oor:type="xs:string"> - <value xml:lang="en-US">Mac OS X Address Book</value> - </prop> - <node oor:name="Features"> - <node oor:name="EscapeDateTime" oor:op="replace"> - <prop oor:name="Value" oor:type="xs:boolean"> - <value>true</value> - </prop> - </node> - </node> - </node> - </node> -</oor:component-data> diff --git a/connectivity/source/drivers/macab/macab.xml b/connectivity/source/drivers/macab/macab.xml deleted file mode 100755 index e1c4b57c37..0000000000 --- a/connectivity/source/drivers/macab/macab.xml +++ /dev/null @@ -1,77 +0,0 @@ -<?xml version='1.0' encoding="UTF-8"?> -<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//W3C//DTD HTML 3.2//EN" "module-description.dtd"> -<module-description xmlns:xlink="http://www.w3.org/1999/xlink"> - <module-name> macab1 </module-name> - <component-description> - <Author>Omer bar-or</Author> - <Name>com.sun.star.comp.sdbc.macab.Driver</Name> - <description>This library implements the database driver for Mac OS address book formats.</description> - <loader-name>com.sun.star.loader.SharedLibrary</loader-name> - <language>c++</language> - <status value="alpha"/> - <supported-service>com.sun.star.sdbc.Driver</supported-service> - <service-dependency> ... </service-dependency> - </component-description> - <project-build-dependency> cppuhelper </project-build-dependency> - <project-build-dependency> cppu </project-build-dependency> - <project-build-dependency> sal </project-build-dependency> - - <runtime-module-dependency> cppuhelper </runtime-module-dependency> - <runtime-module-dependency> cppu1 </runtime-module-dependency> - <runtime-module-dependency> sal1 </runtime-module-dependency> - - <type> com.sun.star.registry.XRegistryKey </type> - <type> com.sun.star.util.XCancellable </type> - <type> com.sun.star.util.XNumberFormatter </type> - <type> com.sun.star.uno.TypeClass </type> - <type> com.sun.star.uno.XWeak </type> - <type> com.sun.star.uno.XAggregation </type> - <type> com.sun.star.uno.XComponentContext </type> - <type> com.sun.star.beans.PropertyAttribute </type> - <type> com.sun.star.beans.XPropertyState </type> - <type> com.sun.star.beans.XPropertySet </type> - <type> com.sun.star.beans.PropertyValue </type> - <type> com.sun.star.beans.XMultiPropertySet </type> - <type> com.sun.star.beans.XFastPropertySet </type> - <type> com.sun.star.lang.XSingleServiceFactory </type> - <type> com.sun.star.lang.XTypeProvider </type> - <type> com.sun.star.lang.XSingleComponentFactory </type> - <type> com.sun.star.lang.EventObject </type> - <type> com.sun.star.lang.XComponent </type> - <type> com.sun.star.lang.IllegalArgumentException </type> - <type> com.sun.star.lang.DisposedException </type> - <type> com.sun.star.lang.XMultiServiceFactory </type> - <type> com.sun.star.lang.XServiceInfo </type> - <type> com.sun.star.lang.XUnoTunnel </type> - <type> com.sun.star.java.XJavaThreadRegister_11 </type> - <type> com.sun.star.java.XJavaVM </type> - <type> com.sun.star.sdbc.FetchDirection </type> - <type> com.sun.star.sdbc.XConnection </type> - <type> com.sun.star.sdbc.XStatement </type> - <type> com.sun.star.sdbc.XResultSet </type> - <type> com.sun.star.sdbc.XResultSetMetaDataSupplier</type> - <type> com.sun.star.sdbc.XColumnLocate </type> - <type> com.sun.star.sdbc.XResultSetUpdate </type> - <type> com.sun.star.sdbc.XWarningsSupplier </type> - <type> com.sun.star.sdbc.XRowUpdate </type> - <type> com.sun.star.sdbc.XMultipleResults </type> - <type> com.sun.star.sdbc.XBatchExecution </type> - <type> com.sun.star.sdbc.XPreparedBatchExecution </type> - <type> com.sun.star.sdbc.XParameters </type> - <type> com.sun.star.sdbc.XOutParameters </type> - <type> com.sun.star.sdbc.DriverPropertyInfo </type> - <type> com.sun.star.sdbc.SQLWarning </type> - <type> com.sun.star.sdbc.XRow </type> - <type> com.sun.star.sdbc.ColumnSearch </type> - <type> com.sun.star.sdbc.ColumnValue </type> - <type> com.sun.star.sdbc.DataType </type> - <type> com.sun.star.sdbc.XDriver </type> - <type> com.sun.star.sdbc.TransactionIsolation </type> - <type> com.sun.star.sdbc.ResultSetType </type> - <type> com.sun.star.sdbc.ResultSetConcurrency </type> - <type> com.sun.star.sdbcx.XRowLocate </type> - <type> com.sun.star.sdbcx.XDeleteRows </type> - <type> com.sun.star.sdbcx.CompareBookmark </type> - <type> com.sun.star.sdb.XColumnUpdate </type> - <type> com.sun.star.sdb.XColumn </type> -</module-description> diff --git a/connectivity/source/drivers/macab/macab1.component b/connectivity/source/drivers/macab/macab1.component deleted file mode 100755 index 0a120c0418..0000000000 --- a/connectivity/source/drivers/macab/macab1.component +++ /dev/null @@ -1,34 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!--********************************************************************** -* -* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -* -* Copyright 2000, 2010 Oracle and/or its affiliates. -* -* OpenOffice.org - a multi-platform office productivity suite -* -* 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 -* <http://www.openoffice.org/license.html> -* for a copy of the LGPLv3 License. -* -**********************************************************************--> - -<component loader="com.sun.star.loader.SharedLibrary" - xmlns="http://openoffice.org/2010/uno-components"> - <implementation name="com.sun.star.comp.sdbc.macab.Driver"> - <service name="com.sun.star.sdbc.Driver"/> - </implementation> -</component> diff --git a/connectivity/source/drivers/macab/macabcondition.cxx b/connectivity/source/drivers/macab/macabcondition.cxx deleted file mode 100644 index 3faf0aa261..0000000000 --- a/connectivity/source/drivers/macab/macabcondition.cxx +++ /dev/null @@ -1,253 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "macabcondition.hxx" -#include "MacabHeader.hxx" -#include "MacabRecord.hxx" -#include "connectivity/CommonTools.hxx" - -using namespace ::connectivity::macab; -using namespace ::com::sun::star::sdbc; -// ----------------------------------------------------------------------------- -MacabCondition::~MacabCondition() -{ -} -// ----------------------------------------------------------------------------- -MacabConditionConstant::MacabConditionConstant(const sal_Bool bValue) - : MacabCondition(), - m_bValue(bValue) -{ -} -// ----------------------------------------------------------------------------- -sal_Bool MacabConditionConstant::isAlwaysTrue() const -{ - return m_bValue; -} -// ----------------------------------------------------------------------------- -sal_Bool MacabConditionConstant::isAlwaysFalse() const -{ - return !m_bValue; -} -// ----------------------------------------------------------------------------- -sal_Bool MacabConditionConstant::eval(const MacabRecord *) const -{ - return m_bValue; -} -// ----------------------------------------------------------------------------- -MacabConditionColumn::MacabConditionColumn(const MacabHeader *header, const ::rtl::OUString &sColumnName) throw(SQLException) - : MacabCondition(), - m_nFieldNumber(header->getColumnNumber(sColumnName)) -{ -} -// ----------------------------------------------------------------------------- -sal_Bool MacabConditionColumn::isAlwaysTrue() const -{ - // Sometimes true, sometimes false - return sal_False; -} -// ----------------------------------------------------------------------------- -sal_Bool MacabConditionColumn::isAlwaysFalse() const -{ - // Sometimes true, sometimes false - return sal_False; -} -// ----------------------------------------------------------------------------- -MacabConditionNull::MacabConditionNull(const MacabHeader *header, const ::rtl::OUString &sColumnName) throw(SQLException) - : MacabConditionColumn(header, sColumnName) -{ -} -// ----------------------------------------------------------------------------- -sal_Bool MacabConditionNull::eval(const MacabRecord *aRecord) const -{ - macabfield *aValue = aRecord->get(m_nFieldNumber); - - if(aValue == NULL) - return sal_True; - else if(aValue->value == NULL) - return sal_True; - else - return sal_False; -} -// ----------------------------------------------------------------------------- -MacabConditionNotNull::MacabConditionNotNull(const MacabHeader *header, const ::rtl::OUString &sColumnName) throw(SQLException) - : MacabConditionColumn(header, sColumnName) -{ -} -// ----------------------------------------------------------------------------- -sal_Bool MacabConditionNotNull::eval(const MacabRecord *aRecord) const -{ - macabfield *aValue = aRecord->get(m_nFieldNumber); - - if(aValue == NULL) - return sal_False; - else if(aValue->value == NULL) - return sal_False; - else - return sal_True; -} -// ----------------------------------------------------------------------------- -MacabConditionCompare::MacabConditionCompare(const MacabHeader *header, const ::rtl::OUString &sColumnName, const ::rtl::OUString &sMatchString) throw(SQLException) - : MacabConditionColumn(header, sColumnName), - m_sMatchString(sMatchString) -{ -} -// ----------------------------------------------------------------------------- -MacabConditionEqual::MacabConditionEqual(const MacabHeader *header, const ::rtl::OUString &sColumnName, const ::rtl::OUString &sMatchString) throw(SQLException) - : MacabConditionCompare(header, sColumnName, sMatchString) -{ -} -// ----------------------------------------------------------------------------- -sal_Bool MacabConditionEqual::eval(const MacabRecord *aRecord) const -{ - macabfield *aValue = aRecord->get(m_nFieldNumber); - - if(aValue == NULL) - return sal_False; - - macabfield *aValue2 = MacabRecord::createMacabField(m_sMatchString,aValue->type); - - if(aValue2 == NULL) - return sal_False; - - sal_Int32 nReturn = MacabRecord::compareFields(aValue, aValue2); - - delete aValue2; - return nReturn == 0; -} -// ----------------------------------------------------------------------------- -MacabConditionDifferent::MacabConditionDifferent(const MacabHeader *header, const ::rtl::OUString &sColumnName, const ::rtl::OUString &sMatchString) throw(SQLException) - : MacabConditionCompare(header, sColumnName, sMatchString) -{ -} -// ----------------------------------------------------------------------------- -sal_Bool MacabConditionDifferent::eval(const MacabRecord *aRecord) const -{ - macabfield *aValue = aRecord->get(m_nFieldNumber); - - if(aValue == NULL) - return sal_False; - - macabfield *aValue2 = MacabRecord::createMacabField(m_sMatchString,aValue->type); - - if(aValue2 == NULL) - return sal_False; - - sal_Int32 nReturn = MacabRecord::compareFields(aValue, aValue2); - - delete aValue2; - return nReturn != 0; -} -// ----------------------------------------------------------------------------- -MacabConditionSimilar::MacabConditionSimilar(const MacabHeader *header, const ::rtl::OUString &sColumnName, const ::rtl::OUString &sMatchString) throw(SQLException) - : MacabConditionCompare(header, sColumnName, sMatchString) -{ -} -// ----------------------------------------------------------------------------- -sal_Bool MacabConditionSimilar::eval(const MacabRecord *aRecord) const -{ - macabfield *aValue = aRecord->get(m_nFieldNumber); - - if(aValue == NULL) - return sal_False; - - ::rtl::OUString sName = MacabRecord::fieldToString(aValue); - - return match(m_sMatchString, sName, '\0'); -} -// ----------------------------------------------------------------------------- -MacabConditionBoolean::MacabConditionBoolean(MacabCondition *pLeft, MacabCondition *pRight) - : MacabCondition(), - m_pLeft(pLeft), - m_pRight(pRight) -{ -} -// ----------------------------------------------------------------------------- -MacabConditionBoolean::~MacabConditionBoolean() -{ - delete m_pLeft; - delete m_pRight; -} -// ----------------------------------------------------------------------------- -MacabConditionOr::MacabConditionOr(MacabCondition *pLeft, MacabCondition *pRight) - : MacabConditionBoolean(pLeft, pRight) -{ -} -// ----------------------------------------------------------------------------- -sal_Bool MacabConditionOr::isAlwaysTrue() const -{ - return m_pLeft->isAlwaysTrue() || m_pRight->isAlwaysTrue(); -} -// ----------------------------------------------------------------------------- -sal_Bool MacabConditionOr::isAlwaysFalse() const -{ - return m_pLeft->isAlwaysFalse() && m_pRight->isAlwaysFalse(); -} -// ----------------------------------------------------------------------------- -sal_Bool MacabConditionOr::eval(const MacabRecord *aRecord) const -{ - // We avoid evaluating terms as much as we can - if (m_pLeft->isAlwaysTrue() || m_pRight->isAlwaysTrue()) return sal_True; - if (m_pLeft->isAlwaysFalse() && m_pRight->isAlwaysFalse()) return sal_False; - - if (m_pLeft->eval(aRecord)) return sal_True; - if (m_pRight->eval(aRecord)) return sal_True; - - return sal_False; -} -// ----------------------------------------------------------------------------- -MacabConditionAnd::MacabConditionAnd(MacabCondition *pLeft, MacabCondition *pRight) - : MacabConditionBoolean(pLeft, pRight) -{ -} -// ----------------------------------------------------------------------------- -sal_Bool MacabConditionAnd::isAlwaysTrue() const -{ - return m_pLeft->isAlwaysTrue() && m_pRight->isAlwaysTrue(); -} -// ----------------------------------------------------------------------------- -sal_Bool MacabConditionAnd::isAlwaysFalse() const -{ - return m_pLeft->isAlwaysFalse() || m_pRight->isAlwaysFalse(); -} -// ----------------------------------------------------------------------------- -sal_Bool MacabConditionAnd::eval(const MacabRecord *aRecord) const -{ - // We avoid evaluating terms as much as we can - if (m_pLeft->isAlwaysFalse() || m_pRight->isAlwaysFalse()) return sal_False; - if (m_pLeft->isAlwaysTrue() && m_pRight->isAlwaysTrue()) return sal_True; - - if (!m_pLeft->eval(aRecord)) return sal_False; - if (!m_pRight->eval(aRecord)) return sal_False; - - return sal_True; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/macabcondition.hxx b/connectivity/source/drivers/macab/macabcondition.hxx deleted file mode 100644 index 29f27bc52f..0000000000 --- a/connectivity/source/drivers/macab/macabcondition.hxx +++ /dev/null @@ -1,170 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_CONDITION_HXX_ -#define _CONNECTIVITY_MACAB_CONDITION_HXX_ - -#include "MacabHeader.hxx" -#include "MacabRecord.hxx" - -#include <comphelper/types.hxx> -#include <connectivity/dbexception.hxx> - -namespace connectivity -{ - namespace macab - { -// ----------------------------------------------------------------------------- -class MacabCondition -{ - public: - virtual ~MacabCondition(); - virtual sal_Bool isAlwaysTrue() const = 0; - virtual sal_Bool isAlwaysFalse() const = 0; - virtual sal_Bool eval(const MacabRecord *aRecord) const = 0; -}; -// ----------------------------------------------------------------------------- -class MacabConditionConstant : public MacabCondition -{ - protected: - sal_Bool m_bValue; - - public: - MacabConditionConstant(const sal_Bool bValue); - virtual sal_Bool isAlwaysTrue() const; - virtual sal_Bool isAlwaysFalse() const; - virtual sal_Bool eval(const MacabRecord *aRecord) const; -}; -// ----------------------------------------------------------------------------- -class MacabConditionColumn : public MacabCondition -{ - protected: - sal_Int32 m_nFieldNumber; - - public: - MacabConditionColumn( - const MacabHeader *header, - const ::rtl::OUString &sColumnName) throw(::com::sun::star::sdbc::SQLException); - virtual sal_Bool isAlwaysTrue() const; - virtual sal_Bool isAlwaysFalse() const; -}; -// ----------------------------------------------------------------------------- -class MacabConditionNull : public MacabConditionColumn -{ - public: - MacabConditionNull( - const MacabHeader *header, - const ::rtl::OUString &sColumnName) throw(::com::sun::star::sdbc::SQLException); - virtual sal_Bool eval(const MacabRecord *aRecord) const; -}; -// ----------------------------------------------------------------------------- -class MacabConditionNotNull : public MacabConditionColumn -{ - public: - MacabConditionNotNull( - const MacabHeader *header, - const ::rtl::OUString &sColumnName) throw(::com::sun::star::sdbc::SQLException); - virtual sal_Bool eval(const MacabRecord *aRecord) const; -}; -// ----------------------------------------------------------------------------- -class MacabConditionCompare : public MacabConditionColumn -{ - protected: - const ::rtl::OUString m_sMatchString; - - public: - MacabConditionCompare( - const MacabHeader *header, - const ::rtl::OUString &sColumnName, - const ::rtl::OUString &sMatchString) throw(::com::sun::star::sdbc::SQLException); -}; -// ----------------------------------------------------------------------------- -class MacabConditionEqual : public MacabConditionCompare -{ - public: - MacabConditionEqual( - const MacabHeader *header, - const ::rtl::OUString &sColumnName, - const ::rtl::OUString &sMatchString) throw(::com::sun::star::sdbc::SQLException); - virtual sal_Bool eval(const MacabRecord *aRecord) const; -}; -// ----------------------------------------------------------------------------- -class MacabConditionDifferent : public MacabConditionCompare -{ - public: - MacabConditionDifferent( - const MacabHeader *header, - const ::rtl::OUString &sColumnName, - const ::rtl::OUString &sMatchString) throw(::com::sun::star::sdbc::SQLException); - virtual sal_Bool eval(const MacabRecord *aRecord) const; -}; -// ----------------------------------------------------------------------------- -class MacabConditionSimilar : public MacabConditionCompare -{ - public: - MacabConditionSimilar( - const MacabHeader *header, - const ::rtl::OUString &sColumnName, - const ::rtl::OUString &sMatchString) throw(::com::sun::star::sdbc::SQLException); - virtual sal_Bool eval(const MacabRecord *aRecord) const; -}; -// ----------------------------------------------------------------------------- -class MacabConditionBoolean : public MacabCondition -{ - protected: - MacabCondition *m_pLeft, *m_pRight; - - public: - MacabConditionBoolean(MacabCondition *pLeft, MacabCondition *pRight); - virtual ~MacabConditionBoolean(); -}; -// ----------------------------------------------------------------------------- -class MacabConditionOr : public MacabConditionBoolean -{ - public: - MacabConditionOr(MacabCondition *pLeft, MacabCondition *pRight); - virtual sal_Bool isAlwaysTrue() const; - virtual sal_Bool isAlwaysFalse() const; - virtual sal_Bool eval(const MacabRecord *aRecord) const; -}; -// ----------------------------------------------------------------------------- -class MacabConditionAnd : public MacabConditionBoolean -{ - public: - MacabConditionAnd(MacabCondition *pLeft, MacabCondition *pRight); - virtual sal_Bool isAlwaysTrue() const; - virtual sal_Bool isAlwaysFalse() const; - virtual sal_Bool eval(const MacabRecord *aRecord) const; -}; -// ----------------------------------------------------------------------------- - } -} - -#endif // _CONNECTIVITY_MACAB_CONDITION_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/macaborder.cxx b/connectivity/source/drivers/macab/macaborder.cxx deleted file mode 100644 index fa8ba7a1ab..0000000000 --- a/connectivity/source/drivers/macab/macaborder.cxx +++ /dev/null @@ -1,89 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_connectivity.hxx" - -#include "macaborder.hxx" -#include "MacabHeader.hxx" -#include "MacabRecord.hxx" - -using namespace ::connectivity::macab; - -MacabOrder::~MacabOrder() -{ -} -// ----------------------------------------------------------------------------- -MacabSimpleOrder::MacabSimpleOrder(MacabHeader *header, ::rtl::OUString &sColumnName, sal_Bool bAscending) - : MacabOrder(), - m_nFieldNumber(header->getColumnNumber(sColumnName)), - m_bAscending(bAscending) -{ -} -// ----------------------------------------------------------------------------- -sal_Int32 MacabSimpleOrder::compare(const MacabRecord *record1, const MacabRecord *record2) const -{ - sal_Int32 result; - - result = MacabRecord::compareFields(record1->get(m_nFieldNumber), record2->get(m_nFieldNumber)); - - if (!m_bAscending) result = -result; - - return result; -} -// ----------------------------------------------------------------------------- -MacabComplexOrder::MacabComplexOrder() - : MacabOrder(), - m_aOrders() -{ -} -// ----------------------------------------------------------------------------- -MacabComplexOrder::~MacabComplexOrder() -{ - for (sal_uInt32 i = 0; i < m_aOrders.size(); i++) - delete m_aOrders[i]; -} -// ----------------------------------------------------------------------------- -void MacabComplexOrder::addOrder(MacabOrder *pOrder) -{ - m_aOrders.push_back(pOrder); -} -// ----------------------------------------------------------------------------- -sal_Int32 MacabComplexOrder::compare(const MacabRecord *record1, const MacabRecord *record2) const -{ - for (sal_uInt32 i = 0; i < m_aOrders.size(); i++) - { - const MacabOrder *pOrder = m_aOrders[i]; - sal_Int32 result = pOrder->compare(record1, record2); - - if (result) return result; - } - return 0; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/macaborder.hxx b/connectivity/source/drivers/macab/macaborder.hxx deleted file mode 100644 index bad4bc8133..0000000000 --- a/connectivity/source/drivers/macab/macaborder.hxx +++ /dev/null @@ -1,77 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_ORDER_HXX_ -#define _CONNECTIVITY_MACAB_ORDER_HXX_ - -#include "rtl/ustring.hxx" -#include "MacabHeader.hxx" -#include "MacabRecord.hxx" - -#include <vector> - -namespace connectivity -{ - namespace macab - { - class MacabOrder - { - public: - virtual ~MacabOrder(); - - virtual sal_Int32 compare(const MacabRecord *record1, const MacabRecord *record2) const = 0; - }; - - class MacabSimpleOrder : public MacabOrder - { - sal_Int32 m_nFieldNumber; - sal_Bool m_bAscending; - - public: - MacabSimpleOrder(MacabHeader *header, ::rtl::OUString &sColumnName, sal_Bool bAscending); - - virtual sal_Int32 compare(const MacabRecord *record1, const MacabRecord *record2) const; - }; - - class MacabComplexOrder : public MacabOrder - { - ::std::vector<MacabOrder *> m_aOrders; - - public: - MacabComplexOrder(); - virtual ~MacabComplexOrder(); - - void addOrder(MacabOrder *pOrder); - virtual sal_Int32 compare(const MacabRecord *record1, const MacabRecord *record2) const; - }; - } -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/macabutilities.hxx b/connectivity/source/drivers/macab/macabutilities.hxx deleted file mode 100644 index 237a7e4456..0000000000 --- a/connectivity/source/drivers/macab/macabutilities.hxx +++ /dev/null @@ -1,152 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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 - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _CONNECTIVITY_MACAB_UTILITIES_HXX_ -#define _CONNECTIVITY_MACAB_UTILITIES_HXX_ - -#include <com/sun/star/util/DateTime.hpp> -#include <com/sun/star/sdbc/DataType.hpp> - -#include <time.h> -#include <premac.h> -#include <Carbon/Carbon.h> -#include <AddressBook/ABAddressBookC.h> -#include <postmac.h> - -namespace connectivity -{ - namespace macab - { - // ------------------------------------------------------------------------- - inline ::rtl::OUString CFStringToOUString(const CFStringRef sOrig) - { - /* Copied all-but directly from code by Florian Heckl in - * cws_src680_aquafilepicker01 - * File was: fpicker/source/aqua/CFStringUtilities - * I only removed commented debugging lines and changed variable - * names. - */ - if (NULL == sOrig) { - return rtl::OUString(); - } - - CFRetain(sOrig); - CFIndex nStringLength = CFStringGetLength(sOrig); - - UniChar unichars[nStringLength+1]; - - //'close' the string buffer correctly - unichars[nStringLength] = '\0'; - - CFStringGetCharacters (sOrig, CFRangeMake(0,nStringLength), unichars); - CFRelease(sOrig); - - return rtl::OUString(unichars); - } - - // ------------------------------------------------------------------------- - inline CFStringRef OUStringToCFString(const ::rtl::OUString& aString) - { - /* Copied directly from code by Florian Heckl in - * cws_src680_aquafilepicker01 - * File was: fpicker/source/aqua/CFStringUtilities - */ - - CFStringRef ref = CFStringCreateWithCharacters(kCFAllocatorDefault, aString.getStr(), aString.getLength()); - - return ref; - } - - // ------------------------------------------------------------------------- - inline com::sun::star::util::DateTime CFDateToDateTime(const CFDateRef _cfDate) - { - /* Carbon can give us the time since 2001 of any CFDateRef, - * and it also stores the time since 1970 as a constant, - * basically allowing us to get the unixtime of any - * CFDateRef. From there, it is just a matter of choosing what - * we want to do with it. - */ - com::sun::star::util::DateTime nRet; - double timeSince2001 = CFDateGetAbsoluteTime(_cfDate); - time_t unixtime = timeSince2001+kCFAbsoluteTimeIntervalSince1970; - struct tm *ptm = localtime(&unixtime); - nRet.Year = ptm->tm_year+1900; - nRet.Month = ptm->tm_mon+1; - nRet.Day = ptm->tm_mday; - nRet.Hours = ptm->tm_hour; - nRet.Minutes = ptm->tm_min; - nRet.Seconds = ptm->tm_sec; - nRet.HundredthSeconds = 0; - return nRet; - } - - // ------------------------------------------------------------------------- - inline ::rtl::OUString fixLabel(const ::rtl::OUString _originalLabel) - { - /* Get the length, and make sure that there is actually a string - * here. - */ - if(_originalLabel.indexOf(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("_$!<"))) == 0) - { - return _originalLabel.copy(4,_originalLabel.getLength()-8); - } - - return _originalLabel; - } - - // ------------------------------------------------------------------------- - inline sal_Int32 ABTypeToDataType(const ABPropertyType _abType) - { - sal_Int32 dataType; - switch(_abType) - { - case kABStringProperty: - dataType = ::com::sun::star::sdbc::DataType::CHAR; - break; - case kABDateProperty: - dataType = ::com::sun::star::sdbc::DataType::TIMESTAMP; - break; - case kABIntegerProperty: - dataType = ::com::sun::star::sdbc::DataType::INTEGER; - break; - case kABRealProperty: - dataType = ::com::sun::star::sdbc::DataType::FLOAT; - break; - default: - dataType = -1; - } - return dataType; - } - - void impl_throwError(sal_uInt16 _nErrorId); - } -} - -#endif // _ CONNECTIVITY_MACAB_UTILITIES_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/macab/makefile.mk b/connectivity/source/drivers/macab/makefile.mk deleted file mode 100755 index b2e8db65dc..0000000000 --- a/connectivity/source/drivers/macab/makefile.mk +++ /dev/null @@ -1,138 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# 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 -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ=..$/..$/.. -PRJINC=..$/.. -PRJNAME=connectivity -TARGET=macab -TARGET2=$(TARGET)drv -VISIBILITY_HIDDEN=TRUE -ENABLE_EXCEPTIONS=TRUE - -# --- Settings ---------------------------------- - -.INCLUDE : $(PRJ)$/makefile.pmk -.INCLUDE : $(PRJ)$/version.mk - -.IF "$(GUI)" == "UNX" -.IF "$(OS)" == "MACOSX" - -# === MACAB base library ========================== - -# --- Files ------------------------------------- - -SLOFILES= \ - $(SLO)$/MacabDriver.obj \ - $(SLO)$/MacabServices.obj - -DEPOBJFILES= \ - $(SLO2FILES) - -# --- Library ----------------------------------- - -SHL1TARGET= $(TARGET)$(MACAB_MAJOR) -SHL1OBJS=$(SLOFILES) -SHL1STDLIBS=\ - $(CPPULIB) \ - $(CPPUHELPERLIB) \ - $(DBTOOLSLIB) \ - $(SALHELPERLIB) \ - $(SALLIB) - -SHL1DEPN= -SHL1IMPLIB= i$(TARGET) - -SHL1DEF= $(MISC)$/$(SHL1TARGET).def - -DEF1NAME= $(SHL1TARGET) - -# === MACAB impl library ========================== - -# --- Files ------------------------------------- - -SLO2FILES=\ - $(SLO)$/MacabColumns.obj \ - $(SLO)$/MacabTable.obj \ - $(SLO)$/MacabTables.obj \ - $(SLO)$/MacabCatalog.obj \ - $(SLO)$/MacabResultSet.obj \ - $(SLO)$/MacabStatement.obj \ - $(SLO)$/MacabPreparedStatement.obj \ - $(SLO)$/MacabDatabaseMetaData.obj \ - $(SLO)$/MacabConnection.obj \ - $(SLO)$/MacabResultSetMetaData.obj \ - $(SLO)$/macabcondition.obj \ - $(SLO)$/macaborder.obj \ - $(SLO)$/MacabRecord.obj \ - $(SLO)$/MacabRecords.obj \ - $(SLO)$/MacabHeader.obj \ - $(SLO)$/MacabGroup.obj \ - $(SLO)$/MacabAddressBook.obj - -MACAB_LIB=-framework Carbon -framework AddressBook - -# --- Library ----------------------------------- - -SHL2TARGET= $(TARGET2)$(MACAB_MAJOR) -SHL2OBJS=$(SLO2FILES) -SHL2STDLIBS=\ - $(CPPULIB) \ - $(CPPUHELPERLIB) \ - $(SALHELPERLIB) \ - $(SALLIB) \ - $(DBTOOLSLIB) \ - $(COMPHELPERLIB) \ - $(MACAB_LIB) - -SHL2DEPN= -SHL2IMPLIB= i$(TARGET2) - -SHL2DEF= $(MISC)$/$(SHL2TARGET).def - -DEF2NAME= $(SHL2TARGET) - -# --- Targets ----------------------------------- -.ELSE # "$(OS)" == "MACOSX" -dummy: - @echo Not using Mac OS X - nothing to build -.ENDIF - -.ELSE # "$(GUI)" == "UNX" -dummy: - @echo "Nothing to build for GUI $(GUI)" -.ENDIF - -.INCLUDE : $(PRJ)$/target.pmk - - -ALLTAR : $(MISC)/macab1.component - -$(MISC)/macab1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ - macab1.component - $(XSLTPROC) --nonet --stringparam uri \ - '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ - $(SOLARENV)/bin/createcomponent.xslt macab1.component |