Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*************************************************************************
3 : *
4 : * Effective License of whole file:
5 : *
6 : * This library is free software; you can redistribute it and/or
7 : * modify it under the terms of the GNU Lesser General Public
8 : * License version 2.1, as published by the Free Software Foundation.
9 : *
10 : * This library is distributed in the hope that it will be useful,
11 : * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 : * Lesser General Public License for more details.
14 : *
15 : * You should have received a copy of the GNU Lesser General Public
16 : * License along with this library; if not, write to the Free Software
17 : * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
18 : * MA 02111-1307 USA
19 : *
20 : * Parts "Copyright by Sun Microsystems, Inc" prior to August 2011:
21 : *
22 : * The Contents of this file are made available subject to the terms of
23 : * the GNU Lesser General Public License Version 2.1
24 : *
25 : * Copyright: 2000 by Sun Microsystems, Inc.
26 : *
27 : * Contributor(s): Joerg Budischewski
28 : *
29 : * All parts contributed on or after August 2011:
30 : *
31 : * This Source Code Form is subject to the terms of the Mozilla Public
32 : * License, v. 2.0. If a copy of the MPL was not distributed with this
33 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
34 : *
35 : ************************************************************************/
36 :
37 : #ifndef _PQ_COLUMNS_HXX_
38 : #define _PQ_COLUMNS_HXX_
39 :
40 : #include "pq_xcontainer.hxx"
41 : #include "pq_xbase.hxx"
42 :
43 : namespace pq_sdbc_driver
44 : {
45 :
46 : void alterColumnByDescriptor(
47 : const OUString & schemaName,
48 : const OUString & tableName,
49 : ConnectionSettings *settings,
50 : const com::sun::star::uno::Reference< com::sun::star::sdbc::XStatement > &stmt,
51 : const com::sun::star::uno::Reference< com::sun::star::beans::XPropertySet > & past,
52 : const com::sun::star::uno::Reference< com::sun::star::beans::XPropertySet > & future);
53 :
54 : OUString columnMetaData2SDBCX(
55 : ReflectionBase *pBase, const com::sun::star::uno::Reference< com::sun::star::sdbc::XRow > &xRow );
56 :
57 : class Columns : public Container
58 : {
59 : OUString m_schemaName;
60 : OUString m_tableName;
61 :
62 : public: // instances Columns 'exception safe'
63 : static com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > create(
64 : const ::rtl::Reference< RefCountedMutex > & refMutex,
65 : const ::com::sun::star::uno::Reference< com::sun::star::sdbc::XConnection > & origin,
66 : ConnectionSettings *pSettings,
67 : const OUString &schemaName,
68 : const OUString &tableName,
69 : Columns **pColumns);
70 :
71 : protected:
72 : Columns(
73 : const ::rtl::Reference< RefCountedMutex > & refMutex,
74 : const ::com::sun::star::uno::Reference< com::sun::star::sdbc::XConnection > & origin,
75 : ConnectionSettings *pSettings,
76 : const OUString &schemaName,
77 : const OUString &tableName);
78 :
79 :
80 : virtual ~Columns();
81 :
82 : public: // XAppend
83 : virtual void SAL_CALL appendByDescriptor(
84 : const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor )
85 : throw (::com::sun::star::sdbc::SQLException,
86 : ::com::sun::star::container::ElementExistException,
87 : ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
88 :
89 : // public: // XDrop
90 : // virtual void SAL_CALL dropByName( const OUString& elementName )
91 : // throw (::com::sun::star::sdbc::SQLException,
92 : // ::com::sun::star::container::NoSuchElementException,
93 : // ::com::sun::star::uno::RuntimeException);
94 : virtual void SAL_CALL dropByIndex( sal_Int32 index )
95 : throw (::com::sun::star::sdbc::SQLException,
96 : ::com::sun::star::lang::IndexOutOfBoundsException,
97 : ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
98 :
99 : public: // XRefreshable
100 : virtual void SAL_CALL refresh( ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
101 :
102 : public: // XDataDescriptorFactory
103 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL createDataDescriptor( )
104 : throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
105 : };
106 :
107 :
108 0 : class ColumnDescriptors : public Container
109 : {
110 : public:
111 : ColumnDescriptors(
112 : const ::rtl::Reference< RefCountedMutex > & refMutex,
113 : const ::com::sun::star::uno::Reference< com::sun::star::sdbc::XConnection > & origin,
114 : ConnectionSettings *pSettings );
115 :
116 : public: // XDataDescriptorFactory
117 : virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > SAL_CALL createDataDescriptor( )
118 : throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
119 : };
120 :
121 : }
122 : #endif
123 :
124 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|