1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #ifndef CONNECTIVITY_DBTOOLS_DBTFACTORY_HXX
29 #define CONNECTIVITY_DBTOOLS_DBTFACTORY_HXX
30 
31 #include <connectivity/virtualdbtools.hxx>
32 #include "refbase.hxx"
33 
34 //........................................................................
35 namespace connectivity
36 {
37 //........................................................................
38 
39 	//================================================================
40 	//= ODataAccessToolsFactory
41 	//================================================================
42 	class ODataAccessToolsFactory
43 			:public simple::IDataAccessToolsFactory
44 			,public ORefBase
45 	{
46 	protected:
47 		::rtl::Reference< simple::IDataAccessTypeConversion >	m_xTypeConversionHelper;
48 		::rtl::Reference< simple::IDataAccessTools >			m_xToolsHelper;
49 
50 	public:
51 		ODataAccessToolsFactory();
52 
53 		// IDataAccessToolsFactory
54 		virtual ::rtl::Reference< simple::ISQLParser >	createSQLParser(
55 			const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxServiceFactory,
56 			const IParseContext* _pContext
57 		) const;
58 
59 		virtual ::rtl::Reference< simple::IDataAccessCharSet > createCharsetHelper( ) const;
60 
61 		virtual ::rtl::Reference< simple::IDataAccessTypeConversion > getTypeConversionHelper();
62 
63 		virtual ::rtl::Reference< simple::IDataAccessTools > getDataAccessTools();
64 
65         virtual ::std::auto_ptr< ::dbtools::FormattedColumnValue >  createFormattedColumnValue(
66             const ::comphelper::ComponentContext& _rContext,
67             const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& _rxRowSet,
68             const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxColumn
69         );
70 
71 		// IReference
72 		virtual oslInterlockedCount SAL_CALL acquire();
73 		virtual oslInterlockedCount SAL_CALL release();
74 	};
75 
76 //........................................................................
77 }	// namespace connectivity
78 //........................................................................
79 
80 #endif // CONNECTIVITY_DBTOOLS_DBTFACTORY_HXX
81 
82