Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : */
9 :
10 : #ifndef INCLUDED_CONNECTIVITY_SOURCE_DRIVERS_FIREBIRD_TABLE_HXX
11 : #define INCLUDED_CONNECTIVITY_SOURCE_DRIVERS_FIREBIRD_TABLE_HXX
12 :
13 : #include "Tables.hxx"
14 :
15 : #include <connectivity/TTableHelper.hxx>
16 :
17 : namespace connectivity
18 : {
19 : namespace firebird
20 : {
21 :
22 : /**
23 : * Implements sdbcx.Table. We don't support table renaming (XRename)
24 : * hence the appropriate methods are overridden.
25 : */
26 4 : class Table: public OTableHelper
27 : {
28 : private:
29 : ::osl::Mutex& m_rMutex;
30 : sal_Int32 m_nPrivileges;
31 :
32 : /**
33 : * Get the ALTER TABLE [TABLE] ALTER [COLUMN] String.
34 : * Includes a trailing space.
35 : */
36 : ::rtl::OUString getAlterTableColumn(const ::rtl::OUString& rColumn);
37 :
38 : protected:
39 : void construct() SAL_OVERRIDE;
40 :
41 : public:
42 : Table(Tables* pTables,
43 : ::osl::Mutex& rMutex,
44 : const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _xConnection);
45 : Table(Tables* pTables,
46 : ::osl::Mutex& rMutex,
47 : const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _xConnection,
48 : const ::rtl::OUString& rName,
49 : const ::rtl::OUString& rType,
50 : const ::rtl::OUString& rDescription);
51 :
52 : // OTableHelper
53 : virtual ::connectivity::sdbcx::OCollection* createColumns(
54 : const ::connectivity::TStringVector& rNames) SAL_OVERRIDE;
55 : virtual ::connectivity::sdbcx::OCollection* createKeys(
56 : const ::connectivity::TStringVector& rNames) SAL_OVERRIDE;
57 : virtual ::connectivity::sdbcx::OCollection* createIndexes(
58 : const ::connectivity::TStringVector& rNames) SAL_OVERRIDE;
59 :
60 : // XAlterTable
61 : /**
62 : * See ::com::sun::star::sdbcx::ColumnDescriptor for details of
63 : * rDescriptor.
64 : */
65 : virtual void SAL_CALL alterColumnByName(
66 : const ::rtl::OUString& rColName,
67 : const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& rDescriptor)
68 : throw(::com::sun::star::sdbc::SQLException,
69 : ::com::sun::star::container::NoSuchElementException,
70 : ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
71 :
72 : // XRename -- UNSUPPORTED
73 : virtual void SAL_CALL rename(const ::rtl::OUString& sName)
74 : throw(::com::sun::star::sdbc::SQLException,
75 : ::com::sun::star::container::ElementExistException,
76 : ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
77 :
78 : //XInterface
79 : virtual ::com::sun::star::uno::Any
80 : SAL_CALL queryInterface(const ::com::sun::star::uno::Type & rType)
81 : throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
82 :
83 : //XTypeProvider
84 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type >
85 : SAL_CALL getTypes()
86 : throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
87 :
88 : };
89 :
90 : } // namespace firebird
91 : } // namespace connectivity
92 :
93 : #endif // INCLUDED_CONNECTIVITY_SOURCE_DRIVERS_FIREBIRD_TABLE_HXX
94 :
95 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|