An attributed Tree structure. More...
#include <creaImageIOTree.h>


Public Types | |
| typedef std::map< std::string, std::string > | AttributeMapType |
| typedef std::vector< Node * > | ChildrenListType |
| The type of children container. | |
Public Member Functions | |
| Tree () | |
| Ctor. | |
| virtual | ~Tree () |
| Virtual destructor. | |
| virtual Tree * | GetTree () |
| Returns the descriptor of the tree. | |
| virtual const Tree * | GetTree () const |
| Returns the tree to which the node belongs. | |
| virtual int | GetLevel () const |
| Returns the level of the node in the tree. | |
| const Descriptor & | GetDescriptor () const |
| Returns the Descriptor of the tree (const). | |
| Descriptor & | GetDescriptor () |
| Returns the descriptor of the tree. | |
| unsigned int | GetNumberOfLevels () |
| Returns the number of levels of the tree. | |
| const LevelDescriptor & | GetLevelDescriptor (int level) const |
| Returns the LevelDescriptor of a given level (const ref). | |
| const LevelDescriptor::AttributeDescriptorListType & | GetAttributeDescriptorList (int level, int type=0) const |
| virtual void | Print () const |
| Print the node. | |
| void | CopyAttributeDescriptorList (int level) |
| Copy descriptor list without ID tag. | |
| const std::string | isAttributeExist (const std::string i_attr) |
| Test if this attribute is available in this tree description. | |
| void | InitializeAttributeMap () |
| Initializes the attribute map i.e. creates the entries. | |
| const LevelDescriptor & | GetLevelDescriptor () const |
| Returns the level descriptor of the node. | |
| Node * | GetParent () const |
| Returns the parent of the node. | |
| unsigned int | GetNumberOfChildren () const |
| bool | GetChildrenLoaded () const |
| Returns true iff the node's children are loaded. | |
| void | SetChildrenLoaded (bool l) |
| Sets the node's children. | |
| ChildrenListType & | GetChildrenList () |
| Returns the list of children. | |
| const ChildrenListType & | GetChildrenList () const |
| Returns the list of children (const). | |
| int | RemoveChildrenFromList (Node *) |
| Remove the given children from the children list. | |
| AttributeMapType & | GetAttributeMap () |
| Get the Attributes Map. | |
| const AttributeMapType & | GetAttributeMap () const |
| Get the Attributes Map. | |
| const std::string & | GetAttribute (const std::string &k) const |
| Get the Attribute for a specific key. | |
| const std::string & | GetCleanAttribute (const std::string &k) const |
| Get the Attribute for a specific key without OS dependance (not implemented). | |
| void | SetAttribute (const std::string &k, const std::string &v) |
| Set an Attribute for a specific key. | |
| void | UnsafeSetAttribute (const std::string &k, const std::string &v) |
| Set an Attribute for a specific key(unsafe mode). | |
| const AttributeDescriptor & | GetAttributeDescriptor (const std::string &k) const |
| Get Descriptor for an Attribute. | |
| bool | Matches (const AttributeMapType &) const |
| Returns true if the KEY attributes of the node match those of the map provided. | |
| template<class T > | |
| T | GetData () const |
| Returns the node data casted into the type T. | |
| void | SetData (boost::shared_ptr< NodeData > d) |
| Sets the node data. Deletes existing data if any. | |
| void | SortChildren (const LexicographicalComparator &) |
| Sorts the children of the node. | |
| std::string | GetLabel () const |
| Get the Label of the node. | |
Private Attributes | |
| Descriptor | mDescriptor |
An attributed Tree structure.
Definition at line 27 of file creaImageIOTree.h.
typedef std::map<std::string,std::string> creaImageIO::tree::Node::AttributeMapType [inherited] |
Definition at line 39 of file creaImageIOTreeNode.h.
typedef std::vector<Node*> creaImageIO::tree::Node::ChildrenListType [inherited] |
The type of children container.
Definition at line 80 of file creaImageIOTreeNode.h.
| creaImageIO::tree::Tree::Tree | ( | ) |
Ctor.
Definition at line 10 of file creaImageIOTree.cpp.
References GimmickMessage.
: Node(0) { GimmickMessage(5,"Default Tree constructor" << std::endl); }
| creaImageIO::tree::Tree::~Tree | ( | ) | [virtual] |
| void creaImageIO::tree::Tree::CopyAttributeDescriptorList | ( | int | level | ) | [inline] |
Copy descriptor list without ID tag.
Definition at line 68 of file creaImageIOTree.h.
References creaImageIO::tree::Descriptor::CopyAttributeDescriptorList(), and GetDescriptor().
Referenced by creaImageIO::SQLiteTreeHandler::DBCreate(), and creaImageIO::SQLiteTreeHandler::DBImportTreeDescription().
{
GetDescriptor().CopyAttributeDescriptorList(level);
}


