diff options
Diffstat (limited to 'configmgr/source/treemgr/valuemembernode.cxx')
-rw-r--r-- | configmgr/source/treemgr/valuemembernode.cxx | 336 |
1 files changed, 0 insertions, 336 deletions
diff --git a/configmgr/source/treemgr/valuemembernode.cxx b/configmgr/source/treemgr/valuemembernode.cxx deleted file mode 100644 index 20ed6df1e28d..000000000000 --- a/configmgr/source/treemgr/valuemembernode.cxx +++ /dev/null @@ -1,336 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: valuemembernode.cxx,v $ - * $Revision: 1.11 $ - * - * 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. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_configmgr.hxx" -#include <stdio.h> - -#include "valuemembernode.hxx" -#include "nodeimplobj.hxx" -#include "nodechangeimpl.hxx" -#include "change.hxx" -#include "valuenode.hxx" -#include <osl/diagnose.h> - -namespace configmgr -{ - namespace configuration - { - -// helpers -//----------------------------------------------------------------------------- - -namespace -{ - -//----------------------------------------------------------------------------- -// internal accessors for direct updates to data -//----------------------------------------------------------------------------- - -inline -void setOriginalValue(sharable::ValueNode * const& rOriginalAddress, com::sun::star::uno::Any const& aNewValue) -{ - rOriginalAddress->setValue(aNewValue); -} -//----------------------------------------------------------------------------- - -inline -void setOriginalToDefault(sharable::ValueNode * const& rOriginalAddress) -{ - rOriginalAddress->setToDefault(); -} -} // anonymous namespace - - -//----------------------------------------------------------------------------- -// class ValueMemberNode -//----------------------------------------------------------------------------- - -ValueMemberNode::ValueMemberNode(sharable::ValueNode * node) - : m_node(node) - , m_xDeferredOperation() -{} -//----------------------------------------------------------------------------- -ValueMemberNode::ValueMemberNode(rtl::Reference<DeferredImpl> const& _xDeferred) // must be valid - : m_node( _xDeferred->getOriginalNode() ) - , m_xDeferredOperation(_xDeferred) -{} -//----------------------------------------------------------------------------- - -ValueMemberNode::ValueMemberNode(ValueMemberNode const& rOriginal) - : m_node(rOriginal.m_node) - , m_xDeferredOperation(rOriginal.m_xDeferredOperation) -{} -//----------------------------------------------------------------------------- -ValueMemberNode& ValueMemberNode::operator=(ValueMemberNode const& rOriginal) -{ - m_node = rOriginal.m_node; - m_xDeferredOperation = rOriginal.m_xDeferredOperation; - return *this; -} -//----------------------------------------------------------------------------- -ValueMemberNode::~ValueMemberNode() -{ -} -//----------------------------------------------------------------------------- - -bool ValueMemberNode::isValid() const -{ - OSL_ASSERT( !m_xDeferredOperation.is() || - m_node == m_xDeferredOperation->getOriginalNode()); - - return m_node != 0; -} -//----------------------------------------------------------------------------- - -bool ValueMemberNode::hasChange() const -{ - return m_xDeferredOperation.is() - && m_xDeferredOperation->isChange(); -} -//----------------------------------------------------------------------------- - - -//----------------------------------------------------------------------------- -// external accessors -//----------------------------------------------------------------------------- - -rtl::OUString ValueMemberNode::getNodeName() const -{ - return m_node->info.getName(); -} -//----------------------------------------------------------------------------- - -node::Attributes ValueMemberNode::getAttributes() const -{ - return sharable::node(m_node)->getAttributes(); -} -//----------------------------------------------------------------------------- - - -bool ValueMemberNode::isDefault() const -{ - if (hasChange()) - return m_xDeferredOperation->isToDefault(); - - return m_node->info.isDefault(); -} -//----------------------------------------------------------------------------- - -bool ValueMemberNode::canGetDefaultValue() const -{ - return m_node->hasUsableDefault(); -} -//----------------------------------------------------------------------------- - -com::sun::star::uno::Any ValueMemberNode::getValue() const -{ - if (hasChange()) - return m_xDeferredOperation->getNewValue(); - - return m_node->getValue(); -} -//----------------------------------------------------------------------------- - -com::sun::star::uno::Any ValueMemberNode::getDefaultValue() const -{ - return m_node->getDefaultValue(); -} -//----------------------------------------------------------------------------- - -com::sun::star::uno::Type ValueMemberNode::getValueType() const -{ - return m_node->getValueType(); -} -//----------------------------------------------------------------------------- - - -void ValueMemberUpdate::setValue(com::sun::star::uno::Any const& aNewValue) -{ - if (m_aMemberNode.m_xDeferredOperation.is()) - m_aMemberNode.m_xDeferredOperation->setValue(aNewValue, m_aMemberNode.m_node); - else - setOriginalValue(m_aMemberNode.m_node, aNewValue ); -} -//----------------------------------------------------------------------------- - -void ValueMemberUpdate::setDefault() -{ - if (m_aMemberNode.m_xDeferredOperation.is()) - m_aMemberNode.m_xDeferredOperation->setValueToDefault(m_aMemberNode.m_node); - else - setOriginalToDefault(m_aMemberNode.m_node); -} - -//----------------------------------------------------------------------------- -// class ValueMemberNode::DeferredImpl -//----------------------------------------------------------------------------- - -ValueMemberNode::DeferredImpl::DeferredImpl(sharable::ValueNode * valueNode) -: m_valueNode(valueNode) -, m_aNewValue(valueNode->getValue()) -, m_bToDefault(false) -, m_bChange(false) -{} -//----------------------------------------------------------------------------- - -void ValueMemberNode::DeferredImpl::setValue(com::sun::star::uno::Any const& aNewValue, sharable::ValueNode * originalNode) -{ - OSL_ENSURE(originalNode == m_valueNode, "Incorrect original node passed"); - - m_aNewValue = aNewValue; - m_bToDefault = false; - - m_bChange = originalNode->info.isDefault() || aNewValue != originalNode->getValue(); -} -//----------------------------------------------------------------------------- - -void ValueMemberNode::DeferredImpl::setValueToDefault(sharable::ValueNode * originalNode) -{ - OSL_ENSURE(originalNode == m_valueNode, "Incorrect original node passed"); - - m_aNewValue = originalNode->getDefaultValue(); - m_bToDefault = true; - - m_bChange = !originalNode->info.isDefault(); -} -//----------------------------------------------------------------------------- - -std::auto_ptr<ValueChange> ValueMemberNode::DeferredImpl::preCommitChange() -{ - OSL_ENSURE(isChange(), "Trying to commit a non-change"); - - sharable::ValueNode * originalNode = getOriginalNode(); - - // first find the mode of the change - ValueChange::Mode eMode; - - if (m_bToDefault) - eMode = ValueChange::setToDefault; - - else if (! originalNode->info.isDefault()) - eMode = ValueChange::changeValue; - - else - eMode = ValueChange::wasDefault; - - // now make a ValueChange - std::auto_ptr<ValueChange>pChange( new ValueChange( originalNode->info.getName(), - sharable::node(originalNode)->getAttributes(), - eMode, - this->getNewValue(), - originalNode->getValue() - ) ); - - return pChange; -} -//----------------------------------------------------------------------------- - -void ValueMemberNode::DeferredImpl::finishCommit(ValueChange& rChange) -{ - { (void)rChange; } - OSL_ENSURE(rChange.getNewValue() == this->getNewValue(),"Committed change does not match the intended value"); - - sharable::ValueNode * originalNode = getOriginalNode(); - - m_aNewValue = originalNode->getValue(); - m_bToDefault = false; - - OSL_ENSURE(rChange.getNewValue() == m_aNewValue,"Committed change does not match the actual value"); - m_bChange= false; -} -//----------------------------------------------------------------------------- - -void ValueMemberNode::DeferredImpl::revertCommit(ValueChange& rChange) -{ - { (void)rChange; } - - OSL_ENSURE(rChange.getNewValue() == this->getNewValue(),"Reverted change does not match the intended value"); - OSL_ENSURE(isChange(), "ValueMemeberNode::DeferredImpl: No Changes to revert"); -} -//----------------------------------------------------------------------------- - -void ValueMemberNode::DeferredImpl::failedCommit(ValueChange&) -{ - sharable::ValueNode * originalNode = getOriginalNode(); - - // discard the change - m_aNewValue = originalNode->getValue(); - m_bToDefault = false; - - m_bChange= false; -} -//----------------------------------------------------------------------------- -ValueChangeImpl* ValueMemberNode::DeferredImpl::collectChange() -{ - sharable::ValueNode * originalNode = getOriginalNode(); - - com::sun::star::uno::Any aOldValue = originalNode->getValue(); - if (!m_bChange) - { - return NULL; - } - else if (m_bToDefault) - { - OSL_ASSERT( m_aNewValue == originalNode->getDefaultValue() ); - return new ValueResetImpl( m_aNewValue, aOldValue ); - } - - else - { - return new ValueReplaceImpl( m_aNewValue, aOldValue ); - } -} -//----------------------------------------------------------------------------- - -ValueChangeImpl* ValueMemberNode::DeferredImpl::adjustToChange(ValueChange const& rExternalChange) -{ - if (!m_bChange) - { - return NULL; - } - else if (m_bToDefault && rExternalChange.getMode() == ValueChange::changeDefault) - { - OSL_ASSERT( m_aNewValue == rExternalChange.getOldValue() ); - - m_aNewValue = rExternalChange.getNewValue(); - - return new ValueReplaceImpl(m_aNewValue, rExternalChange.getOldValue()); - } - else // return Surrogate - does not honor m_bToDefault - { - return new ValueReplaceImpl(m_aNewValue, m_aNewValue); - } -} -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- - } -} |