summaryrefslogtreecommitdiff
path: root/src/xml/XmlAttributeHandler.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/xml/XmlAttributeHandler.hpp')
-rw-r--r--src/xml/XmlAttributeHandler.hpp138
1 files changed, 0 insertions, 138 deletions
diff --git a/src/xml/XmlAttributeHandler.hpp b/src/xml/XmlAttributeHandler.hpp
deleted file mode 100644
index 8fae6c3..0000000
--- a/src/xml/XmlAttributeHandler.hpp
+++ /dev/null
@@ -1,138 +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 <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _OUSIA_XML_XML_ATTRIBUTE_HANDLER_HPP_
-#define _OUSIA_XML_XML_ATTRIBUTE_HANDLER_HPP_
-
-#include <functional>
-#include <string>
-
-namespace ousia {
-namespace xml {
-
-/**
- * The attribute handler class is responsible for handling attributes. It
- * performs type checks and conversion. Note that the name of the attribute is
- * not stored inside the handler, as the attribute handlers are meant to be used
- * alongside a map.
- */
-class XmlAttributeHandler {
-
-private:
- /**
- * Specifies whether this attribute was actually handled (set to true once
- * the setter is called).
- */
- bool handled;
-
- /**
- * Specifies whether this attribute is required or not.
- */
- bool required;
-
- /**
- * Function which returns true if the given string is a valid entry for the
- * type the attribute handler represents.
- */
- std::function<bool(const std::string&)> valid;
-
- /**
- * Function which gets the attribute value and sets the type.
- */
- std::function<void(const std::string&)> setter;
-
- /**
- * Default value (as string) that should be used if no other value for that
- * attribute is given.
- */
- const char *defaultValue;
-
-public:
-
- /**
- * Constructor of the XmlAttributeHandler class.
- *
- * @param required if true, the attribute is marked as "required" and it
- * must occur in the xml.
- * @param valid is a function reference which specifies whether the given
- * string is valid.
- * @param setter is the function that is meant to actually set the value
- * of the attached class.
- * @param defaultValue if given (it does not equal the nullptr), the setter
- * is automatically called with the default value, unless the attribute is
- * actually specified in the XML.
- */
- XmlAttributeHandler(bool required,
- const std::function<bool(const std::string&)> &valid,
- const std::function<void(const std::string&)> &setter,
- const char *defaultValue = nullptr) :
- handled(false), required(required), valid(valid), setter(setter),
- defaultValue(defaultValue)
- {
- // Do nothing here
- }
-
- /**
- * Returns true if the given value for this attribute is valid.
- */
- bool isValid(const std::string &value)
- {
- return valid(value);
- }
-
- /**
- * Calls the setter with the given value. The value should have been checked
- * for validity first.
- */
- void executeSettter(const std::string &value)
- {
- handled = true;
- setter(value);
- }
-
- /**
- * Returns true if this element is required.
- */
- bool isRequired()
- {
- return required;
- }
-
- /**
- * Returns the default value.
- */
- const char* getDefaultValue()
- {
- return defaultValue;
- }
-
- /**
- * Returns true if the attribute was handled.
- */
- bool isHandled()
- {
- return handled;
- }
-
-};
-
-}
-}
-
-#endif /* _OUSIA_XML_XML_ATTRIBUTE_HANDLER_HPP_ */
-