00001 /*========================================================================= 00002 00003 Program: F.R.E.E. - flexible registration evaluation engine 00004 Version: v.1.0.0 00005 Date: $Date: 2006/09/01 12:00:00 $ 00006 Module: $RCSfile: freComponentSetupCollection.h,v $ 00007 Language: C++ 00008 00009 00010 00011 Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics, 00012 Institute for Medical Biometry and Informatics, University of Heidelberg, 00013 Germany). All rights reserved. 00014 See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm 00015 for details. 00016 00017 This software is distributed WITHOUT ANY WARRANTY; without even 00018 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00019 PURPOSE. See the above copyright notices for more information. 00020 00021 =========================================================================*/ 00022 #ifndef __freComponentSetupCollection_h 00023 #define __freComponentSetupCollection_h 00024 00025 #include "freComponentSetup.h" 00026 #include "freXMLKeyedCollectionBase.h" 00027 00028 00029 namespace FREE 00030 { 00031 00032 class ComponentSetupIdentifier 00033 { 00034 public: 00035 static bool KeyMatches (const ComponentID& rKey, const ComponentSetup& rElement) {return rElement.GetComponentID() == rKey;}; 00036 }; 00037 00045 class ComponentSetupCollection: public XMLKeyedCollectionBase<ComponentID, ComponentSetup, ComponentSetupIdentifier> 00046 { 00047 public: 00048 typedef XMLKeyedCollectionBase<ComponentID, ComponentSetup, ComponentSetupIdentifier> Superclass; 00049 typedef Superclass::ElementType ComponentType; 00050 typedef Superclass::ElementsCountType ComponentsCountType; 00051 00052 itkTypeMacro(ComponentSetupCollection, XMLKeyedCollectionBase); 00053 00055 ComponentSetupCollection(ComponentSetup* pParent = NULL); 00057 ComponentSetupCollection( const ComponentSetupCollection& rCollection ); 00058 virtual ~ComponentSetupCollection(); 00059 00061 ComponentSetupCollection& operator = (const ComponentSetupCollection& rCollection); 00062 00067 ComponentsCountType AddElement(const ComponentID& compID = cComp_NotDefined); 00068 00074 ComponentsCountType AddElement(const ComponentType& rComponent); 00075 00079 using Superclass::AddElement; 00080 00081 protected: 00083 virtual void SubElementLoadProcessing(const std::string& rsXMLSubTag, const std::string& rsXMLSubElement, const std::string& rsXMLSubData); 00084 00086 ComponentSetup* m_pParent; 00087 }; 00088 00089 }//end of namespace FREE 00090 00091 #endif
1.5.3 written by Dimitri van Heesch,
© 1997-2000