| const std::string & creaImageIO::tree::Node::GetAttribute | ( | const std::string & | k | ) | const [inherited] |
Get the Attribute for a specific key.
Definition at line 145 of file creaImageIOTreeNode.cpp.
References creaImageIO::tree::Node::mAttributeMap.
Referenced by creaImageIO::SQLiteTreeHandler::DBGraftToParent(), creaImageIO::SQLiteTreeHandler::DBLoadChildren(), creaImageIO::SQLiteTreeHandler::DBRecursiveRemoveNode(), creaImageIO::SQLiteTreeHandler::DBSetAttribute(), creaImageIO::TreeHandlerImageAdder::FindNode(), creaImageIO::TreeHandlerImageAdder::FindNodePartial(), creaImageIO::SQLiteTreeHandler::GetNumberOfChildren(), creaImageIO::WxEditFieldsPanel::OnComboChange(), creaImageIO::WxTreeView::OnDumpTags(), creaImageIO::TreeHandlerImageAdder::remove(), creaImageIO::TimestampDatabaseHandler::RemoveNode(), creaImageIO::GimmickView::RequestReading(), and creaImageIO::WxEditFieldsPanel::WxEditFieldsPanel().
{
// std::cout << "this = "<<(void*)this<<std::endl;
// std::cout << "mFieldValueMap="<<(void*)(&mFieldValueMap)<<std::endl;
AttributeMapType::const_iterator i = mAttributeMap.find(k);
if (i == mAttributeMap.end())
{
static std::string def("");
return def;
// CREAIMAGEIO_ERROR("DicomNode::GetFieldValue : no field with key '"<<k<<"'");
}
return i->second;
}

| const AttributeDescriptor & creaImageIO::tree::Node::GetAttributeDescriptor | ( | const std::string & | k | ) | const [inherited] |
Get Descriptor for an Attribute.
Returns the attribute descriptor of the passed parameter.
Definition at line 112 of file creaImageIOTreeNode.cpp.
References GetAttributeDescriptorList(), creaImageIO::tree::Node::GetLevel(), and creaImageIO::tree::Node::GetTree().
Referenced by creaImageIO::WxTreeView::SortLevel().
{
LevelDescriptor::AttributeDescriptorListType::const_iterator a;
for (a = GetTree()->GetAttributeDescriptorList(GetLevel()).begin();
a!= GetTree()->GetAttributeDescriptorList(GetLevel()).end();
++a)
{
if(a->GetKey()==k)
{
return *a;
}
}
return *a;
}


| const LevelDescriptor::AttributeDescriptorListType& creaImageIO::tree::Tree::GetAttributeDescriptorList | ( | int | level, | |
| int | type = 0 | |||
| ) | const [inline] |
Returns the AttributeDescriptorList of a given level (const ref) type = 0 all attributes type = 1 without ID and PATIENT_ID
Definition at line 61 of file creaImageIOTree.h.
References creaImageIO::tree::Descriptor::GetAttributeDescriptorList(), and GetDescriptor().
Referenced by creaImageIO::Synchronizer::AttributesMatch(), creaImageIO::TreeHandlerImageAdder::CheckAttributes(), creaImageIO::WxTreeView::CreateCtrl(), creaImageIO::SQLiteTreeHandler::DBCreate(), creaImageIO::SQLiteTreeHandler::DBImportTreeDescription(), creaImageIO::SQLiteTreeHandler::getAllAttributes(), creaImageIO::tree::Node::GetAttributeDescriptor(), creaImageIO::WxTreeView::GetAttributes(), creaImageIO::tree::Node::InitializeAttributeMap(), creaImageIO::tree::Node::Node(), creaImageIO::WxTreeView::OnDumpTags(), creaImageIO::WxTreeView::OnEditField(), creaImageIO::SQLiteTreeHandler::SQLAppendAttributesDefinition(), and creaImageIO::WxTreeView::WxTreeView().
{ return GetDescriptor().GetAttributeDescriptorList(level, type); }


