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 DBACCESS_CORE_API_QUERYCOMPOSER_HXX 24*b1cdbd2cSJim Jagielski #define DBACCESS_CORE_API_QUERYCOMPOSER_HXX 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski #ifndef _CONNECTIVITY_COMMONTOOLS_HXX_ 27*b1cdbd2cSJim Jagielski #include <connectivity/CommonTools.hxx> 28*b1cdbd2cSJim Jagielski #endif 29*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_SDB_XSQLQUERYCOMPOSER_HPP_ 30*b1cdbd2cSJim Jagielski #include <com/sun/star/sdb/XSQLQueryComposer.hpp> 31*b1cdbd2cSJim Jagielski #endif 32*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_SDB_XPARAMETERSSUPPLIER_HPP_ 33*b1cdbd2cSJim Jagielski #include <com/sun/star/sdb/XParametersSupplier.hpp> 34*b1cdbd2cSJim Jagielski #endif 35*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_SDBCX_XTABLESSUPPLIER_HPP_ 36*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbcx/XTablesSupplier.hpp> 37*b1cdbd2cSJim Jagielski #endif 38*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_SDBCX_XCOLUMNSSUPPLIER_HPP_ 39*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbcx/XColumnsSupplier.hpp> 40*b1cdbd2cSJim Jagielski #endif 41*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ 42*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XServiceInfo.hpp> 43*b1cdbd2cSJim Jagielski #endif 44*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_SCRIPT_XTYPECONVERTER_HPP_ 45*b1cdbd2cSJim Jagielski #include <com/sun/star/script/XTypeConverter.hpp> 46*b1cdbd2cSJim Jagielski #endif 47*b1cdbd2cSJim Jagielski #ifndef _CPPUHELPER_IMPLBASE5_HXX_ 48*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase5.hxx> 49*b1cdbd2cSJim Jagielski #endif 50*b1cdbd2cSJim Jagielski #ifndef _CONNECTIVITY_PARSE_SQLITERATOR_HXX_ 51*b1cdbd2cSJim Jagielski #include <connectivity/sqliterator.hxx> 52*b1cdbd2cSJim Jagielski #endif 53*b1cdbd2cSJim Jagielski #ifndef _CONNECTIVITY_SQLPARSE_HXX 54*b1cdbd2cSJim Jagielski #include <connectivity/sqlparse.hxx> 55*b1cdbd2cSJim Jagielski #endif 56*b1cdbd2cSJim Jagielski #ifndef _DBASHARED_APITOOLS_HXX_ 57*b1cdbd2cSJim Jagielski #include "apitools.hxx" 58*b1cdbd2cSJim Jagielski #endif 59*b1cdbd2cSJim Jagielski #ifndef _COMPHELPER_BROADCASTHELPER_HXX_ 60*b1cdbd2cSJim Jagielski #include <comphelper/broadcasthelper.hxx> 61*b1cdbd2cSJim Jagielski #endif 62*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_SDB_XSINGLESELECTQUERYCOMPOSER_HPP_ 63*b1cdbd2cSJim Jagielski #include <com/sun/star/sdb/XSingleSelectQueryComposer.hpp> 64*b1cdbd2cSJim Jagielski #endif 65*b1cdbd2cSJim Jagielski 66*b1cdbd2cSJim Jagielski 67*b1cdbd2cSJim Jagielski 68*b1cdbd2cSJim Jagielski namespace com { namespace sun { namespace star { namespace util { 69*b1cdbd2cSJim Jagielski class XNumberFormatsSupplier; 70*b1cdbd2cSJim Jagielski class XNumberFormatter; 71*b1cdbd2cSJim Jagielski }}}} 72*b1cdbd2cSJim Jagielski 73*b1cdbd2cSJim Jagielski namespace dbaccess 74*b1cdbd2cSJim Jagielski { 75*b1cdbd2cSJim Jagielski typedef ::cppu::ImplHelper5< ::com::sun::star::sdb::XSQLQueryComposer, 76*b1cdbd2cSJim Jagielski ::com::sun::star::sdb::XParametersSupplier, 77*b1cdbd2cSJim Jagielski ::com::sun::star::sdbcx::XTablesSupplier, 78*b1cdbd2cSJim Jagielski ::com::sun::star::sdbcx::XColumnsSupplier, 79*b1cdbd2cSJim Jagielski ::com::sun::star::lang::XServiceInfo > OQueryComposer_BASE; 80*b1cdbd2cSJim Jagielski 81*b1cdbd2cSJim Jagielski class OPrivateColumns; 82*b1cdbd2cSJim Jagielski class OPrivateTables; 83*b1cdbd2cSJim Jagielski 84*b1cdbd2cSJim Jagielski class OQueryComposer : public ::comphelper::OBaseMutex, 85*b1cdbd2cSJim Jagielski public OSubComponent, 86*b1cdbd2cSJim Jagielski public OQueryComposer_BASE 87*b1cdbd2cSJim Jagielski { 88*b1cdbd2cSJim Jagielski ::std::vector< ::rtl::OUString> m_aFilters; 89*b1cdbd2cSJim Jagielski ::std::vector< ::rtl::OUString> m_aOrders; 90*b1cdbd2cSJim Jagielski ::rtl::OUString m_sOrgFilter; 91*b1cdbd2cSJim Jagielski ::rtl::OUString m_sOrgOrder; 92*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryComposer> m_xComposer; 93*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryComposer> m_xComposerHelper; 94*b1cdbd2cSJim Jagielski 95*b1cdbd2cSJim Jagielski protected: 96*b1cdbd2cSJim Jagielski virtual void SAL_CALL disposing(); 97*b1cdbd2cSJim Jagielski virtual ~OQueryComposer(); 98*b1cdbd2cSJim Jagielski public: 99*b1cdbd2cSJim Jagielski 100*b1cdbd2cSJim Jagielski OQueryComposer( const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xConnection ); 101*b1cdbd2cSJim Jagielski 102*b1cdbd2cSJim Jagielski // ::com::sun::star::lang::XTypeProvider 103*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException); 104*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException); 105*b1cdbd2cSJim Jagielski // com::sun::star::lang::XUnoTunnel 106*b1cdbd2cSJim Jagielski virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException); 107*b1cdbd2cSJim Jagielski // ::com::sun::star::uno::XInterface 108*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) 109*b1cdbd2cSJim Jagielski throw(::com::sun::star::uno::RuntimeException); 110*b1cdbd2cSJim Jagielski virtual void SAL_CALL acquire() throw(); 111*b1cdbd2cSJim Jagielski virtual void SAL_CALL release() throw(); 112*b1cdbd2cSJim Jagielski // XServiceInfo 113*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw(::com::sun::star::uno::RuntimeException); 114*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException); 115*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException); 116*b1cdbd2cSJim Jagielski // XSQLQueryComposer 117*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getQuery( ) throw(::com::sun::star::uno::RuntimeException); 118*b1cdbd2cSJim Jagielski virtual void SAL_CALL setQuery( const ::rtl::OUString& command ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); 119*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getComposedQuery( ) throw(::com::sun::star::uno::RuntimeException); 120*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getFilter( ) throw(::com::sun::star::uno::RuntimeException); 121*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > > SAL_CALL getStructuredFilter( ) throw(::com::sun::star::uno::RuntimeException); 122*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getOrder( ) throw(::com::sun::star::uno::RuntimeException); 123*b1cdbd2cSJim Jagielski virtual void SAL_CALL appendFilterByColumn( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); 124*b1cdbd2cSJim Jagielski virtual void SAL_CALL appendOrderByColumn( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& column, sal_Bool ascending ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); 125*b1cdbd2cSJim Jagielski virtual void SAL_CALL setFilter( const ::rtl::OUString& filter ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); 126*b1cdbd2cSJim Jagielski virtual void SAL_CALL setOrder( const ::rtl::OUString& order ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException); 127*b1cdbd2cSJim Jagielski // XTablesSupplier 128*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getTables( ) throw(::com::sun::star::uno::RuntimeException); 129*b1cdbd2cSJim Jagielski // XColumnsSupplier 130*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getColumns( ) throw(::com::sun::star::uno::RuntimeException); 131*b1cdbd2cSJim Jagielski // XParametersSupplier 132*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL getParameters( ) throw(::com::sun::star::uno::RuntimeException); 133*b1cdbd2cSJim Jagielski }; 134*b1cdbd2cSJim Jagielski } 135*b1cdbd2cSJim Jagielski #endif // DBACCESS_CORE_API_QUERYCOMPOSER_HXX 136