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: freProfileRequirement.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 __freProfileRequirement_h 00023 #define __freProfileRequirement_h 00024 00025 #include "freProfileOption.h" 00026 #include "freIDPath.h" 00027 #include "freXMLCollectionBase.h" 00028 00029 #include "itkLightObject.h" 00030 00031 namespace FREE 00032 { 00033 namespace CtrlProfile 00034 { 00035 00041 class ProfileRequirement: public FREE::XMLCollectionBase<ProfileOption>, public itk::LightObject 00042 { 00043 public: 00044 typedef ProfileRequirement Self; 00045 typedef XMLCollectionBase<ProfileOption> Superclass; 00046 typedef itk::SmartPointer<Self> Pointer; 00047 typedef itk::SmartPointer<const Self> ConstPointer; 00048 00049 itkTypeMacro(ProfileRequirement, XMLCollectionBase<ProfileOption>); 00050 itkNewMacro(ProfileRequirement); 00051 00052 typedef FREE::XMLCollectionBase<ProfileOption>::ElementsCountType ElementsCountType; 00053 00054 bool GetIsNegated () const { return m_bNegated; }; 00055 void SetIsNegated (const bool& Negated) { m_bNegated = Negated; }; 00056 00057 IDPath GetDestination () const { return m_Destination; }; 00058 void SetDestination (const IDPath& destination) { m_Destination = destination; }; 00059 00060 IDPath GetSource () const { return m_Source; }; 00061 void SetSource (const IDPath& source) { m_Source = source; }; 00062 00064 ProfileOption* AddProfileOption(); 00065 00066 void ResetProfilOptions(); 00067 00072 bool ProfileMatchesRequirement(const ControllerProfileBase& profile) const; 00073 00075 ProfileRequirement& operator = (const ProfileRequirement& rRequirement); 00076 00077 virtual void Reset(); 00078 00079 protected: 00080 ProfileRequirement(); 00081 00082 virtual ~ProfileRequirement(); 00083 00085 virtual void SubElementLoadProcessing(const std::string& rsXMLSubTag, const std::string& rsXMLSubElement, const std::string& rsXMLSubData); 00086 00088 virtual void AttributesLoadProcessing(const AttributesType& rAttributes); 00089 00091 virtual void SaveAttributes(AttributesSaveListType& rAttributes) const; 00092 00094 bool m_bNegated; 00095 00097 IDPath m_Destination; 00098 00104 IDPath m_Source; 00105 00106 private: 00108 ProfileRequirement( const ProfileRequirement& rRequirement); 00109 }; 00110 00111 }//end of namespace CtrlProfile 00112 }//end of namespace FREE 00113 00114 #endif
1.5.3 written by Dimitri van Heesch,
© 1997-2000