Back to index

salome-kernel  6.5.0
SALOMEDSImpl_UseCaseIterator.cxx
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 
00023 //  File   : SALOMEDSImpl_UseCaseIterator.cxx
00024 //  Author : Serge RUIN
00025 //  Module : SALOME
00026 //
00027 #include "SALOMEDSImpl_UseCaseIterator.hxx"
00028 #include "SALOMEDSImpl_SObject.hxx"
00029 #include "SALOMEDSImpl_Study.hxx"
00030 
00031 //============================================================================
00035 //============================================================================
00036 SALOMEDSImpl_UseCaseIterator::SALOMEDSImpl_UseCaseIterator()
00037 {
00038   _node = NULL;    
00039 }
00040 
00041 
00042 //============================================================================
00046 //============================================================================
00047 SALOMEDSImpl_UseCaseIterator::SALOMEDSImpl_UseCaseIterator(const DF_Label& theLabel, 
00048                                                            const std::string& theGUID,
00049                                                            const bool allLevels)
00050 :_guid(theGUID), _levels(allLevels)
00051 {
00052   if((_node = (SALOMEDSImpl_AttributeTreeNode*)theLabel.FindAttribute(_guid))) {
00053     _it.Initialize (_node, _levels);
00054   }
00055 }
00056 
00057 //============================================================================
00061 //============================================================================
00062 SALOMEDSImpl_UseCaseIterator::~SALOMEDSImpl_UseCaseIterator()
00063 {
00064 }
00065 
00066 //============================================================================
00070 //============================================================================
00071 void SALOMEDSImpl_UseCaseIterator::Init(bool allLevels)
00072 { 
00073   _it.Initialize (_node, allLevels);
00074 }
00075 
00076 //============================================================================
00080 //============================================================================
00081 bool SALOMEDSImpl_UseCaseIterator::More()
00082 {
00083   return _it.More();
00084 }
00085 
00086 //============================================================================
00090 //============================================================================
00091 void SALOMEDSImpl_UseCaseIterator::Next()
00092 {
00093   _it.Next();
00094 }
00095 
00096 
00097 //============================================================================
00101 //============================================================================
00102 
00103 SALOMEDSImpl_SObject SALOMEDSImpl_UseCaseIterator::Value()
00104 {
00105   DF_Label L = _it.Value()->Label();
00106   return SALOMEDSImpl_Study::SObject(L);
00107 }
00108 
00109 //============================================================================
00113 //============================================================================
00114 SALOMEDSImpl_UseCaseIterator* SALOMEDSImpl_UseCaseIterator::GetPersistentCopy() const
00115 {
00116   SALOMEDSImpl_UseCaseIterator* itr = new SALOMEDSImpl_UseCaseIterator();
00117   itr->_it = _it;
00118   itr->_node = _node;
00119   itr->_guid = _guid;
00120   itr->_levels = _levels;
00121   
00122   return itr;
00123 }