| AttributeMapType& creaImageIO::tree::Node::GetAttributeMap | ( | ) | [inline, inherited] |
Get the Attributes Map.
Definition at line 91 of file creaImageIOTreeNode.h.
References creaImageIO::tree::Node::mAttributeMap.
Referenced by creaImageIO::SQLiteTreeHandler::SQLAppendAttributesValues().
{ return mAttributeMap; }

| const AttributeMapType& creaImageIO::tree::Node::GetAttributeMap | ( | ) | const [inline, inherited] |
Get the Attributes Map.
Definition at line 94 of file creaImageIOTreeNode.h.
References creaImageIO::tree::Node::mAttributeMap.
{ return mAttributeMap; }
| ChildrenListType& creaImageIO::tree::Node::GetChildrenList | ( | ) | [inline, inherited] |
Returns the list of children.
Definition at line 82 of file creaImageIOTreeNode.h.
References creaImageIO::tree::Node::mChildren.
Referenced by creaImageIO::SQLiteTreeHandler::DBGetParent(), creaImageIO::SQLiteTreeHandler::DBLoadChildren(), creaImageIO::SQLiteTreeHandler::DBRecursiveRemoveNode(), creaImageIO::TreeHandlerImageAdder::DeleteDriveFromMainDB(), creaImageIO::TreeHandlerImageAdder::FindNode(), creaImageIO::TreeHandlerImageAdder::FindNodePartial(), creaImageIO::tree::Node::Node(), creaImageIO::tree::Node::Print(), Print(), creaImageIO::tree::Node::RemoveChildrenFromList(), creaImageIO::TreeHandlerImageAdder::RemoveFile(), creaImageIO::TimestampDatabaseHandler::RemoveNode(), creaImageIO::TreeHandlerImageAdder::Synchronize(), and creaImageIO::tree::Node::~Node().
{ return mChildren; }

| const ChildrenListType& creaImageIO::tree::Node::GetChildrenList | ( | ) | const [inline, inherited] |
Returns the list of children (const).
Definition at line 84 of file creaImageIOTreeNode.h.
References creaImageIO::tree::Node::mChildren.
{ return mChildren; }
| bool creaImageIO::tree::Node::GetChildrenLoaded | ( | ) | const [inline, inherited] |
Returns true iff the node's children are loaded.
Definition at line 74 of file creaImageIOTreeNode.h.
References creaImageIO::tree::Node::mChildrenLoaded.
Referenced by creaImageIO::SQLiteTreeHandler::DBLoadChildren().
{ return mChildrenLoaded; }

| const std::string& creaImageIO::tree::Node::GetCleanAttribute | ( | const std::string & | k | ) | const [inherited] |
Get the Attribute for a specific key without OS dependance (not implemented).
| T creaImageIO::tree::Node::GetData | ( | ) | const [inline, inherited] |
Returns the node data casted into the type T.
Definition at line 117 of file creaImageIOTreeNode.h.
References creaImageIO::tree::Node::mData.
| Descriptor& creaImageIO::tree::Tree::GetDescriptor | ( | ) | [inline] |
Returns the descriptor of the tree.
Definition at line 47 of file creaImageIOTree.h.
References mDescriptor.
{ return mDescriptor; }
| const Descriptor& creaImageIO::tree::Tree::GetDescriptor | ( | ) | const [inline] |
Returns the Descriptor of the tree (const).
Definition at line 45 of file creaImageIOTree.h.
References mDescriptor.
Referenced by creaImageIO::TreeHandlerImageAdder::AddFile(), creaImageIO::Synchronizer::AttributesMatch(), creaImageIO::TreeHandlerImageAdder::CheckAttributes(), CopyAttributeDescriptorList(), creaImageIO::Gimmick::createDB(), creaImageIO::SQLiteTreeHandler::DBCreate(), creaImageIO::SQLiteTreeHandler::DBImportTreeDescription(), GetAttributeDescriptorList(), GetLevelDescriptor(), and GetNumberOfLevels().
{ return mDescriptor; }

| std::string creaImageIO::tree::Node::GetLabel | ( | ) | const [inherited] |
Get the Label of the node.
Definition at line 212 of file creaImageIOTreeNode.cpp.
References creaImageIO::tree::LevelDescriptor::GetLabelList(), creaImageIO::tree::Node::GetLevelDescriptor(), GimmickDebugMessage, GimmickError, and creaImageIO::tree::Node::mAttributeMap.
Referenced by creaImageIO::SQLiteTreeHandler::DBInsert(), creaImageIO::SQLiteTreeHandler::DBLoadChildren(), creaImageIO::SQLiteTreeHandler::DBSetAttribute(), creaImageIO::WxGimmickView::DumpTags(), creaImageIO::tree::Node::Matches(), creaImageIO::tree::Node::Print(), and Print().
{
std::string l;
const std::vector<std::string>& label
= GetLevelDescriptor().GetLabelList();
std::vector<std::string>::const_iterator i;
for (i = label.begin(); i != label.end(); )
{
GimmickDebugMessage(9,"LABEL '"<<*i<<"'"<<std::endl);
AttributeMapType::const_iterator j = mAttributeMap.find(*i);
if (j != mAttributeMap.end())
{
l += j->second;
++i;
if (i != label.end()) l += "|";
}
else
{
GimmickError("Node::GetLabel() : LABEL attribute '"
<<*i
<<"' is not in node attribute map (should be!)" );
}
}
if (l.size()==0) l="?";
return l;
}


| virtual int creaImageIO::tree::Tree::GetLevel | ( | ) | const [inline, virtual] |
Returns the level of the node in the tree.
Reimplemented from creaImageIO::tree::Node.
Definition at line 42 of file creaImageIOTree.h.
{ return 0; }
| const LevelDescriptor & creaImageIO::tree::Node::GetLevelDescriptor | ( | ) | const [inherited] |
Returns the level descriptor of the node.
Definition at line 103 of file creaImageIOTreeNode.cpp.
References creaImageIO::tree::Node::GetLevel(), GetLevelDescriptor(), and creaImageIO::tree::Node::GetTree().
Referenced by creaImageIO::tree::Node::GetLabel(), and creaImageIO::tree::Node::Matches().


| const LevelDescriptor& creaImageIO::tree::Tree::GetLevelDescriptor | ( | int | level | ) | const [inline] |
Returns the LevelDescriptor of a given level (const ref).
Definition at line 54 of file creaImageIOTree.h.
References GetDescriptor(), and creaImageIO::tree::Descriptor::GetLevelDescriptor().
Referenced by creaImageIO::SQLiteTreeHandler::DBCreate(), creaImageIO::SQLiteTreeHandler::DBImportTreeDescription(), creaImageIO::SQLiteTreeHandler::DBInsert(), creaImageIO::SQLiteTreeHandler::DBLoadChildren(), creaImageIO::SQLiteTreeHandler::DBRecursiveRemoveNode(), creaImageIO::SQLiteTreeHandler::DBSetAttribute(), creaImageIO::SQLiteTreeHandler::getAllAttributes(), creaImageIO::tree::Node::GetLevelDescriptor(), creaImageIO::SQLiteTreeHandler::GetNumberOfChildren(), creaImageIO::SQLiteTreeHandler::GetUpLevelNodeId(), creaImageIO::WxTreeView::OnLocalCopy(), creaImageIO::WxTreeView::RemoveSelected(), and creaImageIO::WxTreeView::WxTreeView().
{ return GetDescriptor().GetLevelDescriptor(level); }


| unsigned int creaImageIO::tree::Node::GetNumberOfChildren | ( | ) | const [inline, inherited] |
Returns the number of children of the node. Warning : if the children are not loaded then might return 0 even if the node has children ! see TreeHandler::GetNumberOfChildren
Definition at line 71 of file creaImageIOTreeNode.h.
References creaImageIO::tree::Node::mChildren.
Referenced by creaImageIO::SQLiteTreeHandler::DBRecursiveRemoveNode(), creaImageIO::TreeHandlerImageAdder::RemoveFile(), and creaImageIO::TimestampDatabaseHandler::RemoveNode().
{ return mChildren.size(); }

| unsigned int creaImageIO::tree::Tree::GetNumberOfLevels | ( | ) | [inline] |
Returns the number of levels of the tree.
Definition at line 50 of file creaImageIOTree.h.
References GetDescriptor(), and creaImageIO::tree::Descriptor::GetNumberOfLevels().
Referenced by creaImageIO::Synchronizer::AttributesMatch(), creaImageIO::TreeHandlerImageAdder::CheckAttributes(), creaImageIO::SQLiteTreeHandler::DBCreate(), creaImageIO::SQLiteTreeHandler::DBGraftToParent(), creaImageIO::SQLiteTreeHandler::DBLoadChildren(), creaImageIO::SQLiteTreeHandler::DBRecursiveRemoveNode(), creaImageIO::SQLiteTreeHandler::getAllAttributes(), creaImageIO::SQLiteTreeHandler::GetTopLevelNodeId(), and creaImageIO::WxTreeView::WxTreeView().
{ return GetDescriptor().GetNumberOfLevels(); }


| Node* creaImageIO::tree::Node::GetParent | ( | ) | const [inline, inherited] |
Returns the parent of the node.
Definition at line 65 of file creaImageIOTreeNode.h.
References creaImageIO::tree::Node::mParent.
Referenced by creaImageIO::SQLiteTreeHandler::Remove().
{ return mParent; }

| virtual Tree* creaImageIO::tree::Tree::GetTree | ( | ) | [inline, virtual] |
Returns the descriptor of the tree.
Returns the tree to which the node belongs
Reimplemented from creaImageIO::tree::Node.
Definition at line 38 of file creaImageIOTree.h.
Referenced by creaImageIO::SQLiteTreeHandler::DBGetParent(), creaImageIO::SQLiteTreeHandler::LoadChildren(), and creaImageIO::SQLiteTreeHandler::SetAttribute().
{ return this; }

| virtual const Tree* creaImageIO::tree::Tree::GetTree | ( | ) | const [inline, virtual] |
Returns the tree to which the node belongs.
Reimplemented from creaImageIO::tree::Node.
Definition at line 40 of file creaImageIOTree.h.
{ return this; }
| void creaImageIO::tree::Node::InitializeAttributeMap | ( | ) | [inherited] |
Initializes the attribute map i.e. creates the entries.
Definition at line 88 of file creaImageIOTreeNode.cpp.
References GetAttributeDescriptorList(), creaImageIO::tree::Node::GetLevel(), creaImageIO::tree::Node::GetTree(), and creaImageIO::tree::Node::UnsafeSetAttribute().
Referenced by creaImageIO::SQLiteTreeHandler::DBCreate(), and creaImageIO::tree::Node::Node().
{
// Initialize attributes
LevelDescriptor::AttributeDescriptorListType::const_iterator a;
for (a = GetTree()->GetAttributeDescriptorList(GetLevel()).begin();
a!= GetTree()->GetAttributeDescriptorList(GetLevel()).end();
++a)
{
UnsafeSetAttribute( a->GetKey(), "" );
}
}


| const std::string creaImageIO::tree::Tree::isAttributeExist | ( | const std::string | i_attr | ) | [inline] |
Test if this attribute is available in this tree description.
Definition at line 74 of file creaImageIOTree.h.
References creaImageIO::tree::Descriptor::isExist(), and mDescriptor.
Referenced by creaImageIO::TreeHandlerImageAdder::isAttributeExist().
{
return mDescriptor.isExist(i_attr);
}


| bool creaImageIO::tree::Node::Matches | ( | const AttributeMapType & | m | ) | const [inherited] |
Returns true if the KEY attributes of the node match those of the map provided.
Definition at line 177 of file creaImageIOTreeNode.cpp.
References creaImageIO::tree::LevelDescriptor::GetIdentifierList(), creaImageIO::tree::Node::GetLabel(), creaImageIO::tree::Node::GetLevelDescriptor(), GimmickDebugMessage, and creaImageIO::tree::Node::mAttributeMap.
{
GimmickDebugMessage(2,"'"<<GetLabel()<<"' matching..."<<std::endl);
const std::vector<std::string>& id
= GetLevelDescriptor().GetIdentifierList();
std::vector<std::string>::const_iterator i;
for (i = id.begin(); i != id.end(); ++i)
{
if (mAttributeMap.find(*i)->second != m.find(*i)->second )
{
GimmickDebugMessage(2,"IDENTIFIER '"<<*i<<"' values do not match"<<std::endl);
return false;
}
GimmickDebugMessage(2,"IDENTIFIER '"<<*i<<"' values match"<<std::endl);
}
return true;
}

