diff options
Diffstat (limited to 'Swiften/Parser/Tree')
-rw-r--r-- | Swiften/Parser/Tree/ParserElement.cpp | 19 | ||||
-rw-r--r-- | Swiften/Parser/Tree/ParserElement.h | 10 |
2 files changed, 8 insertions, 21 deletions
diff --git a/Swiften/Parser/Tree/ParserElement.cpp b/Swiften/Parser/Tree/ParserElement.cpp index c851b41..0baf709 100644 --- a/Swiften/Parser/Tree/ParserElement.cpp +++ b/Swiften/Parser/Tree/ParserElement.cpp @@ -34,18 +34,6 @@ void ParserElement::appendCharacterData(const std::string& data) { text_ += data; } -std::string ParserElement::getText() { - return text_; -} - -std::string ParserElement::getName() { - return name_; -} - -std::string ParserElement::getNamespace() { - return xmlns_; -} - struct DoesntMatch { public: DoesntMatch(const std::string& tagName, const std::string& ns) : tagName(tagName), ns(ns) {} @@ -56,16 +44,15 @@ struct DoesntMatch { }; -std::vector<ParserElement::ref> ParserElement::getChildren(const std::string& name, const std::string& xmlns) { +std::vector<ParserElement::ref> ParserElement::getChildren(const std::string& name, const std::string& xmlns) const { std::vector<ParserElement::ref> result; std::remove_copy_if(children_.begin(), children_.end(), std::back_inserter(result), DoesntMatch(name, xmlns)); return result; } -ParserElement::ref ParserElement::getChild(const std::string& name, const std::string& xmlns) { +ParserElement::ref ParserElement::getChild(const std::string& name, const std::string& xmlns) const { std::vector<ParserElement::ref> results = getChildren(name, xmlns); - boost::shared_ptr<NullParserElement> nullParser = boost::make_shared<NullParserElement>(); - ParserElement::ref result = results.empty() ? boost::dynamic_pointer_cast<ParserElement>(nullParser) : results[0]; + ParserElement::ref result = results.empty() ? boost::make_shared<NullParserElement>() : results[0]; return result; } diff --git a/Swiften/Parser/Tree/ParserElement.h b/Swiften/Parser/Tree/ParserElement.h index ddf67fa..7229c5b 100644 --- a/Swiften/Parser/Tree/ParserElement.h +++ b/Swiften/Parser/Tree/ParserElement.h @@ -23,11 +23,11 @@ class ParserElement { virtual operator bool(); ParserElement::ref addChild(const std::string& name, const std::string& xmlns, const AttributeMap& attributes); void appendCharacterData(const std::string& data); - std::string getText(); - std::string getName(); - std::string getNamespace(); - std::vector<ParserElement::ref> getChildren(const std::string& name, const std::string& xmlns); - ParserElement::ref getChild(const std::string& name, const std::string& xmlns); + const std::string& getText() const {return text_;}; + const std::string& getName() const {return name_;}; + const std::string& getNamespace() const {return xmlns_;}; + std::vector<ParserElement::ref> getChildren(const std::string& name, const std::string& xmlns) const; + ParserElement::ref getChild(const std::string& name, const std::string& xmlns) const; const AttributeMap& getAttributes() const {return attributes_;} private: std::vector<ParserElement::ref> children_; |