freStatisticDictionary.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: freStatisticDictionary.h,v $
00007   Language:  C++
00008 
00009 
00010   Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics,
00011   Institute for Medical Biometry and Informatics, University of Heidelberg,
00012   Germany). All rights reserved.
00013   See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm
00014   for details.
00015 
00016      This software is distributed WITHOUT ANY WARRANTY; without even 
00017      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00018      PURPOSE.  See the above copyright notices for more information.
00019 
00020 =========================================================================*/
00021 #ifndef __freStatisticDictionary_h
00022 #define __freStatisticDictionary_h
00023 
00024 #include "freElementals.h"
00025 
00026 #include "freStatisticValueDefinition.h"
00027 #include "freStatisticEntryDefinition.h"
00028 
00029 #include "freXMLCollectionBase.h"
00030 
00031 namespace FREE
00032 {
00033 
00034 freXMLTagMacro(StatisticDictionary, "freStat:Dictionary");
00035 freXMLTagMacro(StatisticValueDefinitions, "freStat:ValueDefinitions");
00036 freXMLTagMacro(StatisticEntryDefinitions, "freStat:EntryDefinitions");
00037 
00045 class StatisticDictionary:  public XMLStreamObject, public itk::LightObject
00046 {
00047 public:
00048   typedef StatisticDictionary  Self;
00049   typedef itk::LightObject Superclass;
00050   typedef itk::SmartPointer<Self>        Pointer;
00051   typedef itk::SmartPointer<const Self>  ConstPointer;
00052 
00053         itkTypeMacro(StatisticDictionary, XMLStreamObject);
00054   itkNewMacro(StatisticDictionary);
00055 
00056   typedef StatisticValueDefinition::IDType ValueIDType;
00057   typedef StatisticEntryDefinition::IDType EntryIDType;
00058   typedef unsigned long IndexType;
00059 
00060   typedef XMLCollectionBase<StatisticValueDefinition> ValueDefinitionsType;
00061   typedef XMLCollectionBase<StatisticEntryDefinition> EntryDefinitionsType;
00062 
00063   StatisticValueDefinition* AddValueDefinition();
00064   StatisticValueDefinition* AddValueDefinition(const std::string& sIDPath,
00065                                                const std::string& sName,
00066                                                const std::string& sDescription);
00067 
00068   StatisticValueDefinition* GetValueDefinitionByName(const std::string& sIDPath, const std::string& sName);
00069   StatisticValueDefinition* GetValueDefinitionByIndex(const IndexType& index);
00070   StatisticValueDefinition* GetValueDefinitionByID(const ValueIDType& id);
00071   ValueIDType GetValueDefinitionIDByName(const std::string& sIDPath, const std::string& sName);
00072 
00073   StatisticEntryDefinition* AddEntryDefinition();
00074   StatisticEntryDefinition* AddEntryDefinition(const std::string& sIDPath,
00075                                                const std::string& sName, 
00076                                                const std::string& sControllerID,
00077                                                const std::string& sDescription);
00078 
00079   StatisticEntryDefinition* GetEntryDefinitionByName(const std::string& sIDPath, const std::string& sName);
00080   StatisticEntryDefinition* GetEntryDefinitionByIndex(const IndexType& index);
00081   StatisticEntryDefinition* GetEntryDefinitionByID(const EntryIDType& id);
00082   EntryIDType GetEntryDefinitionIDByName(const std::string& sIDPath, const std::string& sName);
00083 
00084   virtual ~StatisticDictionary();
00085 
00087   virtual void Reset();
00088 
00089 protected:
00090   StatisticDictionary();
00091 
00092   ValueDefinitionsType m_ValueDefs;
00093   EntryDefinitionsType m_EntryDefs;
00094 
00096   virtual void SubElementLoadProcessing(const std::string& rsXMLSubTag, const std::string& rsXMLSubElement, const std::string& rsXMLSubData);
00097 
00099   virtual std::string SaveData(const unsigned int& iDepth, bool& bHasSubElements) const;
00100 };
00101 
00102 } //end of namespace FREE
00103 
00104 #endif

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