| void creaImageIO::tree::Tree::Print | ( | ) | const [virtual] |
Print the node.
Reimplemented from creaImageIO::tree::Node.
Definition at line 23 of file creaImageIOTree.cpp.
References creaImageIO::tree::Node::GetChildrenList(), creaImageIO::tree::Node::GetLabel(), and GimmickMessage.
Referenced by creaImageIO::Gimmick::Print().
{
GimmickMessage(1,GetLabel()<<std::endl);
ChildrenListType::const_iterator i;
for (i=GetChildrenList().begin(); i!=GetChildrenList().end(); i++)
{
(*i)->Print();
}
}


| int creaImageIO::tree::Node::RemoveChildrenFromList | ( | Node * | node | ) | [inherited] |
Remove the given children from the children list.
Definition at line 131 of file creaImageIOTreeNode.cpp.
References creaImageIO::tree::Node::GetChildrenList().
Referenced by creaImageIO::SQLiteTreeHandler::Remove().
{
ChildrenListType::iterator i = find(GetChildrenList().begin(),
GetChildrenList().end(),
node);
if (i != GetChildrenList().end())
{
GetChildrenList().erase(i);
}
return GetChildrenList().size();
}


| void creaImageIO::tree::Node::SetAttribute | ( | const std::string & | k, | |
| const std::string & | v | |||
| ) | [inherited] |
Set an Attribute for a specific key.
Definition at line 161 of file creaImageIOTreeNode.cpp.
References creaImageIO::tree::Node::mAttributeMap.
Referenced by creaImageIO::SQLiteTreeHandler::DBGraftToParent(), creaImageIO::SQLiteTreeHandler::DBInsert(), creaImageIO::SQLiteTreeHandler::DBSetAttribute(), and creaImageIO::TreeHandlerImageAdder::EditField().
{
AttributeMapType::iterator i = mAttributeMap.find(k);
if (i==mAttributeMap.end())
{
std::cout<<"[Gimmick!] Node::SetAttribute : no attribute with key '"
<<k<<"'"<<std::endl;
creaError( "[Gimmick!] Node::SetAttribute : no attribute with key '"
<<k<<"'");
}
i->second = v;
}

| void creaImageIO::tree::Node::SetChildrenLoaded | ( | bool | l | ) | [inline, inherited] |
Sets the node's children.
Definition at line 77 of file creaImageIOTreeNode.h.
References creaImageIO::tree::Node::mChildrenLoaded.
Referenced by creaImageIO::SQLiteTreeHandler::DBCreate(), creaImageIO::SQLiteTreeHandler::DBGraftToParent(), and creaImageIO::SQLiteTreeHandler::DBLoadChildren().
{ mChildrenLoaded = l; }

| void creaImageIO::tree::Node::SetData | ( | boost::shared_ptr< NodeData > | d | ) | [inline, inherited] |
Sets the node data. Deletes existing data if any.
Definition at line 121 of file creaImageIOTreeNode.h.
References creaImageIO::tree::Node::mData.
| void creaImageIO::tree::Node::SortChildren | ( | const LexicographicalComparator & | ) | [inherited] |
Sorts the children of the node.
| void creaImageIO::tree::Node::UnsafeSetAttribute | ( | const std::string & | k, | |
| const std::string & | v | |||
| ) | [inline, inherited] |
Set an Attribute for a specific key(unsafe mode).
Definition at line 107 of file creaImageIOTreeNode.h.
References creaImageIO::tree::Node::mAttributeMap.
Referenced by creaImageIO::SQLiteTreeHandler::DBImportTreeDescription(), creaImageIO::SQLiteTreeHandler::DBLoadChildren(), creaImageIO::tree::Node::InitializeAttributeMap(), and creaImageIO::tree::Node::Node().
{ mAttributeMap[k] = v; }

Definition at line 80 of file creaImageIOTree.h.
Referenced by GetDescriptor(), and isAttributeExist().
1.7.1