diff --git a/alib2data/src/XmlApi.cpp b/alib2data/src/XmlApi.cpp index 7c0302a5bf58d46e4c3c6914d261c8d8db6cf47b..9c052cd3630180dc7ac6fbc8b86fd29546c0c551 100644 --- a/alib2data/src/XmlApi.cpp +++ b/alib2data/src/XmlApi.cpp @@ -42,7 +42,6 @@ const graph::GraphFromXMLParser FromXMLParsers::graphParser; const exception::ExceptionFromXMLParser FromXMLParsers::exceptionParser; const alib::ObjectFromXMLParser FromXMLParsers::objectParser; const container::ContainerFromXMLParser FromXMLParsers::containerParser; -const primitive::PrimitiveFromXMLParser FromXMLParsers::primitiveParser; const tree::TreeFromXMLParser FromXMLParsers::treeParser; const label::LabelToXMLComposer ToXMLComposers::labelComposer; @@ -55,7 +54,6 @@ const graph::GraphToXMLComposer ToXMLComposers::graphComposer; const alib::ObjectToXMLComposer ToXMLComposers::objectComposer; const exception::ExceptionToXMLComposer ToXMLComposers::exceptionComposer; const container::ContainerToXMLComposer ToXMLComposers::containerComposer; -const primitive::PrimitiveToXMLComposer ToXMLComposers::primitiveComposer; const tree::TreeToXMLComposer ToXMLComposers::treeComposer; const ToXMLComposers ToXMLComposers::toXMLComposers; diff --git a/alib2data/src/XmlApi.hpp b/alib2data/src/XmlApi.hpp index 5a0b99c08e40270a6eaabf6191ef95282d18661e..09ff73acec83cbcd446a3da686bcb147b635c89e 100644 --- a/alib2data/src/XmlApi.hpp +++ b/alib2data/src/XmlApi.hpp @@ -28,7 +28,6 @@ #include "graph/GraphFromXMLParser.h" #include "object/ObjectFromXMLParser.h" #include "exception/ExceptionFromXMLParser.h" -#include "primitive/PrimitiveFromXMLParser.h" #include "tree/TreeFromXMLParser.h" #include "container/ContainerFromXMLParser.hpp" @@ -41,7 +40,6 @@ #include "graph/GraphToXMLComposer.h" #include "object/ObjectToXMLComposer.h" #include "exception/ExceptionToXMLComposer.h" -#include "primitive/PrimitiveToXMLComposer.h" #include "tree/TreeToXMLComposer.h" #include "container/ContainerToXMLComposer.hpp" @@ -755,7 +753,6 @@ public: static const exception::ExceptionFromXMLParser exceptionParser; static const ObjectFromXMLParser objectParser; static const container::ContainerFromXMLParser containerParser; - static const primitive::PrimitiveFromXMLParser primitiveParser; static const tree::TreeFromXMLParser treeParser; }; @@ -864,7 +861,6 @@ public: static const exception::ExceptionToXMLComposer exceptionComposer; static const ObjectToXMLComposer objectComposer; static const container::ContainerToXMLComposer containerComposer; - static const primitive::PrimitiveToXMLComposer primitiveComposer; static const tree::TreeToXMLComposer treeComposer; static const ToXMLComposers toXMLComposers; diff --git a/alib2data/src/alphabet/Symbol.h b/alib2data/src/alphabet/Symbol.h index 4f896bac5b74180045ef987210773307d03d1954..a2bee2e591b03e38131ac8fadad60ed3abf26113 100644 --- a/alib2data/src/alphabet/Symbol.h +++ b/alib2data/src/alphabet/Symbol.h @@ -8,6 +8,7 @@ #ifndef SYMBOL_H_ #define SYMBOL_H_ +#include "../object/WrapperBase.h" #include "SymbolBase.h" #include "../common/wrapper.hpp" @@ -19,7 +20,7 @@ namespace alphabet { /** * Wrapper around automata. */ -class Symbol : public alib::wrapper<SymbolBase> { +class Symbol : public alib::wrapper<SymbolBase>, public alib::WrapperBase { using alib::wrapper<SymbolBase>::wrapper; }; diff --git a/alib2data/src/automaton/Automaton.h b/alib2data/src/automaton/Automaton.h index c62bba56f3386f7c51a666832c11c00bb9437bcc..a9fb106268c268f86785ba0cec8cc9fd088ae534 100644 --- a/alib2data/src/automaton/Automaton.h +++ b/alib2data/src/automaton/Automaton.h @@ -8,6 +8,7 @@ #ifndef AUTOMATON_H_ #define AUTOMATON_H_ +#include "../object/WrapperBase.h" #include "AutomatonBase.h" #include "../common/wrapper.hpp" @@ -19,7 +20,7 @@ namespace automaton { /** * Wrapper around automata. */ -class Automaton : public alib::wrapper<AutomatonBase> { +class Automaton : public alib::wrapper<AutomatonBase>, public alib::WrapperBase { using alib::wrapper<AutomatonBase>::wrapper; }; diff --git a/alib2data/src/container/Container.h b/alib2data/src/container/Container.h index e2a45addf53baebd104aa6cc785381ef00e7de80..178e2d1a2901146632593958b3bb05a4c770c8db 100644 --- a/alib2data/src/container/Container.h +++ b/alib2data/src/container/Container.h @@ -8,6 +8,7 @@ #ifndef CONTAINER_H_ #define CONTAINER_H_ +#include "../object/WrapperBase.h" #include "ContainerBase.h" #include "../common/wrapper.hpp" @@ -16,7 +17,7 @@ namespace container { /** * Wrapper around containers. */ -class Container : public alib::wrapper<ContainerBase> { +class Container : public alib::wrapper<ContainerBase>, public alib::WrapperBase { using alib::wrapper<ContainerBase>::wrapper; }; diff --git a/alib2data/src/grammar/Grammar.h b/alib2data/src/grammar/Grammar.h index f91343fd2643c493e5ca5c24d934e086d371d65d..c82c35a66cf28cf8bf6d69feb31642aa9c76ecda 100644 --- a/alib2data/src/grammar/Grammar.h +++ b/alib2data/src/grammar/Grammar.h @@ -8,6 +8,7 @@ #ifndef GRAMMAR_H_ #define GRAMMAR_H_ +#include "../object/WrapperBase.h" #include "GrammarBase.h" #include "../common/wrapper.hpp" @@ -16,7 +17,7 @@ namespace grammar { /** * Wrapper around grammars. */ -class Grammar : public alib::wrapper<GrammarBase> { +class Grammar : public alib::wrapper<GrammarBase>, public alib::WrapperBase { using alib::wrapper<GrammarBase>::wrapper; }; diff --git a/alib2data/src/graph/Graph.h b/alib2data/src/graph/Graph.h index 66f43a9d149b41b8505a181137c7bb1f5433ae05..71596a11fe00f8c41902f506980cab236c8e0566 100644 --- a/alib2data/src/graph/Graph.h +++ b/alib2data/src/graph/Graph.h @@ -8,13 +8,14 @@ #ifndef GRAPH_H_ #define GRAPH_H_ +#include "../object/WrapperBase.h" #include "GraphBase.h" #include "../common/wrapper.hpp" namespace graph { // Wrapper around graphs. -class Graph : public alib::wrapper<GraphBase> { +class Graph : public alib::wrapper<GraphBase>, public alib::WrapperBase { using alib::wrapper<GraphBase>::wrapper; }; diff --git a/alib2data/src/label/Label.h b/alib2data/src/label/Label.h index 5e670b3a631c7c5b8b6a32499b72eb4c57b69949..0a9b7b66a275a3be17c8be3df2699d3f317534cb 100644 --- a/alib2data/src/label/Label.h +++ b/alib2data/src/label/Label.h @@ -8,6 +8,7 @@ #ifndef LABEL_H_ #define LABEL_H_ +#include "../object/WrapperBase.h" #include "LabelBase.h" #include "../common/wrapper.hpp" @@ -16,7 +17,7 @@ namespace label { /** * Wrapper around automata. */ -class Label : public alib::wrapper<LabelBase> { +class Label : public alib::wrapper<LabelBase>, public alib::WrapperBase { using alib::wrapper<LabelBase>::wrapper; }; diff --git a/alib2data/src/object/Object.h b/alib2data/src/object/Object.h index 33a5293b525ea1a61869e7f06fb0e3c311e8bade..1d53280f0be56185b2131bad908836130ac3bd51 100644 --- a/alib2data/src/object/Object.h +++ b/alib2data/src/object/Object.h @@ -8,6 +8,7 @@ #ifndef OBJECT_H_ #define OBJECT_H_ +#include "../object/WrapperBase.h" #include "ObjectBase.h" #include "../common/wrapper.hpp" @@ -16,7 +17,7 @@ namespace alib { /** * Wrapper around object. */ -class Object : public alib::wrapper<ObjectBase> { +class Object : public alib::wrapper<ObjectBase>, public alib::WrapperBase { using alib::wrapper<ObjectBase>::wrapper; }; diff --git a/alib2data/src/object/ObjectFromXMLParser.cpp b/alib2data/src/object/ObjectFromXMLParser.cpp index e9575438b2eee90f8b2d6aadcabeb9a8eeb8d5b9..e5b57594a9065f7b6a1dccb856bc8b2559651c1c 100644 --- a/alib2data/src/object/ObjectFromXMLParser.cpp +++ b/alib2data/src/object/ObjectFromXMLParser.cpp @@ -25,43 +25,43 @@ namespace alib { Object ObjectFromXMLParser::parseObject(std::deque<sax::Token>::iterator& input) const { - if(alib::FromXMLParsers::symbolParser.first(input)) { + if(alib::xmlApi<alphabet::Symbol>::first(input)) { alphabet::Symbol symbol = alib::xmlApi<alphabet::Symbol>::parse(input); Object res(std::move(symbol.getData())); return res; - } else if(alib::FromXMLParsers::exceptionParser.first(input)) { + } else if(alib::xmlApi<exception::AlibException>::first(input)) { exception::AlibException exception = alib::xmlApi<exception::AlibException>::parse(input); Object res(std::move(exception)); return res; - } else if(alib::FromXMLParsers::labelParser.first(input)) { + } else if(alib::xmlApi<label::Label>::first(input)) { label::Label label = alib::xmlApi<label::Label>::parse(input); Object res(std::move(label.getData())); return res; - } else if(alib::FromXMLParsers::regexpParser.first(input)) { + } else if(alib::xmlApi<regexp::RegExp>::first(input)) { regexp::RegExp regexp = alib::xmlApi<regexp::RegExp>::parse(input); Object res(std::move(regexp.getData())); return res; - } else if(alib::FromXMLParsers::stringParser.first(input)) { + } else if(alib::xmlApi<string::String>::first(input)) { string::String string = alib::xmlApi<string::String>::parse(input); Object res(std::move(string.getData())); return res; - } else if(alib::FromXMLParsers::automatonParser.first(input)) { + } else if(alib::xmlApi<automaton::Automaton>::first(input)) { automaton::Automaton automaton = alib::xmlApi<automaton::Automaton>::parse(input); Object res(std::move(automaton.getData())); return res; - } else if(alib::FromXMLParsers::grammarParser.first(input)) { + } else if(alib::xmlApi<grammar::Grammar>::first(input)) { grammar::Grammar grammar = alib::xmlApi<grammar::Grammar>::parse(input); Object res(std::move(grammar.getData())); return res; - } else if(alib::FromXMLParsers::containerParser.first(input)) { + } else if(alib::xmlApi<container::Container>::first(input)) { container::Container container = alib::xmlApi<container::Container>::parse(input); Object res(std::move(container.getData())); return res; - } else if(alib::FromXMLParsers::primitiveParser.first(input)) { + } else if(alib::xmlApi<primitive::Primitive>::first(input)) { primitive::Primitive primitive = alib::xmlApi<primitive::Primitive>::parse(input); Object res(std::move(primitive.getData())); return res; - } else if(alib::FromXMLParsers::treeParser.first(input)) { + } else if(alib::xmlApi<tree::Tree>::first(input)) { tree::Tree tree = alib::xmlApi<tree::Tree>::parse(input); Object res(std::move(tree.getData())); return res; diff --git a/alib2data/src/primitive/Primitive.h b/alib2data/src/primitive/Primitive.h index 91f0c2b0c377c601fd12f303a8120d397350ba16..e8787c3be9fcc63700ee1e52969302eef63e0f2d 100644 --- a/alib2data/src/primitive/Primitive.h +++ b/alib2data/src/primitive/Primitive.h @@ -17,7 +17,7 @@ namespace primitive { /** * Wrapper around primitive data types. */ -class Primitive : public alib::wrapper<PrimitiveBase>, alib::WrapperBase { +class Primitive : public alib::wrapper<PrimitiveBase>, public alib::WrapperBase { using alib::wrapper<PrimitiveBase>::wrapper; }; diff --git a/alib2data/src/primitive/PrimitiveFromXMLParser.cpp b/alib2data/src/primitive/PrimitiveFromXMLParser.cpp deleted file mode 100644 index b1c3ee452fbdfab5627c7969ad326f22993ba65d..0000000000000000000000000000000000000000 --- a/alib2data/src/primitive/PrimitiveFromXMLParser.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/* - * PrimitiveFromXMLParser.cpp - * - * Created on: Nov 23, 2013 - * Author: Jan Travnicek - */ - -#include "PrimitiveFromXMLParser.h" -#include "../sax/ParserException.h" -#include "../XmlApi.hpp" - -#include "Primitive.h" -#include "PrimitiveClasses.h" - -namespace primitive { - -Primitive PrimitiveFromXMLParser::parsePrimitive(std::deque<sax::Token>::iterator& input) const { - return parsePrimitive(input, std::set<FEATURES>({FEATURES::STRING, FEATURES::CHAR, FEATURES::INTEGER, FEATURES::UNSIGNED, FEATURES::BOOL})); -} - -Primitive PrimitiveFromXMLParser::parsePrimitive(std::deque<sax::Token>::iterator& input, const std::set<FEATURES>& features) const { - if(alib::xmlApi<Integer>::first(input)) { - if(!features.count(FEATURES::INTEGER)) throw exception::AlibException(); - return Primitive(Integer::parse(input)); - } else if(alib::xmlApi<String>::first(input)) { - if(!features.count(FEATURES::STRING)) throw exception::AlibException(); - return Primitive(String::parse(input)); - } else if(alib::xmlApi<Character>::first(input)) { - if(!features.count(FEATURES::CHAR)) throw exception::AlibException(); - return Primitive(Character::parse(input)); - } else if(alib::xmlApi<Unsigned>::first(input)) { - if(!features.count(FEATURES::UNSIGNED)) throw exception::AlibException(); - return Primitive(Unsigned::parse(input)); - } else if(alib::xmlApi<Bool>::first(input)) { - if(!features.count(FEATURES::BOOL)) throw exception::AlibException(); - return Primitive(Bool::parse(input)); - } else { - throw sax::ParserException(sax::Token("Integer, String, Character, Unsigned, Bool", sax::Token::TokenType::START_ELEMENT), *input); - } -} - -bool PrimitiveFromXMLParser::first(const std::deque<sax::Token>::const_iterator& input) const { - if(alib::xmlApi<Integer>::first(input) || alib::xmlApi<String>::first(input) || alib::xmlApi<Character>::first(input) || alib::xmlApi<Unsigned>::first(input) || alib::xmlApi<Bool>::first(input)) { - return true; - } else { - return false; - } -} - -} /* namespace primitive */ diff --git a/alib2data/src/primitive/PrimitiveFromXMLParser.h b/alib2data/src/primitive/PrimitiveFromXMLParser.h deleted file mode 100644 index a0cadb5d30c3caebbb5fcef890f547c2d3c4ab85..0000000000000000000000000000000000000000 --- a/alib2data/src/primitive/PrimitiveFromXMLParser.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * PrimitiveFromXMLParser.h - * - * Created on: Nov 23, 2013 - * Author: Jan Travnicek - */ - -#ifndef PRIMITIVE_FROM_XML_PARSER_H_ -#define PRIMITIVE_FROM_XML_PARSER_H_ - -#include "../sax/FromXMLParserHelper.h" -#include <set> -#include "PrimitiveFeatures.h" -#include "../XmlApiBase.h" - -namespace primitive { - -/** - * Parser used to transform sequence of xml tokens to internal representation of Primitive. - */ -class PrimitiveFromXMLParser : public sax::FromXMLParserHelper { -public: - PrimitiveFromXMLParser() {} - -private: - Primitive parsePrimitive(std::deque<sax::Token>::iterator& input, const std::set<FEATURES>&) const; - Primitive parsePrimitive(std::deque<sax::Token>::iterator& input) const; - - template<typename T, typename Enable> friend struct alib::xmlApi; -public: - bool first(const std::deque<sax::Token>::const_iterator& input) const; -}; - -} /* namespace primitive */ - -#endif /* PRIMITIVE_FROM_XML_PARSER_H_ */ diff --git a/alib2data/src/primitive/PrimitiveToXMLComposer.cpp b/alib2data/src/primitive/PrimitiveToXMLComposer.cpp deleted file mode 100644 index a5c97057cc4f02feb6c778dd3d3a270ee8e01509..0000000000000000000000000000000000000000 --- a/alib2data/src/primitive/PrimitiveToXMLComposer.cpp +++ /dev/null @@ -1,25 +0,0 @@ -/* - * PrimitiveToXMLComposer.cpp - * - * Created on: Nov 23, 2013 - * Author: Jan Travnicek - */ - -#include "PrimitiveToXMLComposer.h" - -#include "../XmlApi.hpp" - -#include "Primitive.h" -#include "PrimitiveClasses.h" - -namespace primitive { - -void PrimitiveToXMLComposer::compose(std::deque<sax::Token>& out, const Primitive& primitive) const { - primitive.getData().Accept((void*) &out, alib::ToXMLComposers::toXMLComposers); -} - -void PrimitiveToXMLComposer::compose(std::deque<sax::Token>& out, const PrimitiveBase& primitive) const { - primitive.Accept((void*) &out, alib::ToXMLComposers::toXMLComposers); -} - -} /* namespace primitive */ diff --git a/alib2data/src/primitive/PrimitiveToXMLComposer.h b/alib2data/src/primitive/PrimitiveToXMLComposer.h deleted file mode 100644 index 5a89e6cdde85c1b5a7ff98e05caa87999f63dd76..0000000000000000000000000000000000000000 --- a/alib2data/src/primitive/PrimitiveToXMLComposer.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * PrimitiveToXMLComposer.h - * - * Created on: Nov 23, 2013 - * Author: Jan Travnciek - */ - -#ifndef PRIMITIVE_TO_XML_COMPOSER_H_ -#define PRIMITIVE_TO_XML_COMPOSER_H_ - -#include <deque> -#include "PrimitiveFeatures.h" -#include "../sax/Token.h" -#include "../XmlApiBase.h" - -namespace primitive { - -/** - * This class contains methods to print XML representation of string to the output stream. - */ -class PrimitiveToXMLComposer { -public: - PrimitiveToXMLComposer() {} - -private: - /** - * Prints XML representation of String to the output stream. - * @param string String to print - * @param out output stream to which print the String - */ - void compose(std::deque<sax::Token>& out, const PrimitiveBase& primitive) const; - - /** - * Prints XML representation of String to the output stream. - * @param string String to print - * @param out output stream to which print the String - */ - void compose(std::deque<sax::Token>& out, const Primitive& primitive) const; - - template<typename T, typename Enable> friend struct alib::xmlApi; -}; - -} /* namespace primitive */ - -#endif /* PRIMITIVE_TO_XML_COMPOSER_H_ */ diff --git a/alib2data/src/regexp/RegExp.h b/alib2data/src/regexp/RegExp.h index bc9105261b9383eb0b1f2327d84ad330287c1dd1..2be1c82596b064a983aa7ea023a12457288d2573 100644 --- a/alib2data/src/regexp/RegExp.h +++ b/alib2data/src/regexp/RegExp.h @@ -8,6 +8,7 @@ #ifndef REG_EXP_H_ #define REG_EXP_H_ +#include "../object/WrapperBase.h" #include "../common/wrapper.hpp" #include "RegExpBase.h" @@ -20,7 +21,7 @@ namespace regexp { /** * Wrapper around automata. */ -class RegExp : public alib::wrapper<RegExpBase> { +class RegExp : public alib::wrapper<RegExpBase>, public alib::WrapperBase { using alib::wrapper<RegExpBase>::wrapper; }; diff --git a/alib2data/src/string/String.h b/alib2data/src/string/String.h index f5f80df9d0545ab0d6dcb94ff8576eb33a253177..3bb3f5d7aaadeb21b95b96c7c441f832d43e3fcd 100644 --- a/alib2data/src/string/String.h +++ b/alib2data/src/string/String.h @@ -8,6 +8,7 @@ #ifndef STRING_H_ #define STRING_H_ +#include "../object/WrapperBase.h" #include "StringBase.h" #include "../common/wrapper.hpp" @@ -16,7 +17,7 @@ namespace string { /** * Wrapper around strings. */ -class String : public alib::wrapper<StringBase> { +class String : public alib::wrapper<StringBase>, public alib::WrapperBase { using alib::wrapper<StringBase>::wrapper; }; diff --git a/alib2data/src/tree/Tree.h b/alib2data/src/tree/Tree.h index 5bc8fe6f6b2f7f0d62685b8d2809555d9c7ee146..02dec346e55bb2933dc63e2f9eaad2a2ebb5328c 100644 --- a/alib2data/src/tree/Tree.h +++ b/alib2data/src/tree/Tree.h @@ -8,6 +8,7 @@ #ifndef TREE_H_ #define TREE_H_ +#include "../object/WrapperBase.h" #include "TreeBase.h" #include "../common/wrapper.hpp" @@ -16,7 +17,7 @@ namespace tree { /** * Wrapper around tree. */ -class Tree : public alib::wrapper<TreeBase> { +class Tree : public alib::wrapper<TreeBase>, public alib::WrapperBase { using alib::wrapper<TreeBase>::wrapper; };