summaryrefslogtreecommitdiff
path: root/dbaccess/source/core/dataaccess/databasedocument.hxx
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-01-28 20:52:10 +0100
committerMichael Stahl <mstahl@redhat.com>2012-01-28 20:52:10 +0100
commit00a6c3c148e4c0e867816b4c361abb19d9ece7eb (patch)
tree9e9f67205cd5b72f1031721273e1534a3a1e5b0f /dbaccess/source/core/dataaccess/databasedocument.hxx
parent28068f42895821cbfc399fe50c9888c566dbdc4d (diff)
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'dbaccess/source/core/dataaccess/databasedocument.hxx')
-rw-r--r--dbaccess/source/core/dataaccess/databasedocument.hxx709
1 files changed, 0 insertions, 709 deletions
diff --git a/dbaccess/source/core/dataaccess/databasedocument.hxx b/dbaccess/source/core/dataaccess/databasedocument.hxx
deleted file mode 100644
index 9f5068e72..000000000
--- a/dbaccess/source/core/dataaccess/databasedocument.hxx
+++ /dev/null
@@ -1,709 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _DBA_COREDATAACCESS_DATABASEDOCUMENT_HXX_
-#define _DBA_COREDATAACCESS_DATABASEDOCUMENT_HXX_
-
-#include "ModelImpl.hxx"
-#include "documenteventnotifier.hxx"
-
-/** === begin UNO includes === **/
-#include <com/sun/star/ui/XUIConfigurationManagerSupplier.hpp>
-#include <com/sun/star/document/XDocumentSubStorageSupplier.hpp>
-#include <com/sun/star/frame/XModel2.hpp>
-#include <com/sun/star/frame/XTitle.hpp>
-#include <com/sun/star/frame/XTitleChangeBroadcaster.hpp>
-#include <com/sun/star/frame/XUntitledNumbers.hpp>
-#include <com/sun/star/util/XModifiable.hpp>
-#include <com/sun/star/frame/XStorable.hpp>
-#include <com/sun/star/sdb/XReportDocumentsSupplier.hpp>
-#include <com/sun/star/sdb/XFormDocumentsSupplier.hpp>
-#include <com/sun/star/util/XCloseable.hpp>
-#include <com/sun/star/view/XPrintable.hpp>
-#include <com/sun/star/frame/XModuleManager.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/sdb/XOfficeDatabaseDocument.hpp>
-#include <com/sun/star/embed/XTransactionListener.hpp>
-#include <com/sun/star/document/XStorageBasedDocument.hpp>
-#include <com/sun/star/document/XEmbeddedScripts.hpp>
-#include <com/sun/star/document/XEventsSupplier.hpp>
-#include <com/sun/star/document/XScriptInvocationContext.hpp>
-#include <com/sun/star/script/XStorageBasedLibraryContainer.hpp>
-#include <com/sun/star/script/provider/XScriptProviderSupplier.hpp>
-#include <com/sun/star/frame/XLoadable.hpp>
-#include <com/sun/star/document/XEventBroadcaster.hpp>
-#include <com/sun/star/document/XDocumentEventBroadcaster.hpp>
-#include <com/sun/star/document/XDocumentRecovery.hpp>
-/** === end UNO includes === **/
-
-#if ! defined(INCLUDED_COMPHELPER_IMPLBASE_VAR_HXX_17)
-#define INCLUDED_COMPHELPER_IMPLBASE_VAR_HXX_17
-#define COMPHELPER_IMPLBASE_INTERFACE_NUMBER 17
-#include <comphelper/implbase_var.hxx>
-#endif
-
-#include <cppuhelper/compbase10.hxx>
-#include <cppuhelper/implbase3.hxx>
-#include <rtl/ref.hxx>
-
-#include <boost/shared_ptr.hpp>
-#include <boost/noncopyable.hpp>
-
-namespace comphelper {
- class NamedValueCollection;
-}
-
-//........................................................................
-namespace dbaccess
-{
-//........................................................................
-
-class DocumentEvents;
-class DocumentEventExecutor;
-class DocumentGuard;
-
-typedef ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController > > Controllers;
-
-//============================================================
-//= ViewMonitor
-//============================================================
-/** helper class monitoring the views of a document, and firing appropriate events
- when views are attached / detached
-*/
-class ViewMonitor : public boost::noncopyable
-{
-public:
- ViewMonitor( DocumentEventNotifier& _rEventNotifier )
- :m_rEventNotifier( _rEventNotifier )
- ,m_bIsNewDocument( true )
- ,m_bEverHadController( false )
- ,m_bLastIsFirstEverController( false )
- ,m_xLastConnectedController()
- {
- }
-
- void reset()
- {
- m_bEverHadController = false;
- m_bLastIsFirstEverController = false;
- m_xLastConnectedController.clear();
- }
-
- /** to be called when a view (aka controller) has been connected to the document
- @return
- <TRUE/> if and only if this was the first-ever controller connected to the document
- */
- bool onControllerConnected(
- const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController >& _rxController
- );
-
- /** to be called when a controller is set as current controller
- @return <TRUE/>
- if and only if the controller connection indicates that loading the document is finished. This
- is the case if the given controller has previously been connected, and it was the first controller
- ever for which this happened.
- */
- bool onSetCurrentController(
- const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController >& _rxController
- );
-
- void onLoadedDocument() { m_bIsNewDocument = false; }
-
-private:
- DocumentEventNotifier& m_rEventNotifier;
- bool m_bIsNewDocument;
- bool m_bEverHadController;
- bool m_bLastIsFirstEverController;
- ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController >
- m_xLastConnectedController;
-};
-
-//============================================================
-//= ODatabaseDocument
-//============================================================
-typedef ::comphelper::PartialWeakComponentImplHelper17 < ::com::sun::star::frame::XModel2
- , ::com::sun::star::util::XModifiable
- , ::com::sun::star::frame::XStorable
- , ::com::sun::star::document::XEventBroadcaster
- , ::com::sun::star::document::XDocumentEventBroadcaster
- , ::com::sun::star::view::XPrintable
- , ::com::sun::star::util::XCloseable
- , ::com::sun::star::lang::XServiceInfo
- , ::com::sun::star::sdb::XOfficeDatabaseDocument
- , ::com::sun::star::ui::XUIConfigurationManagerSupplier
- , ::com::sun::star::document::XStorageBasedDocument
- , ::com::sun::star::document::XEmbeddedScripts
- , ::com::sun::star::document::XScriptInvocationContext
- , ::com::sun::star::script::provider::XScriptProviderSupplier
- , ::com::sun::star::document::XEventsSupplier
- , ::com::sun::star::frame::XLoadable
- , ::com::sun::star::document::XDocumentRecovery
- > ODatabaseDocument_OfficeDocument;
-
-typedef ::cppu::ImplHelper3< ::com::sun::star::frame::XTitle
- , ::com::sun::star::frame::XTitleChangeBroadcaster
- , ::com::sun::star::frame::XUntitledNumbers
- > ODatabaseDocument_Title;
-
-class ODatabaseDocument :public ModelDependentComponent // ModelDependentComponent must be first!
- ,public ODatabaseDocument_OfficeDocument
- ,public ODatabaseDocument_Title
-{
- enum InitState
- {
- NotInitialized,
- Initializing,
- Initialized
- };
-
- DECLARE_STL_USTRINGACCESS_MAP(::com::sun::star::uno::Reference< ::com::sun::star::frame::XUntitledNumbers >,TNumberedController);
- ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIConfigurationManager> m_xUIConfigurationManager;
-
- ::cppu::OInterfaceContainerHelper m_aModifyListeners;
- ::cppu::OInterfaceContainerHelper m_aCloseListener;
- ::cppu::OInterfaceContainerHelper m_aStorageListeners;
-
- DocumentEvents* m_pEventContainer;
- ::rtl::Reference< DocumentEventExecutor > m_pEventExecutor;
- DocumentEventNotifier m_aEventNotifier;
-
- ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController > m_xCurrentController;
- Controllers m_aControllers;
- ViewMonitor m_aViewMonitor;
-
- ::com::sun::star::uno::WeakReference< ::com::sun::star::container::XNameAccess > m_xForms;
- ::com::sun::star::uno::WeakReference< ::com::sun::star::container::XNameAccess > m_xReports;
- ::com::sun::star::uno::WeakReference< ::com::sun::star::script::provider::XScriptProvider > m_xScriptProvider;
-
- /** @short such module manager is used to classify new opened documents. */
- ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModuleManager > m_xModuleManager;
- ::com::sun::star::uno::Reference< ::com::sun::star::frame::XTitle > m_xTitleHelper;
- TNumberedController m_aNumberedControllers;
-
- /** true if and only if the DatabaseDocument's "initNew" or "load" have been called (or, well,
- the document has be initialized implicitly - see storeAsURL
- */
- InitState m_eInitState;
- bool m_bClosing;
- bool m_bAllowDocumentScripting;
- bool m_bHasBeenRecovered;
-
- enum StoreType { SAVE, SAVE_AS };
- /** stores the document to the given URL, rebases it to the respective new storage, if necessary, resets
- the modified flag, and notifies any listeners as required
-
- @param _rURL
- the URL to store the document to
- @param _rArguments
- arguments for storing the document (MediaDescriptor)
- @param _eType
- the type of the store process (Save or SaveAs). The method will automatically
- notify the proper events for this type.
- @param _rGuard
- the instance lock to be released before doing synchronous notifications
- */
- void impl_storeAs_throw(
- const ::rtl::OUString& _rURL,
- const ::comphelper::NamedValueCollection& _rArguments,
- const StoreType _eType,
- DocumentGuard& _rGuard
- )
- throw ( ::com::sun::star::io::IOException
- , ::com::sun::star::uno::RuntimeException );
-
- /** notifies our storage change listeners that our underlying storage changed
-
- @param _rxNewRootStorage
- the new root storage to be notified. If <NULL/>, it is assumed that no storage change actually
- happened, and the listeners are not notified.
- */
- void impl_notifyStorageChange_nolck_nothrow(
- const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& _rxNewRootStorage
- );
-
- /// write a single XML stream into the package
- void WriteThroughComponent(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > & xComponent, /// the component we export
- const sal_Char* pStreamName, /// the stream name
- const sal_Char* pServiceName, /// service name of the component
- const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any> & rArguments, /// the argument (XInitialization)
- const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue> & rMediaDesc,/// output descriptor
- const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& _xStorageToSaveTo
- ) const;
-
-
- /// write a single output stream
- /// (to be called either directly or by WriteThroughComponent(...))
- void WriteThroughComponent(
- const ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream >& xOutputStream,
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& xComponent,
- const sal_Char* pServiceName,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& rArguments,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue> & rMediaDesc
- ) const;
-
- /** writes the content and settings
- @param sURL
- The URL
- @param lArguments
- The media descriptor
- @param _xStorageToSaveTo
- The storage which should be used for saving
- */
- void impl_writeStorage_throw(
- const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& _rxTargetStorage,
- const ::comphelper::NamedValueCollection& _rMediaDescriptor
- ) const;
-
- // ModelDependentComponent overridables
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > getThis() const;
-
- ::com::sun::star::uno::Reference< ::com::sun::star::frame::XTitle > impl_getTitleHelper_throw();
- ::com::sun::star::uno::Reference< ::com::sun::star::frame::XUntitledNumbers > impl_getUntitledHelper_throw(
- const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _xComponent = ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >());
-
-private:
- ODatabaseDocument(const ::rtl::Reference<ODatabaseModelImpl>& _pImpl);
- // Do NOT create those documents directly, always use ODatabaseModelImpl::getModel. Reason is that
- // ODatabaseDocument requires clear ownership, and in turn lifetime synchronisation with the ModelImpl.
- // If you create a ODatabaseDocument directly, you might easily create a leak.
- // #i50905#
-
-protected:
- virtual void SAL_CALL disposing();
-
- virtual ~ODatabaseDocument();
-
-public:
- struct FactoryAccess { friend class ODatabaseModelImpl; private: FactoryAccess() { } };
- static ODatabaseDocument* createDatabaseDocument( const ::rtl::Reference<ODatabaseModelImpl>& _pImpl, FactoryAccess /*accessControl*/ )
- {
- return new ODatabaseDocument( _pImpl );
- }
-
- // XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw(::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException);
-
- // ::com::sun::star::lang::XServiceInfo - static methods
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_static(void) throw( ::com::sun::star::uno::RuntimeException );
- static ::rtl::OUString getImplementationName_static(void) throw( ::com::sun::star::uno::RuntimeException );
- static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
- SAL_CALL Create(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >&);
-
- // XInterface
- virtual ::com::sun::star::uno::Any SAL_CALL queryInterface(const ::com::sun::star::uno::Type& _rType) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL acquire( ) throw ();
- virtual void SAL_CALL release( ) throw ();
-
- // XTypeProvider
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XEventListener
- virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw(::com::sun::star::uno::RuntimeException);
-
- // XComponent
- virtual void SAL_CALL dispose( ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
-
- // XModel
- virtual sal_Bool SAL_CALL attachResource( const ::rtl::OUString& URL, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& Arguments ) throw (::com::sun::star::uno::RuntimeException) ;
- virtual ::rtl::OUString SAL_CALL getURL( ) throw (::com::sun::star::uno::RuntimeException) ;
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getArgs( ) throw (::com::sun::star::uno::RuntimeException) ;
- virtual void SAL_CALL connectController( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController >& Controller ) throw (::com::sun::star::uno::RuntimeException) ;
- virtual void SAL_CALL disconnectController( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController >& Controller ) throw (::com::sun::star::uno::RuntimeException) ;
- virtual void SAL_CALL lockControllers( ) throw (::com::sun::star::uno::RuntimeException) ;
- virtual void SAL_CALL unlockControllers( ) throw (::com::sun::star::uno::RuntimeException) ;
- virtual sal_Bool SAL_CALL hasControllersLocked( ) throw (::com::sun::star::uno::RuntimeException) ;
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController > SAL_CALL getCurrentController( ) throw (::com::sun::star::uno::RuntimeException) ;
- virtual void SAL_CALL setCurrentController( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController >& Controller ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::uno::RuntimeException) ;
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getCurrentSelection( ) throw (::com::sun::star::uno::RuntimeException) ;
-
- // XModel2
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL getControllers( ) throw (::com::sun::star::uno::RuntimeException) ;
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getAvailableViewControllerNames( ) throw (::com::sun::star::uno::RuntimeException) ;
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController2 > SAL_CALL createDefaultViewController( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& Frame ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException) ;
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController2 > SAL_CALL createViewController( const ::rtl::OUString& ViewName, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& Arguments, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& Frame ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException) ;
-
- // XStorable
- virtual sal_Bool SAL_CALL hasLocation( ) throw (::com::sun::star::uno::RuntimeException) ;
- virtual ::rtl::OUString SAL_CALL getLocation( ) throw (::com::sun::star::uno::RuntimeException) ;
- virtual sal_Bool SAL_CALL isReadonly( ) throw (::com::sun::star::uno::RuntimeException) ;
- virtual void SAL_CALL store( ) throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException) ;
- virtual void SAL_CALL storeAsURL( const ::rtl::OUString& sURL, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments ) throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException) ;
- virtual void SAL_CALL storeToURL( const ::rtl::OUString& sURL, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments ) throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException) ;
-
- // XModifyBroadcaster
- virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
-
- // ::com::sun::star::util::XModifiable
- virtual sal_Bool SAL_CALL isModified( ) throw (::com::sun::star::uno::RuntimeException) ;
- virtual void SAL_CALL setModified( sal_Bool bModified ) throw (::com::sun::star::beans::PropertyVetoException, ::com::sun::star::uno::RuntimeException) ;
-
- // XEventBroadcaster
- virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::document::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::document::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
-
- // XDocumentEventBroadcaster
- virtual void SAL_CALL addDocumentEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::document::XDocumentEventListener >& _Listener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeDocumentEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::document::XDocumentEventListener >& _Listener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL notifyDocumentEvent( const ::rtl::OUString& _EventName, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController2 >& _ViewController, const ::com::sun::star::uno::Any& _Supplement ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException);
-
- // XPrintable
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getPrinter( ) throw (::com::sun::star::uno::RuntimeException) ;
- virtual void SAL_CALL setPrinter( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aPrinter ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException) ;
- virtual void SAL_CALL print( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& xOptions ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException) ;
-
- // XFormDocumentsSupplier
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getFormDocuments( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XReportDocumentsSupplier
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getReportDocuments( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XCloseable
- virtual void SAL_CALL close( sal_Bool DeliverOwnership ) throw (::com::sun::star::util::CloseVetoException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL addCloseListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseListener >& Listener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeCloseListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloseListener >& Listener ) throw (::com::sun::star::uno::RuntimeException);
-
- // XUIConfigurationManagerSupplier
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIConfigurationManager > SAL_CALL getUIConfigurationManager( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XDocumentSubStorageSupplier
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > SAL_CALL getDocumentSubStorage( const ::rtl::OUString& aStorageName, sal_Int32 nMode ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getDocumentSubStoragesNames( ) throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
-
- // XOfficeDatabaseDocument
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDataSource > SAL_CALL getDataSource() throw (::com::sun::star::uno::RuntimeException);
-
- // XStorageBasedDocument
- virtual void SAL_CALL loadFromStorage( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aMediaDescriptor ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::frame::DoubleInitializationException, ::com::sun::star::io::IOException, ::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL storeToStorage( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aMediaDescriptor ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::io::IOException, ::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL switchToStorage( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::io::IOException, ::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > SAL_CALL getDocumentStorage( ) throw (::com::sun::star::io::IOException, ::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL addStorageChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::document::XStorageChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeStorageChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::document::XStorageChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
-
- // XEmbeddedScripts
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::script::XStorageBasedLibraryContainer > SAL_CALL getBasicLibraries() throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::script::XStorageBasedLibraryContainer > SAL_CALL getDialogLibraries() throw (::com::sun::star::uno::RuntimeException);
- virtual ::sal_Bool SAL_CALL getAllowMacroExecution() throw (::com::sun::star::uno::RuntimeException);
-
- // XScriptInvocationContext
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::document::XEmbeddedScripts > SAL_CALL getScriptContainer() throw (::com::sun::star::uno::RuntimeException);
-
- // XScriptProviderSupplier
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::script::provider::XScriptProvider > SAL_CALL getScriptProvider( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XEventsSupplier
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameReplace > SAL_CALL getEvents( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XLoadable
- virtual void SAL_CALL initNew( ) throw (::com::sun::star::frame::DoubleInitializationException, ::com::sun::star::io::IOException, ::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL load( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& lArguments ) throw (::com::sun::star::frame::DoubleInitializationException, ::com::sun::star::io::IOException, ::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
-
- // css.document.XDocumentRecovery
- virtual ::sal_Bool SAL_CALL wasModifiedSinceLastSave() throw ( ::com::sun::star::uno::RuntimeException );
- virtual void SAL_CALL storeToRecoveryFile( const ::rtl::OUString& i_TargetLocation, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& i_MediaDescriptor ) throw ( ::com::sun::star::uno::RuntimeException, ::com::sun::star::io::IOException, ::com::sun::star::lang::WrappedTargetException );
- virtual void SAL_CALL recoverFromFile( const ::rtl::OUString& i_SourceLocation, const ::rtl::OUString& i_SalvagedFile, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& i_MediaDescriptor ) throw ( ::com::sun::star::uno::RuntimeException, ::com::sun::star::io::IOException, ::com::sun::star::lang::WrappedTargetException );
-
- // XTitle
- virtual ::rtl::OUString SAL_CALL getTitle( ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL setTitle( const ::rtl::OUString& sTitle ) throw (::com::sun::star::uno::RuntimeException);
-
- // XTitleChangeBroadcaster
- virtual void SAL_CALL addTitleChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XTitleChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeTitleChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XTitleChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
-
- // XUntitledNumbers
- virtual ::sal_Int32 SAL_CALL leaseNumber( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xComponent ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL releaseNumber( ::sal_Int32 nNumber ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL releaseNumberForComponent( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xComponent ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getUntitledPrefix( ) throw (::com::sun::star::uno::RuntimeException);
-
- /** clears the given object container
-
- Clearing is done via disposal - the method calls XComponent::dispose at the given object,
- which must be one of our impl's or our object containers (m_xForms, m_xReports,
- m_xTableDefinitions, m_xCommandDefinitions)
-
- @param _rxContainer
- the container to clear
- */
- static void clearObjectContainer(
- ::com::sun::star::uno::WeakReference< ::com::sun::star::container::XNameAccess >& _rxContainer);
-
- /** checks whether the component is already initialized, throws a NotInitializedException if not
- */
- inline void checkInitialized() const
- {
- if ( !impl_isInitialized() )
- throw ::com::sun::star::lang::NotInitializedException( ::rtl::OUString(), getThis() );
- }
-
- /** checks the document is currently in the initialization phase, or already initialized.
- Throws NotInitializedException if not so.
- */
- inline void checkNotUninitilized() const
- {
- if ( impl_isInitialized() || impl_isInitializing() )
- // fine
- return;
-
- throw ::com::sun::star::lang::NotInitializedException( ::rtl::OUString(), getThis() );
- }
-
- /** checks whether the document is currently being initialized, or already initialized,
- throws a DoubleInitializationException if so
- */
- inline void checkNotInitialized() const
- {
- if ( impl_isInitializing() || impl_isInitialized() )
- throw ::com::sun::star::frame::DoubleInitializationException( ::rtl::OUString(), getThis() );
- }
-
-private:
- /** returns whether the model is currently being initialized
- */
- bool impl_isInitializing() const { return m_eInitState == Initializing; }
-
- /** returns whether the model is already initialized, i.e. the XModel's "initNew" or "load" methods have been called
- */
- bool impl_isInitialized() const { return m_eInitState == Initialized; }
-
- /// tells the model it is being initialized now
- void impl_setInitializing() { m_eInitState = Initializing; }
-
- /// tells the model its initialization is done
- void impl_setInitialized();
-
- /** closes the frames of all connected controllers
-
- @param _bDeliverOwnership
- determines if the ownership should be transfered to the component which
- possibly vetos the closing
-
- @raises ::com::sun::star::util::CloseVetoException
- if the closing was vetoed by any instance
- */
- void impl_closeControllerFrames_nolck_throw( sal_Bool _bDeliverOwnership );
-
- /** disposes the frames of all controllers which are still left in m_aControllers.
- */
- void impl_disposeControllerFrames_nothrow();
-
- /** does a reparenting at the given object container to ourself
-
- Calls XChild::setParent at the given object, which must be one of our impl's or our
- object containers (m_xForms, m_xReports, m_xTableDefinitions, m_xCommandDefinitions)
- */
- void impl_reparent_nothrow( const ::com::sun::star::uno::WeakReference< ::com::sun::star::container::XNameAccess >& _rxContainer );
-
- /** retrieves the forms or reports contained, creates and initializes it, if necessary
-
- @raises DisposedException
- if the instance is already disposed
- @raises IllegalArgumentException
- if <arg>_eType</arg> is not ODatabaseModelImpl::E_FORM and not ODatabaseModelImpl::E_REPORT
- */
- ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >
- impl_getDocumentContainer_throw( ODatabaseModelImpl::ObjectType _eType );
-
- /** resets everything
-
- @precond
- m_pImpl is not <NULLL/>
- */
- void
- impl_reset_nothrow();
-
- /** imports the document from the given resource.
- */
- static void
- impl_import_nolck_throw(
- const ::comphelper::ComponentContext _rContext,
- const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxTargetComponent,
- const ::comphelper::NamedValueCollection& _rResource
- );
-
- /** creates a storage for the given URL, truncating it if a file with this name already exists
-
- @throws Exception
- if creating the storage failed
-
- @return
- the newly created storage for the file at the given URL
- */
- ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >
- impl_createStorageFor_throw(
- const ::rtl::OUString& _rURL
- ) const;
-
- /** sets our "modified" flag
-
- will notify all our respective listeners, if the "modified" state actually changed
-
- @param _bModified
- the (new) flag indicating whether the document is currently modified or not
- @param _rGuard
- the guard for our instance. At method entry, the guard must hold the lock. At the moment
- of method leave, the lock will be released.
- @precond
- our mutex is locked
- @postcond
- our mutex is not locked
- */
- void impl_setModified_nothrow( sal_Bool _bModified, DocumentGuard& _rGuard );
-
- /** stores the document to the given storage
-
- Note that the document is actually not rebased to this storage, it just stores a copy of itself
- to the given target storage.
-
- @param _rxTargetStorage
- denotes the storage to store the document into
- @param _rMediaDescriptor
- contains additional parameters for storing the document
- @param _rDocGuard
- a guard which holds the (only) lock to the document, and which will be temporarily
- released where necessary (e.g. for notifications, or calling into other components)
-
- @throws ::com::sun::star::uno::IllegalArgumentException
- if the given storage is <NULL/>.
-
- @throws ::com::sun::star::uno::RuntimeException
- when any of the used operations throws it
-
- @throws ::com::sun::star::io::IOException
- when any of the used operations throws it, or any other exception occurs which is no
- RuntimeException and no IOException
- */
- void impl_storeToStorage_throw(
- const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& _rxTargetStorage,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& _rMediaDescriptor,
- DocumentGuard& _rDocGuard
- ) const;
-
-
- /** impl-version of attachResource
-
- @param i_rLogicalDocumentURL
- denotes the logical URL of the document, to be reported by getURL/getLocation
- @param i_rMediaDescriptor
- denotes additional document parameters
- @param _rDocGuard
- is the guard which currently protects the document instance
- */
- sal_Bool impl_attachResource(
- const ::rtl::OUString& i_rLogicalDocumentURL,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& i_rMediaDescriptor,
- DocumentGuard& _rDocGuard
- );
-
- /** throws an IOException with the message as defined in the RID_STR_ERROR_WHILE_SAVING resource, wrapping
- the given caught non-IOException error
- */
- void impl_throwIOExceptionCausedBySave_throw(
- const ::com::sun::star::uno::Any& i_rError,
- const ::rtl::OUString& i_rTargetURL
- ) const;
-};
-
-/** an extended version of the ModelMethodGuard, which also cares for the initialization state
- of the document
-*/
-class DocumentGuard : private ModelMethodGuard
-{
-public:
- enum MethodType
- {
- // a method which is to initialize the document
- InitMethod,
- // a default method
- DefaultMethod,
- // a method which is used (externally) during the initialization phase
- MethodUsedDuringInit,
- // a method which does not need initialization - use with care!
- MethodWithoutInit
- };
-
- /** constructs the guard
-
- @param _document
- the ODatabaseDocument instance
-
- @throws ::com::sun::star::lang::DisposedException
- If the given component is already disposed
-
- @throws ::com::sun::star::frame::DoubleInitializationException
- if _eType is InitMethod, and the given component is already initialized, or currently being initialized.
-
- @throws ::com::sun::star::lang::NotInitializedException
- if _eType is DefaultMethod, and the given component is not yet initialized; or if _eType
- is MethodUsedDuringInit, and the component is still uninitialized, and not in the initialization
- phase currently.
- */
- DocumentGuard( const ODatabaseDocument& _document, MethodType _eType = DefaultMethod )
- :ModelMethodGuard( _document )
- ,m_document( _document )
- {
- switch ( _eType )
- {
- case InitMethod: m_document.checkNotInitialized(); break;
- case DefaultMethod: m_document.checkInitialized(); break;
- case MethodUsedDuringInit: m_document.checkNotUninitilized(); break;
- case MethodWithoutInit: break;
- }
- }
-
- ~DocumentGuard()
- {
- }
-
- void clear()
- {
- ModelMethodGuard::clear();
- }
- void reset()
- {
- ModelMethodGuard::reset();
- m_document.checkDisposed();
- }
-
-private:
-
- const ODatabaseDocument& m_document;
-};
-
-} // namespace dbaccess
-#endif // _DBA_COREDATAACCESS_DATABASEDOCUMENT_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */