]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOTreeAttributeDescriptor.h
No newline at end of file
[creaImageIO.git] / src2 / creaImageIOTreeAttributeDescriptor.h
index dc734bd62964469ef4d4600890d1366d5192866d..68f0da965af186c68791c86404a7b812ae6fcf65 100644 (file)
@@ -9,24 +9,48 @@ namespace creaImageIO
 
   namespace tree
   {
+         /**
+       * \ingroup Tree
+       */
     //=====================================================================
-    /// Descriptor of an attribute of a node of a tree (name, dicom group/element)
+    /// Descriptor of an attribute of a node of a Tree (name, dicom group/element)
     class AttributeDescriptor
     {    
     public:
       /// Flags
       /// The attribute is hidden (not visible to user)
-      static const unsigned int HIDDEN;
-      /// The attribute enters in unique identifier constitution (KEY)
-      static const unsigned int KEY;
+      static const unsigned int PRIVATE;
+      /// The attribute enters in unique identifier constitution 
+      static const unsigned int IDENTIFIER;
       /// The attribute enters in label constitution (for printing)
       static const unsigned int LABEL;
+          /// The attribute can be edited
+      static const unsigned int EDITABLE;
+
+         /// Types
+      /// The attribute is of numeric type
+      static const int NUMBER=1;
+      /// The attribute is of string type
+      static const int STRING=2;
+         /// The attribute's type is unknown
+      static const int UNKNOWN=0;
 
       /// Default ctor
       AttributeDescriptor()
        : mKey(""), mName(""), mGroup(0), mElement(0), mFlags(0)
       {
       }
+      /// Ctor with all explicitely
+      AttributeDescriptor(const std::string& key,
+                         const std::string& name,
+                         unsigned short group,
+                         unsigned short element,
+                         unsigned int flags)
+       : mKey(key), mName(name), mGroup(group), mElement(element), 
+         mFlags(flags)
+      {
+      }
+
       // Ctor with key, name and flags
       AttributeDescriptor(const std::string& key,
                          const std::string& name,
@@ -47,7 +71,7 @@ namespace creaImageIO
       unsigned short GetElement() const { return mElement; }
       /// Returns the flags of the attribute
       unsigned int GetFlags() const { return mFlags; }
-    
+         
       /// Extracts group and element from a key of the form "Dgroup_elem" 
       static void GetDicomGroupElementFromKey(const std::string& key,
                                              unsigned short& group,
@@ -56,6 +80,12 @@ namespace creaImageIO
       /// Replace simple quote by double quotes
       /// Cut string at NULL chars 
       void CleanName(std::string& str) const;
+         ///Decodes the type of attribute into the existing ones
+         void DecodeType(unsigned int& type) const;
+
+         bool isDateEntry() const;
+         bool isTimeEntry() const;
+
     private:
       std::string mKey;
       std::string mName;
@@ -73,16 +103,7 @@ namespace creaImageIO
 } // EO namespace creaImageIO
 
 
-/*
-//=====================================================================
-inline std::ostream& operator<<(std::ostream& s, 
-const creaImageIO::tree::AttributeDescriptor& d)
-{
-s << "[" << d.key << ":" << d.name << "]";
-return s;
-}
-//=====================================================================
-*/
+
 
 
 #endif // #ifndef __creaImageIOTreeAttributeDescriptor_h_INCLUDED__