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: freProfileSubComponent.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 __freProfileSubComponent_h 00023 #define __freProfileSubComponent_h 00024 00025 #include "freElementals.h" 00026 #include "freXMLStreamObject.h" 00027 #include "freExceptions.h" 00028 00029 #include "itkLightObject.h" 00030 00031 namespace FREE 00032 { 00033 namespace CtrlProfile 00034 { 00043 class SubComponent: public FREE::XMLStreamObject, public itk::LightObject 00044 { 00045 public: 00046 typedef SubComponent Self; 00047 typedef itk::LightObject Superclass; 00048 typedef itk::SmartPointer<Self> Pointer; 00049 typedef itk::SmartPointer<const Self> ConstPointer; 00050 00051 itkTypeMacro(SubComponent, XMLStreamObject); 00052 itkNewMacro(SubComponent); 00053 00054 void SetComponentID(const std::string& sComponentID) {m_sComponentID = sComponentID; }; 00055 std::string GetComponentID() const { return m_sComponentID; }; 00056 00057 void SetDescription(const std::string& sDescription) {m_sDescription = sDescription; }; 00058 std::string GetDescription() const { return m_sDescription; }; 00059 00060 void SetIsRequired(unsigned int iRequired) {m_iRequired = iRequired; }; 00061 unsigned int GetIsRequired() const { return m_iRequired; }; 00062 00063 void SetControllerID(const std::string& sControllerID) { m_sControllerID = sControllerID; }; 00064 std::string GetControllerID() const { return m_sControllerID; }; 00065 00066 void SetInternal(bool bInternal) {m_bInternal = bInternal; }; 00067 bool GetInternal() const { return m_bInternal; }; 00068 00069 void SetIsTemplate(bool bTemplate) {m_bTemplate = bTemplate; }; 00070 bool GetIsTemplate() const { return m_bTemplate; }; 00071 00072 virtual void Reset(); 00073 00075 virtual SubComponent& operator = (const SubComponent& rSubComponent); 00076 00077 protected: 00078 SubComponent(); 00079 00080 virtual ~SubComponent(); 00081 00083 virtual void AttributesLoadProcessing(const AttributesType& rAttributes); 00084 00086 virtual void SaveAttributes(AttributesSaveListType& rAttributes) const; 00087 00089 virtual void SubElementLoadProcessing(const std::string& rsXMLSubTag, const std::string& rsXMLSubElement, const std::string& rsXMLSubData); 00090 00092 virtual std::string SaveData(const unsigned int& iDepth, bool& bHasSubElements) const; 00093 00096 std::string m_sComponentID; 00097 00099 std::string m_sDescription; 00100 00103 std::string m_sControllerID; 00104 00108 unsigned int m_iRequired; 00109 00113 bool m_bInternal; 00114 00117 bool m_bTemplate; 00118 00119 private: 00120 SubComponent( const SubComponent& rSubComponent); //suppressing default generation 00121 }; 00122 00123 }//end of namespace CtrlProfile 00124 }//end of namespace FREE 00125 00126 #endif
1.5.3 written by Dimitri van Heesch,
© 1997-2000