]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOSQLiteTreeHandler.cpp
Added files to the doxygen documentation
[creaImageIO.git] / src2 / creaImageIOSQLiteTreeHandler.cpp
index 3a01e117f8a78f3861ede83c5200f4e054f57e8c..7d9f7ef4587ffeffbfb42abac854f05dff4666ff 100644 (file)
@@ -106,13 +106,7 @@ namespace creaImageIO
   {
     return false;
   }
-  //=====================================================================
-
-  //===================================================================== 
-  unsigned int SQLiteTreeHandler::GetNumberOfChildren(tree::Node* n) 
-  { 
-    return 0; 
-  }
+  
   //===================================================================== 
 
   //===================================================================== 
@@ -336,22 +330,22 @@ namespace creaImageIO
            
            
            // Add Attribute 'ID' to Description
-           GetTree().GetLevelDescriptor(l).Add
+           GetTree().GetDescriptor().Add
              (AttributeDescriptor( "ID",
                                    "Database Identifier",
                                    0,0,
                                    AttributeDescriptor::PRIVATE
-                                   ));
+                                   ),l);
            
            if (l>1) 
              {
                // Add Attribute 'PARENT_ID' to Description
-               GetTree().GetLevelDescriptor(l).Add
+               GetTree().GetDescriptor().Add
                  (AttributeDescriptor( "PARENT_ID",
                                        "Database Parent Identifier",
                                        0,0,
                                        AttributeDescriptor::PRIVATE
-                                       ));
+                                       ),l);
              }
            
          }
@@ -440,7 +434,7 @@ namespace creaImageIO
 
     tree::Descriptor& desc = GetTree().GetDescriptor();
     // clears the existing one
-    desc.GetLevelDescriptorList().clear();
+    desc.Clear();
      
     int nblevel = 0;
     std::string query = "SELECT * FROM LEVELS";
@@ -451,7 +445,7 @@ namespace creaImageIO
       {
        std::string name = q.getStringField(0);
        GimmickMessage(2," * Importing level '"<<name<<"'"<<std::endl);
-       desc.GetLevelDescriptorList().push_back(LevelDescriptor(name));
+       desc.Add(LevelDescriptor(name));
        nblevel++;
        q.nextRow();
       }   
@@ -489,13 +483,13 @@ namespace creaImageIO
            std::string name(q.getStringField(1));
            GimmickMessage(2,"  - Importing attribute '"<<key<<"' '"<<name
                           <<"'"<<std::endl);
-           desc.GetLevelDescriptor(level).Add
+           desc.Add
              (AttributeDescriptor( key, // Key
                                    name, // Name
                                    q.getIntField(2), // Group
                                    q.getIntField(3), // Element 
                                    q.getIntField(4) // Flags
-                                   ));
+                                   ),level);
            if ( key == "ID" ) 
              {
                ID_found = true;
@@ -682,6 +676,7 @@ namespace creaImageIO
     // Query DB
     int level = node->GetLevel();
     std::string query = "SELECT * FROM ";
+       
     query += GetTree().GetLevelDescriptor(level+1).GetName();
     if (level>0)
       {
@@ -853,6 +848,37 @@ namespace creaImageIO
       }
   }
 
+  //=====================================================================
+
+  //===================================================================== 
+  unsigned int SQLiteTreeHandler::GetNumberOfChildren(tree::Node* n) 
+  { 
+         // Query DB
+       int nb=0;
+    int level = n->GetLevel();
+       if(GetTree().GetNumberOfLevels()!=(level+1))
+       {
+       std::string query = "SELECT * FROM ";
+    query += GetTree().GetLevelDescriptor(level+1).GetName();
+    if (level>0)
+      {
+       query += " WHERE PARENT_ID='" + n->UnsafeGetAttribute("ID") 
+         + "'";
+      }
+
+    CppSQLite3Query q;
+    QUERYDB(query,q);
+       
+
+               while (!q.eof())
+               {
+                       nb++;
+                       q.nextRow();
+               }
+       }
+    return nb; 
+  }
+
   /*
   //=====================================================================
   bool SQLiteTreeHandler::DBInsert(Node* alien_node,