summaryrefslogtreecommitdiff
path: root/src/core/dom/NodeClasses.cpp
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2014-11-13 16:46:17 +0100
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2014-11-13 16:46:17 +0100
commit4771958cf7042d5799eb7591c1abb3d986f8a42a (patch)
tree5bab95f9a0da1be227ecc3265c58390458048a15 /src/core/dom/NodeClasses.cpp
parent96942ea3052b4ee9005cddae9964e1fc101c660b (diff)
deleted files with content that has been merged into the Node class
Diffstat (limited to 'src/core/dom/NodeClasses.cpp')
-rw-r--r--src/core/dom/NodeClasses.cpp80
1 files changed, 0 insertions, 80 deletions
diff --git a/src/core/dom/NodeClasses.cpp b/src/core/dom/NodeClasses.cpp
deleted file mode 100644
index a3c321c..0000000
--- a/src/core/dom/NodeClasses.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- Ousía
- Copyright (C) 2014, 2015 Benjamin Paaßen, Andreas Stöckel
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include <string>
-#include <unordered_map>
-#include <vector>
-
-#include "Node.hpp"
-
-namespace ousia {
-namespace dom {
-
-/* Class NamedNode */
-
-void NamedNode::doResolve(const std::vector<Rooted<Node>> &res,
- const std::vector<std::string> &path,
- ResolutionCallback callback, void *callbackData,
- int idx, const VisitorMap &visited)
-{
- // Do nothing in the default implementation
-}
-
-void NamedNode::resolve(const std::vector<Rooted<Node>> &res,
- const std::vector<std::string> &path,
- ResolutionCallback *callback, void *callbackData,
- int idx, const VisitorMap &visited)
-{
- // Abort if this node was already visited for this path index
- std::pair<Node *, int> recKey = std::make_pair(this, idx);
- if (visited.find(recKey) != visited.end()) {
- return res.size();
- }
- visited.insert(recKey);
-
- // Check whether the we can continue the path
- if (path[idx] == name) {
- // If we have reached the end of the path and the node is successfully
- // tested by the callback function, add it to the result. Otherwise
- // continue searching along the path
- if (idx == path.size() - 1) {
- if (!callback || callback(this, callbackData)) {
- res.push_back(this);
- }
- } else {
- doResolve(res, path, callback, callbackData, idx + 1, visited);
- }
- }
-
- // Restart the search from here in order to find all possible nodes that can
- // be matched to the given path
- doResolve(res, path, callback, callbackData, 0, visited);
-}
-
-std::vector<Rooted<Node>> NamedNode::resolve(
- const std::vector<std::string> &path, ResolutionCallback callback,
- void *callbackData)
-{
- std::vector<Rooted<Node>> res;
- VisitorMap visited;
- resolve(res, path, callback, callbackData, 0, visited);
- return res;
-}
-}
-}
-