diff options
Diffstat (limited to 'configmgr/source/treemgr/nodeimplobj.hxx')
-rw-r--r-- | configmgr/source/treemgr/nodeimplobj.hxx | 198 |
1 files changed, 0 insertions, 198 deletions
diff --git a/configmgr/source/treemgr/nodeimplobj.hxx b/configmgr/source/treemgr/nodeimplobj.hxx deleted file mode 100644 index e498c52feeac..000000000000 --- a/configmgr/source/treemgr/nodeimplobj.hxx +++ /dev/null @@ -1,198 +0,0 @@ -/************************************************************************* - * - * 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 CONFIGMGR_NODEIMPLOBJECTS_HXX_ -#define CONFIGMGR_NODEIMPLOBJECTS_HXX_ - -#include "sal/config.h" - -#include "salhelper/simplereferenceobject.hxx" - -#include "node.hxx" -#include "nodeimpl.hxx" -#include "groupnodeimpl.hxx" -#include "setnodeimpl.hxx" -#include "valuenodeimpl.hxx" -#include "utility.hxx" - -#ifndef INCLUDED_MEMORY -#include <memory> -#define INCLUDED_MEMORY -#endif - -namespace configmgr -{ - namespace configuration - { -//----------------------------------------------------------------------------- - -// Specific types of nodes for direct or read only access -//----------------------------------------------------------------------------- - -// Value Nodes -//----------------------------------------------------------------------------- - - class ValueMemberNode::DeferredImpl : public salhelper::SimpleReferenceObject - { - sharable::ValueNode * m_valueNode; - - com::sun::star::uno::Any m_aNewValue; - bool m_bToDefault; - bool m_bChange; - public: - explicit DeferredImpl(sharable::ValueNode * valueNode); - - /// does this wrap a change - bool isChange() const { return m_bChange; } - - /// retrieve the underlying (original) node - sharable::ValueNode * getOriginalNode() const - { return m_valueNode; } - - /// Does this node change to default - bool isToDefault() const { return m_bToDefault; } - - /// retrieve the current value of this node - com::sun::star::uno::Any getNewValue() const { return m_aNewValue; } - - /// Set this node to a new value - void setValue(com::sun::star::uno::Any const& aNewValue, sharable::ValueNode * originalNode); - - /// Set this node to assume its default value - void setValueToDefault(sharable::ValueNode * originalNode); - - public: - // commit protocol - std::auto_ptr<ValueChange> preCommitChange(); - void finishCommit(ValueChange& rChange); - void revertCommit(ValueChange& rChange); - void failedCommit(ValueChange& rChange); - - ValueChangeImpl* collectChange(); - ValueChangeImpl* adjustToChange(ValueChange const& rExternalChange); - - // notification protocol - void adjustToChange(NodeChangesInformation& rLocalChange, ValueChange const& rExternalChange, Tree& rParentTree, unsigned int nParentPos, rtl::OUString const& aName); - }; -//----------------------------------------------------------------------------- - - -//----------------------------------------------------------------------------- - -// Group Nodes -//----------------------------------------------------------------------------- - - class DeferredGroupNodeImpl : public GroupNodeImpl - { - public: - explicit - DeferredGroupNodeImpl(sharable::GroupNode * const& _aNodeRef); - explicit - DeferredGroupNodeImpl(sharable::GroupNode * const& _aNewAddress, GroupNodeImpl& rOriginal); - - ~DeferredGroupNodeImpl(); - - public: - // commit protocol - std::auto_ptr<SubtreeChange> preCommitValueChanges(); - void finishCommit(SubtreeChange& rChange); - void revertCommit(SubtreeChange& rChange); - void failedCommit(SubtreeChange& rChange); - - void collectValueChanges(NodeChanges& rChanges, Tree* pParent, unsigned int nNode) const; - - public: - // data access - bool hasChanges() const; - void markChanged(); - - rtl::Reference<ValueMemberNode::DeferredImpl> findValueChange(rtl::OUString const& aName); - - using GroupNodeImpl::makeValueMember; - ValueMemberNode makeValueMember(rtl::OUString const& _aName, bool _bForUpdate); - - private: - typedef std::map< rtl::OUString, rtl::Reference<ValueMemberNode::DeferredImpl> > MemberChanges; - - MemberChanges m_aChanges; - }; -//----------------------------------------------------------------------------- - -// Set nodes -//----------------------------------------------------------------------------- - - class DeferredSetNodeImpl : public SetNodeImpl - { - public: - explicit - DeferredSetNodeImpl(sharable::SetNode * const& _aNodeRef, Template* pTemplate); - - public: - bool hasChanges() const; - void markChanged(); - void collectElementChanges(NodeChanges& rChanges) const; - - public: - std::auto_ptr<SubtreeChange> preCommitChanges(std::vector< rtl::Reference<ElementTree> >& _rRemovedElements); - void failedCommit(SubtreeChange& rChanges); - void finishCommit(SubtreeChange& rChanges); - void revertCommit(SubtreeChange& rChanges); - - void insertNewElement(rtl::OUString const& aName, ElementTreeData const& aNewElement); - void removeOldElement(rtl::OUString const& aName); - // Base Overrideables - private: - // NodeImpl implementation - virtual bool doIsEmpty() const; - virtual ElementTree* doFindElement(rtl::OUString const& aName) ; - virtual SetNodeVisitor::Result doDispatchToElements(SetNodeVisitor& aVisitor); - - virtual void doDifferenceToDefaultState(SubtreeChange& _rChangeToDefault, ISubtree& _rDefaultTree); - - virtual SetElementChangeImpl* doAdjustToAddedElement(rtl::OUString const& aName, AddNode const& aAddNodeChange, ElementTreeData const & aNewElement); - virtual SetElementChangeImpl* doAdjustToRemovedElement(rtl::OUString const& aName, RemoveNode const& aRemoveNodeChange); - - virtual SetElementChangeImpl* doAdjustChangedElement(NodeChangesInformation& rLocalChanges, rtl::OUString const& aName, Change const& aChange); - - virtual void doTransferElements(ElementSet& rReplacement); - - // Implementation - private: - void rebuildElement(rtl::OUString const& aName, ElementTreeData const& _aElement); - - private: - ElementSet m_aChangedData; - bool m_bChanged; - bool m_bDefault; - }; -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- - } -} - -#endif // CONFIGMGR_NODEIMPLOBJECTS_HXX_ |