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: freSetup.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 __freSetup_h 00023 #define __freSetup_h 00024 00025 #include "freComponentSetup.h" 00026 #include "freProfileRequirements.h" 00027 00028 namespace FREE 00029 { 00038 class Setup: public XMLStreamObject, public itk::LightObject 00039 { 00040 public: 00041 typedef Setup Self; 00042 typedef itk::LightObject Superclass; 00043 typedef itk::SmartPointer<Self> Pointer; 00044 typedef itk::SmartPointer<const Self> ConstPointer; 00045 00046 itkTypeMacro(Setup, XMLStreamObject); 00047 itkNewMacro(Setup); 00048 00049 typedef ComponentSetup SectionSetup; 00050 typedef std::vector<SectionSetup*> SectionVector; 00051 typedef ComponentSetup MediaContainerSetup; 00052 typedef std::vector<ComponentSetup*> MediaContainerVector; 00053 00054 std::string GetName() const; 00055 void SetName(const std::string& sName); 00056 00057 std::string GetDescription() const; 00058 void SetDescription(const std::string& sDescription); 00059 00062 virtual void Reset(); 00063 00064 virtual ~Setup(); 00065 00067 Setup& operator = (const Setup& rSetup); 00068 00069 ComponentSetupCollection& Components() { return m_Root->Components();}; 00070 const ComponentSetupCollection& Components() const { return m_Root->Components();}; 00071 00076 ComponentSetup* GetComponentByIDPath(const IDPath& idPath); 00077 00078 SectionVector GetSections() const; 00079 SectionSetup* GetSection(const unsigned int& iIndex) const; 00080 unsigned int GetSectionCount() const; 00081 00082 ComponentSetup* const GetRootComponent() { return m_Root.GetPointer();}; 00083 const ComponentSetup* const GetRootComponent() const { return m_Root.GetPointer();}; 00084 00085 protected: 00087 Setup(); 00088 00089 virtual void SubElementLoadProcessing(const std::string& rsXMLSubTag, const std::string& rsXMLSubElement, const std::string& rsXMLSubData); 00090 00091 virtual std::string SaveData(const unsigned int& iDepth, bool& bHasSubElements) const; 00092 00093 virtual void SaveAttributes(AttributesSaveListType& rAttributes) const; 00094 00095 virtual void SetNeededSubElements(); 00096 00099 std::string m_sName; 00100 00102 std::string m_sDescription; 00103 00105 ComponentSetup::Pointer m_Root; 00106 00107 private: 00109 Setup( const Setup& setup ); 00110 }; 00111 00112 }//end of namespace FREE 00113 00114 #endif
1.5.3 written by Dimitri van Heesch,
© 1997-2000