freProfileRequirement.h

Go to the documentation of this file.
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

Generated at Sat Oct 13 17:08:48 2007 for f.r.e.e. - Flexible Registration and Evaluation Engine by doxygen 1.5.3 written by Dimitri van Heesch, © 1997-2000