summaryrefslogtreecommitdiff
path: root/configmgr/source/tree/cmtreemodel.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'configmgr/source/tree/cmtreemodel.cxx')
-rw-r--r--configmgr/source/tree/cmtreemodel.cxx374
1 files changed, 0 insertions, 374 deletions
diff --git a/configmgr/source/tree/cmtreemodel.cxx b/configmgr/source/tree/cmtreemodel.cxx
deleted file mode 100644
index 24033440f065..000000000000
--- a/configmgr/source/tree/cmtreemodel.cxx
+++ /dev/null
@@ -1,374 +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: cmtreemodel.cxx,v $
- * $Revision: 1.24 $
- *
- * 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 "valuenode.hxx"
-#include "change.hxx"
-#include "configexcept.hxx"
-#include "strdecl.hxx"
-#include <osl/diagnose.h>
-
-#ifndef INCLUDED_ALGORITHM
-#define INCLUDED_ALGORITHM
-#include <algorithm>
-#endif
-
-//..........................................................................
-namespace configmgr
-{
-//==========================================================================
-
-bool isLocalizedValueSet(ISubtree const& _aSubtree)
-{
- if ( !_aSubtree.isSetNode()) return false;
- if ( !_aSubtree.isLocalized()) return false;
- if ( !_aSubtree.getElementTemplateModule().equals(TEMPLATE_MODULE_LOCALIZED_VALUE) ) return false;
- return true;
-}
-// -----------------------------------------------------------------------------
-
-bool isLocalizedValueSet(SubtreeChange const& _aSubtree)
-{
- if ( !_aSubtree.isSetNodeChange()) return false;
- if ( !_aSubtree.isLocalizedContainer()) return false;
- if ( !_aSubtree.getElementTemplateModule().equals(TEMPLATE_MODULE_LOCALIZED_VALUE) ) return false;
- return true;
-}
-
-// -----------------------------------------------------------------------------
-
-bool isValueSet(SubtreeChange const& _aSubtree)
-{
- if ( !_aSubtree.isSetNodeChange()) return false;
- if ( !_aSubtree.getElementTemplateModule().equals(TEMPLATE_MODULE_NATIVE_VALUE) ) return false;
- return true;
-}
-//==========================================================================
-
-//==========================================================================
-//= Change
-//==========================================================================
-void Change::swap(Change& aOther)
-{
- std::swap(m_aName, aOther.m_aName);
- std::swap(m_bIsToDefault, aOther.m_bIsToDefault);
-}
-
-//==========================================================================
-//= SubtreeChange
-//==========================================================================
-//--------------------------------------------------------------------------
-void SubtreeChange::swap(SubtreeChange& aOther)
-{
- Change::swap(aOther);
- m_aChanges.swap(aOther.m_aChanges);
- std::swap(m_sTemplateName, aOther.m_sTemplateName);
- std::swap(m_sTemplateModule, aOther.m_sTemplateModule);
- std::swap(m_aAttributes, aOther.m_aAttributes);
-}
-
-//--------------------------------------------------------------------------
-SubtreeChange::~SubtreeChange()
-{
- for(Children::iterator aIter = m_aChanges.begin();
- aIter != m_aChanges.end();
- ++aIter)
- {
- // Change* pChange = aIter->second;
- delete aIter->second;
- }
-}
-
-// -----------------------------------------------------------------------------
-SubtreeChange::SubtreeChange(const SubtreeChange& _aObj, treeop::DeepChildCopy)
- :Change(_aObj),
- m_sTemplateName(_aObj.m_sTemplateName),
- m_sTemplateModule(_aObj.m_sTemplateModule),
- m_aAttributes(_aObj.m_aAttributes)
-{
- for(Children::const_iterator aIter = _aObj.m_aChanges.begin();
- aIter != _aObj.m_aChanges.end();
- ++aIter)
- {
- OSL_ASSERT(aIter->second);
- Children::value_type aCopy(aIter->first, aIter->second->clone().release());
- m_aChanges.insert(m_aChanges.end(), aCopy);
- }
-}
-
-// -----------------------------------------------------------------------------
-std::auto_ptr<Change> SubtreeChange::clone() const
-{
- return std::auto_ptr<Change>(new SubtreeChange(*this, treeop::DeepChildCopy()));
-}
-//--------------------------------------------------------------------------
-void SubtreeChange::addChange(std::auto_ptr<Change> aChange)
-{
- rtl::OUString aNodeName(aChange->getNodeName());
- m_aChanges.find(aNodeName);
- OSL_ENSURE(m_aChanges.end() == m_aChanges.find(aNodeName),
- "SubtreeChange::addChange : overwriting an existent change !");
- delete m_aChanges[aNodeName];
- m_aChanges[aNodeName] = aChange.release();
-}
-
-//--------------------------------------------------------------------------
-::std::auto_ptr<Change> SubtreeChange::removeChange(rtl::OUString const& _rName)
-{
- Children::iterator aIter = m_aChanges.find(_rName);
-
- ::std::auto_ptr<Change> aReturn;
- if (m_aChanges.end() != aIter)
- {
- aReturn = ::std::auto_ptr<Change>(aIter->second);
- m_aChanges.erase(aIter);
- }
- return aReturn;
-}
-
-//--------------------------------------------------------------------------
-Change* SubtreeChange::getChange(rtl::OUString const& _rName)
-{
- return doGetChild(_rName);
-}
-
-//--------------------------------------------------------------------------
-Change const* SubtreeChange::getChange(rtl::OUString const& _rName) const
-{
- return doGetChild(_rName);
-}
-
-//--------------------------------------------------------------------------
-void SubtreeChange::dispatch(ChangeTreeAction& _anAction) const
-{
- _anAction.handle(*this);
-}
-
-//--------------------------------------------------------------------------
-void SubtreeChange::dispatch(ChangeTreeModification& _anAction)
-{
- _anAction.handle(*this);
-}
-
-//--------------------------------------------------------------------------
-void SubtreeChange::forEachChange(ChangeTreeAction& _anAction) const
-{
- ::std::map< ::rtl::OUString,Change* >::const_iterator aIter = m_aChanges.begin();
- while (aIter != m_aChanges.end())
- {
- (aIter++)->second->dispatch(_anAction);
- }
-}
-
-//--------------------------------------------------------------------------
-void SubtreeChange::forEachChange(ChangeTreeModification& _anAction)
-{
- ::std::map< ::rtl::OUString,Change* >::const_iterator aIter = m_aChanges.begin();
- while (aIter != m_aChanges.end())
- {
- (aIter++)->second->dispatch(_anAction);
- }
-}
-
-//--------------------------------------------------------------------------
-Change* SubtreeChange::doGetChild(rtl::OUString const& _rName) const
-{
- Children::const_iterator aIter = m_aChanges.find(_rName);
- return (aIter != m_aChanges.end()) ? aIter->second : NULL;
-}
-
-//--------------------------------------------------------------------------
-uno::Sequence< rtl::OUString > SubtreeChange::elementNames() const
-{
- uno::Sequence< rtl::OUString > aReturn(size());
- rtl::OUString* pReturn = aReturn.getArray();
-
- for ( Children::const_iterator aCollector = m_aChanges.begin();
- aCollector != m_aChanges.end();
- ++aCollector, ++pReturn
- )
- {
- *pReturn = aCollector->first;
- }
-
- return aReturn;
-}
-
-//--------------------------------------------------------------------------
-SubtreeChange::MutatingChildIterator SubtreeChange::begin_changes() throw()
-{
- return MutatingChildIterator(m_aChanges.begin());
-}
-
-//--------------------------------------------------------------------------
-SubtreeChange::MutatingChildIterator SubtreeChange::end_changes() throw()
-{
- return MutatingChildIterator(m_aChanges.end());
-}
-
-//--------------------------------------------------------------------------
-SubtreeChange::ChildIterator SubtreeChange::begin() const throw()
-{
- return ChildIterator(this);
-}
-
-//--------------------------------------------------------------------------
-SubtreeChange::ChildIterator SubtreeChange::end() const throw()
-{
- return ChildIterator(this, ChildIterator::EndPos());
-}
-
-//--------------------------------------------------------------------------
-SubtreeChange::ChildIterator::ChildIterator(const SubtreeChange* _pTree)
- :m_aNames(_pTree->elementNames())
- ,m_pTree(_pTree)
- ,m_nPos(0)
-{
-}
-
-//--------------------------------------------------------------------------
-SubtreeChange::ChildIterator::ChildIterator(const SubtreeChange* _pTree, struct EndPos)
- :m_aNames(_pTree->elementNames())
- ,m_pTree(_pTree)
- ,m_nPos(_pTree->size())
-{
-}
-
-//--------------------------------------------------------------------------
-Change const & SubtreeChange::ChildIterator::operator*() const
-{
- OSL_ENSURE(isValid(), "SubtreeChange::ChildIterator::operator* : invalid iterator !");
-
- if (!isValid())
- throw configuration::Exception("INTERNAL ERROR: Invalid SubtreeChange::ChildIterator dereferenced");
-
- return *m_pTree->getChange(m_aNames[m_nPos]);
-}
-
-//--------------------------------------------------------------------------
-Change const * SubtreeChange::ChildIterator::operator->() const
-{
- if (isValid())
- return m_pTree->getChange(m_aNames[m_nPos]);
- OSL_ENSURE(sal_False, "SubtreeChange::ChildIterator::operator-> : invalid iterator !");
- return NULL;
-}
-
-//--------------------------------------------------------------------------
-SubtreeChange::ChildIterator& SubtreeChange::ChildIterator::operator++()
-{
- OSL_ENSURE(m_nPos < m_aNames.getLength(), "SubtreeChange::ChildIterator : can't increment the end iterator !");
- if (m_nPos < m_aNames.getLength())
- ++m_nPos;
- return *this;
-}
-
-//--------------------------------------------------------------------------
-SubtreeChange::ChildIterator& SubtreeChange::ChildIterator::operator--()
-{
- OSL_ENSURE(m_nPos > 0, "SubtreeChange::ChildIterator : can't decrement the begin iterator !");
- if (m_nPos > 0)
- --m_nPos;
- return *this;
-}
-
-//--------------------------------------------------------------------------
-bool operator==(SubtreeChange::ChildIterator const& lhs, SubtreeChange::ChildIterator const& rhs)
-{
- return (lhs.m_pTree == rhs.m_pTree) && (lhs.m_nPos == rhs.m_nPos);
-}
-
-//==========================================================================
-//= SubtreeChangeReferrer
-//==========================================================================
-//--------------------------------------------------------------------------
-SubtreeChangeReferrer::SubtreeChangeReferrer(const SubtreeChange& _rSource)
- :SubtreeChange(_rSource, treeop::NoChildCopy())
-{
- ChildIterator aSourceChildren = _rSource.begin();
- while (aSourceChildren != _rSource.end())
- {
- const Change* pChange = &*aSourceChildren;
- OSL_ENSURE(pChange, "SubtreeChangeReferrer::SubtreeChangeReferrer : invalid change !");
- if (dynamic_cast< ValueChange const * >(pChange) != 0 ||
- dynamic_cast< RemoveNode const * >(pChange) != 0 ||
- dynamic_cast< AddNode const * >(pChange) != 0)
- SubtreeChange::addChange(::std::auto_ptr<Change>(const_cast<Change*>(pChange)));
- else if (dynamic_cast< SubtreeChange const * >(pChange) != 0 ||
- dynamic_cast< SubtreeChangeReferrer const * >(pChange) != 0)
- {
- SubtreeChange::addChange(::std::auto_ptr<Change>(new SubtreeChangeReferrer(*static_cast<const SubtreeChange*>(pChange))));
- }
- else
- OSL_ENSURE(sal_False, "SubtreeChangeReferrer::SubtreeChangeReferrer : unknown changes type !");
-
- ++aSourceChildren;
- }
-}
-
-//--------------------------------------------------------------------------
-SubtreeChangeReferrer::~SubtreeChangeReferrer()
-{
- for ( Children::iterator aChildren = m_aChanges.begin();
- aChildren != m_aChanges.end();
-
- )
- {
- const Change* pChange = aChildren->second;
- Children::iterator aCurrent = aChildren++;
-
- if (dynamic_cast< ValueChange const * >(pChange) != 0 ||
- dynamic_cast< RemoveNode const * >(pChange) != 0 ||
- dynamic_cast< AddNode const * >(pChange) != 0)
- {
- // we just hold references to the non-SubtreeChange-objects, so don't delete them
- m_aChanges.erase(aCurrent);
- }
- else if (dynamic_cast< SubtreeChange const * >(pChange) != 0 ||
- dynamic_cast< SubtreeChangeReferrer const * >(pChange) != 0)
- {
- // nothing to do
- }
- else
- OSL_ENSURE(sal_False, "SubtreeChangeReferrer::~SubtreeChangeReferrer : unknown changes type !");
- }
-
- // the base class will remove the remaining SubtreeChanges, which are SubtreeChangeReferrer's in real
-}
-
-//..........................................................................
-} // namespace configmgr
-//..........................................................................
-
-