From 5fcdd424d7bd798673b1b545f7f990aba65471a9 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Thu, 16 Oct 2014 00:26:02 +0000 Subject: removed old code git-svn-id: file:///var/local/svn/basicwriter@57 daaaf23c-2e50-4459-9457-1e69db5a47bf --- src/xml/XmlElementHandler.hpp | 146 ------------------------------------------ 1 file changed, 146 deletions(-) delete mode 100644 src/xml/XmlElementHandler.hpp (limited to 'src/xml/XmlElementHandler.hpp') diff --git a/src/xml/XmlElementHandler.hpp b/src/xml/XmlElementHandler.hpp deleted file mode 100644 index 5d35b36..0000000 --- a/src/xml/XmlElementHandler.hpp +++ /dev/null @@ -1,146 +0,0 @@ -/* - Ousía - Copyright (C) 2014 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 . -*/ - -#ifndef _OUSIA_XML_XML_ELEMENT_HANDLER_HPP_ -#define _OUSIA_XML_XML_ELEMENT_HANDLER_HPP_ - -#include - -namespace ousia { -namespace xml { - -/** - * Structure used internally for representing a function that is capable of - * handling a certain xml element tag. - */ -class XmlElementHandler { - -private: - /** - * Name of the XML element the handler is capable of handling. - */ - const char *name; - - /** - * Handler function. - */ - std::function handler; - - /** - * Counter that can be used in order to realize elements that may only - * appear a certain number of times. - */ - int count; - - /** - * Contains the current count of matches. Contains the maximum count a - * certain element must appear. If -1 the element may appear a unlimited - * number of times. - */ - int maxCount; - - /** - * A certain other handler this one depends on (the other element must have - * appeared at least once in order for this handler to match). If set to - * nullptr no requirement relationship is established. - */ - const XmlElementHandler *requiredElement; - -public: - - /** - * Constructor of the XmlElementHandler structure. - */ - XmlElementHandler(const char *name, const std::function &handler, - int maxCount = -1, const XmlElementHandler *requiredElement = nullptr) : - name(name), handler(handler), count(0), maxCount(maxCount), - requiredElement(requiredElement) - { - // Do nothing here - } - - /** - * Returns the name of the handler. - */ - const char* getName() const - { - return name; - } - - /** - * Returns true if this handler is currently valid. - */ - bool valid() const - { - return ((maxCount < 0) || (count < maxCount)) - && (!requiredElement || (requiredElement->count > 0)); - } - - /** - * Returns true if this handler matches the current state of the given - * QXmlStreamReader. - */ - template - bool matches(const StrType &tagName) const - { - return valid() && (tagName == name); - } - - /** - * Executes the given handler. - */ - bool execute() - { - count++; - return handler(); - } - - /** - * Function which assembles a string containing the names of the expected - * element types. Used for displaying error messages. - */ - static std::string expectedElementsStr(const std::vector &handlers) - { - // Calculate a list of valid element handlers - std::vector validHandlers; - for (auto &h : handlers) { - if (h.valid()) { - validHandlers.push_back(&h); - } - } - - // Assemble the string containing the list of expected elements - std::stringstream ss; - bool first = true; - for (auto &h : validHandlers) { - if (!first) { - ss << ", "; - } - ss << h->getName(); - first = false; - } - return ss.str(); - } - -}; - -} -} - -#endif /* _OUSIA_XML_XML_ELEMENT_HANDLER_HPP_ */ - -- cgit v1.2.3