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 * This file incorporates work covered by the following license notice: 10 * 11 * Licensed to the Apache Software Foundation (ASF) under one or more 12 * contributor license agreements. See the NOTICE file distributed 13 * with this work for additional information regarding copyright 14 * ownership. The ASF licenses this file to you under the Apache 15 * License, Version 2.0 (the "License"); you may not use this file 16 * except in compliance with the License. You may obtain a copy of 17 * the License at http://www.apache.org/licenses/LICENSE-2.0 . 18 */ 19 20 #ifndef INCLUDED_CONNECTIVITY_TCOLUMNSHELPER_HXX 21 #define INCLUDED_CONNECTIVITY_TCOLUMNSHELPER_HXX 22 23 #include <memory> 24 #include <connectivity/sdbcx/VCollection.hxx> 25 #include <connectivity/dbtoolsdllapi.hxx> 26 27 namespace connectivity 28 { 29 class OTableHelper; 30 class OColumnsHelperImpl; 31 /** contains general column handling to create default columns and default sql statements. 32 */ 33 class OOO_DLLPUBLIC_DBTOOLS OColumnsHelper : public sdbcx::OCollection 34 { 35 std::unique_ptr<OColumnsHelperImpl> m_pImpl; 36 protected: 37 OTableHelper* m_pTable; 38 39 virtual sdbcx::ObjectType createObject(const OUString& _rName) override; 40 virtual void impl_refresh() override; 41 virtual css::uno::Reference< css::beans::XPropertySet > createDescriptor() override; 42 virtual sdbcx::ObjectType appendObject( const OUString& _rForName, const css::uno::Reference< css::beans::XPropertySet >& descriptor ) override; 43 virtual void dropObject(sal_Int32 _nPos, const OUString& _sElementName) override; 44 public: 45 OColumnsHelper( ::cppu::OWeakObject& _rParent 46 ,bool _bCase 47 ,::osl::Mutex& _rMutex 48 ,const ::std::vector< OUString> &_rVector 49 ,bool _bUseHardRef 50 ); 51 virtual ~OColumnsHelper() override; 52 53 /** set the parent of the columns. Can also be <NULL/>. 54 @param _pTable 55 The parent. 56 */ setParent(OTableHelper * _pTable)57 void setParent(OTableHelper* _pTable) { m_pTable = _pTable;} 58 }; 59 } 60 #endif // INCLUDED_CONNECTIVITY_TCOLUMNSHELPER_HXX 61 62 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 63