summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Parser/Tree')
-rw-r--r--Swiften/Parser/Tree/ParserElement.cpp19
-rw-r--r--Swiften/Parser/Tree/ParserElement.h10
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_;