1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski #ifndef _DBA_CORE_CONNECTION_HXX_
24*b1cdbd2cSJim Jagielski #define _DBA_CORE_CONNECTION_HXX_
25*b1cdbd2cSJim Jagielski 
26*b1cdbd2cSJim Jagielski #include "apitools.hxx"
27*b1cdbd2cSJim Jagielski #include "querycontainer.hxx"
28*b1cdbd2cSJim Jagielski #include "tablecontainer.hxx"
29*b1cdbd2cSJim Jagielski #include "viewcontainer.hxx"
30*b1cdbd2cSJim Jagielski #include "RefreshListener.hxx"
31*b1cdbd2cSJim Jagielski 
32*b1cdbd2cSJim Jagielski /** === begin UNO includes === **/
33*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XChild.hpp>
34*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/DisposedException.hpp>
35*b1cdbd2cSJim Jagielski #include <com/sun/star/sdb/XSQLQueryComposerFactory.hpp>
36*b1cdbd2cSJim Jagielski #include <com/sun/star/sdb/XCommandPreparation.hpp>
37*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbcx/XTablesSupplier.hpp>
38*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbcx/XViewsSupplier.hpp>
39*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbcx/XUsersSupplier.hpp>
40*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbcx/XGroupsSupplier.hpp>
41*b1cdbd2cSJim Jagielski #include <com/sun/star/sdb/XQueriesSupplier.hpp>
42*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XMultiServiceFactory.hpp>
43*b1cdbd2cSJim Jagielski #include <com/sun/star/sdb/tools/XConnectionTools.hpp>
44*b1cdbd2cSJim Jagielski #include <com/sun/star/sdb/application/XTableUIProvider.hpp>
45*b1cdbd2cSJim Jagielski /** === end UNO includes === **/
46*b1cdbd2cSJim Jagielski 
47*b1cdbd2cSJim Jagielski #if ! defined(INCLUDED_COMPHELPER_IMPLBASE_VAR_HXX_14)
48*b1cdbd2cSJim Jagielski #define INCLUDED_COMPHELPER_IMPLBASE_VAR_HXX_14
49*b1cdbd2cSJim Jagielski #define COMPHELPER_IMPLBASE_INTERFACE_NUMBER 14
50*b1cdbd2cSJim Jagielski #include <comphelper/implbase_var.hxx>
51*b1cdbd2cSJim Jagielski #endif
52*b1cdbd2cSJim Jagielski #include <comphelper/componentcontext.hxx>
53*b1cdbd2cSJim Jagielski #include <comphelper/stl_types.hxx>
54*b1cdbd2cSJim Jagielski #include <connectivity/ConnectionWrapper.hxx>
55*b1cdbd2cSJim Jagielski #include <connectivity/warningscontainer.hxx>
56*b1cdbd2cSJim Jagielski 
57*b1cdbd2cSJim Jagielski //........................................................................
58*b1cdbd2cSJim Jagielski namespace dbaccess
59*b1cdbd2cSJim Jagielski {
60*b1cdbd2cSJim Jagielski //........................................................................
61*b1cdbd2cSJim Jagielski 
62*b1cdbd2cSJim Jagielski //==========================================================================
63*b1cdbd2cSJim Jagielski //==========================================================================
64*b1cdbd2cSJim Jagielski typedef ::comphelper::ImplHelper14  <   ::com::sun::star::container::XChild
65*b1cdbd2cSJim Jagielski                                     ,   ::com::sun::star::sdbcx::XTablesSupplier
66*b1cdbd2cSJim Jagielski                                     ,   ::com::sun::star::sdbcx::XViewsSupplier
67*b1cdbd2cSJim Jagielski                                     ,   ::com::sun::star::sdbc::XConnection
68*b1cdbd2cSJim Jagielski                                     ,   ::com::sun::star::sdbc::XWarningsSupplier
69*b1cdbd2cSJim Jagielski                                     ,   ::com::sun::star::sdb::XQueriesSupplier
70*b1cdbd2cSJim Jagielski                                     ,   ::com::sun::star::sdb::XSQLQueryComposerFactory
71*b1cdbd2cSJim Jagielski                                     ,   ::com::sun::star::sdb::XCommandPreparation
72*b1cdbd2cSJim Jagielski                                     ,   ::com::sun::star::lang::XServiceInfo
73*b1cdbd2cSJim Jagielski                                     ,   ::com::sun::star::lang::XMultiServiceFactory
74*b1cdbd2cSJim Jagielski                                     ,   ::com::sun::star::sdbcx::XUsersSupplier
75*b1cdbd2cSJim Jagielski                                     ,   ::com::sun::star::sdbcx::XGroupsSupplier
76*b1cdbd2cSJim Jagielski                                     ,   ::com::sun::star::sdb::tools::XConnectionTools
77*b1cdbd2cSJim Jagielski                                     ,   ::com::sun::star::sdb::application::XTableUIProvider
78*b1cdbd2cSJim Jagielski                                     >   OConnection_Base;
79*b1cdbd2cSJim Jagielski 
80*b1cdbd2cSJim Jagielski class ODatabaseSource;
81*b1cdbd2cSJim Jagielski //==========================================================================
82*b1cdbd2cSJim Jagielski //= OConnection
83*b1cdbd2cSJim Jagielski //==========================================================================
84*b1cdbd2cSJim Jagielski class OConnection			:public ::comphelper::OBaseMutex
85*b1cdbd2cSJim Jagielski 							,public OSubComponent
86*b1cdbd2cSJim Jagielski 							,public ::connectivity::OConnectionWrapper
87*b1cdbd2cSJim Jagielski 							,public OConnection_Base
88*b1cdbd2cSJim Jagielski 							,public IRefreshListener
89*b1cdbd2cSJim Jagielski {
90*b1cdbd2cSJim Jagielski protected:
91*b1cdbd2cSJim Jagielski 	::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XTablesSupplier >
92*b1cdbd2cSJim Jagielski 							m_xMasterTables; // just to avoid the recreation of the catalog
93*b1cdbd2cSJim Jagielski 	OWeakRefArray			m_aStatements;
94*b1cdbd2cSJim Jagielski 	::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >
95*b1cdbd2cSJim Jagielski                             m_xQueries;
96*b1cdbd2cSJim Jagielski 	OWeakRefArray			m_aComposers;
97*b1cdbd2cSJim Jagielski 
98*b1cdbd2cSJim Jagielski 	// the filter as set on the parent data link at construction of the connection
99*b1cdbd2cSJim Jagielski 	::com::sun::star::uno::Sequence< ::rtl::OUString >	m_aTableFilter;
100*b1cdbd2cSJim Jagielski 	::com::sun::star::uno::Sequence< ::rtl::OUString >	m_aTableTypeFilter;
101*b1cdbd2cSJim Jagielski     ::comphelper::ComponentContext                      m_aContext;
102*b1cdbd2cSJim Jagielski 	::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >				        m_xMasterConnection;
103*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::sdb::tools::XConnectionTools >          m_xConnectionTools;
104*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference< ::com::sun::star::sdb::application::XTableUIProvider >    m_xTableUIProvider;
105*b1cdbd2cSJim Jagielski 
106*b1cdbd2cSJim Jagielski     // defines the helper services for example to query the command of a view
107*b1cdbd2cSJim Jagielski     // @ see com.sun.star.sdb.tools.XViewAccess
108*b1cdbd2cSJim Jagielski     DECLARE_STL_USTRINGACCESS_MAP( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>, TSupportServices);
109*b1cdbd2cSJim Jagielski     TSupportServices                m_aSupportServices;
110*b1cdbd2cSJim Jagielski 
111*b1cdbd2cSJim Jagielski 
112*b1cdbd2cSJim Jagielski 	OTableContainer*			    m_pTables;
113*b1cdbd2cSJim Jagielski 	OViewContainer*				    m_pViews;
114*b1cdbd2cSJim Jagielski     ::dbtools::WarningsContainer    m_aWarnings;
115*b1cdbd2cSJim Jagielski     oslInterlockedCount             m_nInAppend;
116*b1cdbd2cSJim Jagielski 	sal_Bool					    m_bSupportsViews;		// true when the getTableTypes return "VIEW" as type
117*b1cdbd2cSJim Jagielski 	sal_Bool					    m_bSupportsUsers;
118*b1cdbd2cSJim Jagielski 	sal_Bool					    m_bSupportsGroups;
119*b1cdbd2cSJim Jagielski 
120*b1cdbd2cSJim Jagielski protected:
121*b1cdbd2cSJim Jagielski 	virtual ~OConnection();
122*b1cdbd2cSJim Jagielski public:
123*b1cdbd2cSJim Jagielski 	OConnection(ODatabaseSource& _rDB
124*b1cdbd2cSJim Jagielski 				,::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxMaster
125*b1cdbd2cSJim Jagielski 				,const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB);
126*b1cdbd2cSJim Jagielski 
127*b1cdbd2cSJim Jagielski // com::sun::star::lang::XTypeProvider
128*b1cdbd2cSJim Jagielski 	virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException);
129*b1cdbd2cSJim Jagielski 	virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException);
130*b1cdbd2cSJim Jagielski 
131*b1cdbd2cSJim Jagielski // com::sun::star::uno::XInterface
132*b1cdbd2cSJim Jagielski 	virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw (::com::sun::star::uno::RuntimeException);
133*b1cdbd2cSJim Jagielski         virtual void SAL_CALL acquire() throw( );
134*b1cdbd2cSJim Jagielski     virtual void SAL_CALL release() throw( );
135*b1cdbd2cSJim Jagielski 
136*b1cdbd2cSJim Jagielski // OComponentHelper
137*b1cdbd2cSJim Jagielski 	virtual void SAL_CALL disposing(void);
138*b1cdbd2cSJim Jagielski 
139*b1cdbd2cSJim Jagielski // ::com::sun::star::container::XChild
140*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getParent(  ) throw(::com::sun::star::uno::RuntimeException);
141*b1cdbd2cSJim Jagielski     virtual void SAL_CALL setParent( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& Parent ) throw(::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException);
142*b1cdbd2cSJim Jagielski 
143*b1cdbd2cSJim Jagielski // ::com::sun::star::sdbcx::XTablesSupplier
144*b1cdbd2cSJim Jagielski 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getTables(  ) throw(::com::sun::star::uno::RuntimeException);
145*b1cdbd2cSJim Jagielski // ::com::sun::star::sdbcx::XViewsSupplier
146*b1cdbd2cSJim Jagielski 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getViews(  ) throw(::com::sun::star::uno::RuntimeException);
147*b1cdbd2cSJim Jagielski 
148*b1cdbd2cSJim Jagielski // ::com::sun::star::sdb::XQueriesSupplier
149*b1cdbd2cSJim Jagielski 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getQueries(  ) throw(::com::sun::star::uno::RuntimeException);
150*b1cdbd2cSJim Jagielski 
151*b1cdbd2cSJim Jagielski // ::com::sun::star::sdb::XSQLQueryComposerFactory
152*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSQLQueryComposer > SAL_CALL createQueryComposer(  ) throw(::com::sun::star::uno::RuntimeException);
153*b1cdbd2cSJim Jagielski 
154*b1cdbd2cSJim Jagielski // ::com::sun::star::sdb::XCommandPreparation
155*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XPreparedStatement > SAL_CALL prepareCommand( const ::rtl::OUString& command, sal_Int32 commandType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
156*b1cdbd2cSJim Jagielski 
157*b1cdbd2cSJim Jagielski // ::com::sun::star::sdbc::XWarningsSupplier
158*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Any SAL_CALL getWarnings(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
159*b1cdbd2cSJim Jagielski     virtual void SAL_CALL clearWarnings(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
160*b1cdbd2cSJim Jagielski 
161*b1cdbd2cSJim Jagielski // ::com::sun::star::lang::XServiceInfo
162*b1cdbd2cSJim Jagielski     virtual ::rtl::OUString SAL_CALL getImplementationName(  ) throw(::com::sun::star::uno::RuntimeException);
163*b1cdbd2cSJim Jagielski     virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
164*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) throw(::com::sun::star::uno::RuntimeException);
165*b1cdbd2cSJim Jagielski 
166*b1cdbd2cSJim Jagielski // XConnection
167*b1cdbd2cSJim Jagielski     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);
168*b1cdbd2cSJim Jagielski     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);
169*b1cdbd2cSJim Jagielski     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);
170*b1cdbd2cSJim Jagielski     virtual ::rtl::OUString SAL_CALL nativeSQL( const ::rtl::OUString& sql ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
171*b1cdbd2cSJim Jagielski     virtual void SAL_CALL setAutoCommit( sal_Bool autoCommit ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
172*b1cdbd2cSJim Jagielski     virtual sal_Bool SAL_CALL getAutoCommit(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
173*b1cdbd2cSJim Jagielski     virtual void SAL_CALL commit(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
174*b1cdbd2cSJim Jagielski     virtual void SAL_CALL rollback(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
175*b1cdbd2cSJim Jagielski     virtual sal_Bool SAL_CALL isClosed(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
176*b1cdbd2cSJim Jagielski     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);
177*b1cdbd2cSJim Jagielski     virtual void SAL_CALL setReadOnly( sal_Bool readOnly ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
178*b1cdbd2cSJim Jagielski     virtual sal_Bool SAL_CALL isReadOnly(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
179*b1cdbd2cSJim Jagielski     virtual void SAL_CALL setCatalog( const ::rtl::OUString& catalog ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
180*b1cdbd2cSJim Jagielski     virtual ::rtl::OUString SAL_CALL getCatalog(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
181*b1cdbd2cSJim Jagielski     virtual void SAL_CALL setTransactionIsolation( sal_Int32 level ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
182*b1cdbd2cSJim Jagielski     virtual sal_Int32 SAL_CALL getTransactionIsolation(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
183*b1cdbd2cSJim Jagielski     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);
184*b1cdbd2cSJim Jagielski     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);
185*b1cdbd2cSJim Jagielski 
186*b1cdbd2cSJim Jagielski // ::com::sun::star::sdbc::XCloseable
187*b1cdbd2cSJim Jagielski 	virtual void SAL_CALL close(  ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
188*b1cdbd2cSJim Jagielski 
189*b1cdbd2cSJim Jagielski 	// XMultiServiceFactory
190*b1cdbd2cSJim Jagielski 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstance( const ::rtl::OUString& aServiceSpecifier ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
191*b1cdbd2cSJim Jagielski 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstanceWithArguments( const ::rtl::OUString& ServiceSpecifier, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& Arguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
192*b1cdbd2cSJim Jagielski 	virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getAvailableServiceNames(  ) throw (::com::sun::star::uno::RuntimeException);
193*b1cdbd2cSJim Jagielski 
194*b1cdbd2cSJim Jagielski 	// XUsersSupplier
195*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getUsers(  ) throw(::com::sun::star::uno::RuntimeException);
196*b1cdbd2cSJim Jagielski 	// XGroupsSupplier
197*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getGroups(  ) throw(::com::sun::star::uno::RuntimeException);
198*b1cdbd2cSJim Jagielski 
199*b1cdbd2cSJim Jagielski     // XConnectionTools
200*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdb::tools::XTableName > SAL_CALL createTableName(  ) throw (::com::sun::star::uno::RuntimeException);
201*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdb::tools::XObjectNames > SAL_CALL getObjectNames(  ) throw (::com::sun::star::uno::RuntimeException);
202*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdb::tools::XDataSourceMetaData > SAL_CALL getDataSourceMetaData(  ) throw (::com::sun::star::uno::RuntimeException);
203*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getFieldsByCommandDescriptor( ::sal_Int32 commandType, const ::rtl::OUString& command, ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& keepFieldsAlive ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
204*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryComposer > SAL_CALL getComposer( ::sal_Int32 commandType, const ::rtl::OUString& command ) throw (::com::sun::star::uno::RuntimeException);
205*b1cdbd2cSJim Jagielski 
206*b1cdbd2cSJim Jagielski     // XTableUIProvider
207*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic > SAL_CALL getTableIcon( const ::rtl::OUString& TableName, ::sal_Int32 ColorMode ) throw (::com::sun::star::uno::RuntimeException);
208*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getTableEditor( const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::application::XDatabaseDocumentUI >& DocumentUI, const ::rtl::OUString& TableName ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
209*b1cdbd2cSJim Jagielski 
210*b1cdbd2cSJim Jagielski     // IRefreshListener
211*b1cdbd2cSJim Jagielski 	virtual void refresh(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& _rToBeRefreshed);
212*b1cdbd2cSJim Jagielski 
213*b1cdbd2cSJim Jagielski protected:
checkDisposed()214*b1cdbd2cSJim Jagielski 	inline	void checkDisposed() throw (::com::sun::star::lang::DisposedException)
215*b1cdbd2cSJim Jagielski 	{
216*b1cdbd2cSJim Jagielski 		if ( rBHelper.bDisposed || !m_xConnection.is() )
217*b1cdbd2cSJim Jagielski 			throw ::com::sun::star::lang::DisposedException();
218*b1cdbd2cSJim Jagielski 	}
219*b1cdbd2cSJim Jagielski 
220*b1cdbd2cSJim Jagielski 	::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XTablesSupplier > getMasterTables();
221*b1cdbd2cSJim Jagielski 
222*b1cdbd2cSJim Jagielski private:
223*b1cdbd2cSJim Jagielski     /** checks whether or not there are naming conflicts between tables and queries
224*b1cdbd2cSJim Jagielski     */
225*b1cdbd2cSJim Jagielski     void    impl_checkTableQueryNames_nothrow();
226*b1cdbd2cSJim Jagielski 
227*b1cdbd2cSJim Jagielski     /** loads the XConnectionTools implementation which we forward the respective functionality to
228*b1cdbd2cSJim Jagielski 
229*b1cdbd2cSJim Jagielski         @throws ::com::sun::star::uno::RuntimeException
230*b1cdbd2cSJim Jagielski             if the implementation cannot be loaded
231*b1cdbd2cSJim Jagielski 
232*b1cdbd2cSJim Jagielski         @postcond
233*b1cdbd2cSJim Jagielski             m_xConnectionTools is nol <NULL/>
234*b1cdbd2cSJim Jagielski     */
235*b1cdbd2cSJim Jagielski     void    impl_loadConnectionTools_throw();
236*b1cdbd2cSJim Jagielski 
237*b1cdbd2cSJim Jagielski     /** reads the table filter and table type filter from the datasourfce
238*b1cdbd2cSJim Jagielski     */
239*b1cdbd2cSJim Jagielski     void    impl_fillTableFilter();
240*b1cdbd2cSJim Jagielski };
241*b1cdbd2cSJim Jagielski 
242*b1cdbd2cSJim Jagielski //........................................................................
243*b1cdbd2cSJim Jagielski }	// namespace dbaccess
244*b1cdbd2cSJim Jagielski //........................................................................
245*b1cdbd2cSJim Jagielski 
246*b1cdbd2cSJim Jagielski #endif // _DBA_CORE_CONNECTION_HXX_
247*b1cdbd2cSJim Jagielski 
248*b1cdbd2cSJim Jagielski 
249