#include <creaImageIOTreeNode.h>
#include <creaImageIOTree.h>
#include <creaImageIOSystem.h>
-#include <creaMessageManager.h>
#include <algorithm>
namespace creaImageIO
{
if (parent)
{
- GimmickMessage(5,"Default Node constructor (level "<<GetLevel()<<")"
+ GimmickDebugMessage(6,"Default Node constructor (level "<<GetLevel()<<")"
<< std::endl);
// Insert into parent's children list
- parent->GetChildrenList().push_back(this);
InitializeAttributeMap();
+ parent->GetChildrenList().push_back(this);
}
else
{
- GimmickMessage(5,"Default Node constructor without parent"
+ GimmickDebugMessage(6,"Default Node constructor without parent"
<< std::endl);
}
}
mData(0),
mChildrenLoaded(false)
{
- GimmickMessage(5,"Node constructor (level "<<GetLevel()<<")"
+ GimmickDebugMessage(6,"Node constructor (level "<<GetLevel()<<")"
<< std::endl);
if (parent)
{
{
v = i->second;
}
- GimmickMessage(5,"Setting attribute '"<<a->GetName()<<"' = '"
+ GimmickDebugMessage(6,"Setting attribute '"<<a->GetName()<<"' = '"
<<v<<"'"<<std::endl);
UnsafeSetAttribute( a->GetKey(), v );
}
//=============================================================
Node::~Node()
{
- GimmickMessage(5,"Node destructor"
+ GimmickDebugMessage(6,"Node destructor"
<< std::endl);
ChildrenListType::iterator i;
for (i=GetChildrenList().begin(); i!=GetChildrenList().end(); i++)
{
return GetTree()->GetLevelDescriptor(GetLevel());
}
+
+ //=============================================================
+
+ //=============================================================
+ /// Returns the attribute descriptor of the passed parameter
+ const AttributeDescriptor& Node::GetAttributeDescriptor(const std::string& k)const
+ {
+ 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;
+ }
//=============================================================
//=============================================================
- void Node::RemoveChildrenFromList(Node* node)
+ int Node::RemoveChildrenFromList(Node* node)
{
ChildrenListType::iterator i = find(GetChildrenList().begin(),
GetChildrenList().end(),
{
GetChildrenList().erase(i);
}
+ return GetChildrenList().size();
}
//=============================================================
//=============================================================
bool Node::Matches( const AttributeMapType& m ) const
{
- GimmickMessage(2,"'"<<GetLabel()<<"' matching..."<<std::endl);
+ GimmickDebugMessage(2,"'"<<GetLabel()<<"' matching..."<<std::endl);
const std::vector<std::string>& id
= GetLevelDescriptor().GetIdentifierList();
std::vector<std::string>::const_iterator i;
{
if (mAttributeMap.find(*i)->second != m.find(*i)->second )
{
- GimmickMessage(2,"IDENTIFIER '"<<*i<<"' values do not match"<<std::endl);
+ GimmickDebugMessage(2,"IDENTIFIER '"<<*i<<"' values do not match"<<std::endl);
return false;
}
- GimmickMessage(2,"IDENTIFIER '"<<*i<<"' values match"<<std::endl);
+ GimmickDebugMessage(2,"IDENTIFIER '"<<*i<<"' values match"<<std::endl);
}
return true;
}
void Node::Print() const
{
std::string mess;
- for (int i = 0; i<GetLevel(); ++i) mess += " ";
- mess += "|--" + GetLabel();
+ for (int i = 0; i<GetLevel(); ++i) mess += " ";
+ mess += "|_ " + GetLabel();
GimmickMessage(1,mess<<std::endl);
- ChildrenListType::const_iterator i;
- for (i=GetChildrenList().begin(); i!=GetChildrenList().end(); i++)
+ ChildrenListType::const_iterator j;
+ for (j=GetChildrenList().begin(); j!=GetChildrenList().end(); j++)
{
- (*i)->Print();
+ (*j)->Print();
}
}
//=============================================================
std::vector<std::string>::const_iterator i;
for (i = label.begin(); i != label.end(); )
{
- GimmickMessage(3,"LABEL '"<<*i<<"'"<<std::endl);
+ GimmickDebugMessage(9,"LABEL '"<<*i<<"'"<<std::endl);
AttributeMapType::const_iterator j = mAttributeMap.find(*i);
if (j != mAttributeMap.end())
{