#ifndef __creaImageIOTreeLevelDescriptor_h_INCLUDED__ #define __creaImageIOTreeLevelDescriptor_h_INCLUDED__ #include #include namespace creaImageIO { namespace tree { /** * \ingroup Model */ //===================================================================== /// Descriptor of a level of a Tree (name, attributes, ...) class LevelDescriptor { public: /// Ctor with name LevelDescriptor(const std::string& name) : mName(name) {} /// Destructor ~LevelDescriptor() {} /// Returns the name of the level const std::string& GetName() { return mName; } /// Returns the number of attributes of the level unsigned int GetNumberOfAttributes() { return mAttributeDescriptorList.size(); } /// Adds the AttributeDescriptor to the list /// WARNING : You MUST use this method and NOT push_back directly in list /// ad IdentifierList and LabelList are also updated void Add(AttributeDescriptor); /// The type of attribute container typedef std::vector AttributeDescriptorListType; /// Returns the list of AttributeDescriptor //AttributeDescriptorListType& GetAttributeDescriptorList() //{ return mAttributeDescriptorList; } /// Returns the list of AttributeDescriptor (const) const AttributeDescriptorListType& GetAttributeDescriptorList() const { return mAttributeDescriptorList; } /// \return The list of attributes with flag IDENTIFIER set const std::vector& GetIdentifierList() const { return mIdentifierList; } /// \return The list of attributes with flag LABEL set const std::vector& GetLabelList() const { return mLabelList; } private: std::string mName; AttributeDescriptorListType mAttributeDescriptorList; /// The list of attributes with flag IDENTIFIER set std::vector mIdentifierList; /// The list of attributes with flag LABEL set std::vector mLabelList; }; // EO class LevelDescriptor //===================================================================== }// EO namespace tree } // EO namespace creaImageIO // EOF #endif