using namespace dash::xml;
+const std::string Node::EmptyString = "";
+
Node::Node ()
{
}
delete(this->subNodes.at(i));
}
-std::vector<Node*> Node::getSubNodes ()
+const std::vector<Node*>& Node::getSubNodes () const
{
return this->subNodes;
}
{
this->subNodes.push_back(node);
}
-std::string Node::getName ()
+const std::string& Node::getName () const
{
return this->name;
}
-void Node::setName (std::string name)
+void Node::setName (const std::string& name)
{
this->name = name;
}
-std::string Node::getAttributeValue (std::string key)
+
+const std::string& Node::getAttributeValue (const std::string& key) const
{
- return this->attributes[key];
+ std::map<std::string, std::string>::const_iterator it = this->attributes.find( key );
+
+ if ( it != this->attributes.end() )
+ return it->second;
+ return EmptyString;
}
-void Node::addAttribute (std::string key, std::string value)
+
+void Node::addAttribute ( const std::string& key, const std::string& value)
{
this->attributes[key] = value;
}
-std::vector<std::string> Node::getAttributeKeys ()
+std::vector<std::string> Node::getAttributeKeys () const
{
std::vector<std::string> keys;
std::map<std::string, std::string>::const_iterator it;
}
return keys;
}
-bool Node::hasText ()
+
+bool Node::hasText () const
{
return false;
}
-std::string Node::getText ()
+
+const std::string& Node::getText () const
{
- return "";
+ return EmptyString;
}
-std::map<std::string,std::string> Node::getAttributes ()
+const std::map<std::string,std::string>& Node::getAttributes () const
{
return this->attributes;
}
Node ();
virtual ~Node ();
- std::vector<Node *> getSubNodes ();
+ const std::vector<Node *>& getSubNodes () const;
void addSubNode (Node *node);
- std::string getName ();
- void setName (std::string name);
- void addAttribute (std::string key, std::string value);
- std::string getAttributeValue (std::string key);
- std::vector<std::string> getAttributeKeys ();
- bool hasText ();
- std::string getText ();
- std::map<std::string, std::string> getAttributes ();
+ const std::string& getName () const;
+ void setName (const std::string& name);
+ void addAttribute (const std::string& key, const std::string& value);
+ const std::string& getAttributeValue (const std::string& key) const;
+ std::vector<std::string> getAttributeKeys () const;
+ bool hasText () const;
+ const std::string& getText () const;
+ const std::map<std::string, std::string>& getAttributes () const;
private:
+ static const std::string EmptyString;
std::vector<Node *> subNodes;
std::map<std::string, std::string> attributes;
std::string name;