From a55a04236fa1e805229d010d1dfbbab237eb1180 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Tue, 2 Oct 2018 08:26:39 +0200
Subject: [PATCH] remove automaton wrapper

---
 .../generate/GrammarGenerateUpToLength.cpp    | 12 +++++------
 .../GrammarLeftRecursionRemoverTest.cpp       | 21 +++++++++++--------
 .../regexp/transform/RegExpDerivationTest.cpp | 16 +++++++-------
 .../regexp/transform/RegExpIntegralTest.cpp   | 10 ++++-----
 alib2data/src/automaton/Automaton.h           | 11 ++--------
 .../src/automaton/xml/FSM/CompactNFA.cpp      |  4 +---
 alib2data/src/automaton/xml/FSM/DFA.cpp       |  4 +---
 .../src/automaton/xml/FSM/EpsilonNFA.cpp      |  4 +---
 .../src/automaton/xml/FSM/ExtendedNFA.cpp     |  4 +---
 .../xml/FSM/MultiInitialStateEpsilonNFA.cpp   |  4 +---
 .../xml/FSM/MultiInitialStateNFA.cpp          |  4 +---
 alib2data/src/automaton/xml/FSM/NFA.cpp       |  4 +---
 alib2data/src/automaton/xml/PDA/DPDA.cpp      |  4 +---
 .../src/automaton/xml/PDA/InputDrivenDPDA.cpp |  4 +---
 .../src/automaton/xml/PDA/InputDrivenNPDA.cpp |  4 +---
 alib2data/src/automaton/xml/PDA/NPDA.cpp      |  4 +---
 alib2data/src/automaton/xml/PDA/NPDTA.cpp     |  4 +---
 .../PDA/RealTimeHeightDeterministicDPDA.cpp   |  4 +---
 .../PDA/RealTimeHeightDeterministicNPDA.cpp   |  4 +---
 .../src/automaton/xml/PDA/SinglePopDPDA.cpp   |  4 +---
 .../src/automaton/xml/PDA/SinglePopNPDA.cpp   |  4 +---
 .../automaton/xml/PDA/VisiblyPushdownDPDA.cpp |  4 +---
 .../automaton/xml/PDA/VisiblyPushdownNPDA.cpp |  4 +---
 alib2data/src/automaton/xml/TA/DFTA.cpp       |  4 +---
 alib2data/src/automaton/xml/TA/NFTA.cpp       |  4 +---
 alib2data/src/automaton/xml/TM/OneTapeDTM.cpp |  4 +---
 26 files changed, 53 insertions(+), 101 deletions(-)

diff --git a/alib2algo/test-src/grammar/generate/GrammarGenerateUpToLength.cpp b/alib2algo/test-src/grammar/generate/GrammarGenerateUpToLength.cpp
index c06d35c5ab..36c3518853 100644
--- a/alib2algo/test-src/grammar/generate/GrammarGenerateUpToLength.cpp
+++ b/alib2algo/test-src/grammar/generate/GrammarGenerateUpToLength.cpp
@@ -1,10 +1,10 @@
 #include "GrammarGenerateUpToLength.h"
 
-#include "grammar/generate/GenerateUpToLength.h"
+#include <grammar/generate/GenerateUpToLength.h>
 
-#include "grammar/ContextFree/EpsilonFreeCFG.h"
-#include "string/LinearString.h"
-#include <string/String.h>
+#include <grammar/ContextFree/EpsilonFreeCFG.h>
+#include <string/LinearString.h>
+#include <string/string/LinearString.h>
 
 #include <factory/StringDataFactory.hpp>
 
@@ -87,7 +87,7 @@ void GrammarGenerateUpToLength::testGenerate2() {
 	strings.insert(string::LinearString < >(ext::vector<DefaultSymbolType>{b, c, d}));
 
 	for(const string::LinearString < >& str : grammar::generate::GenerateUpToLength::generate(grammar1, 3)) {
-		std::cout << factory::StringDataFactory::toString(string::String(str)) << std::endl;
+		std::cout << factory::StringDataFactory::toString ( str ) << std::endl;
 	}
 
 	CPPUNIT_ASSERT(strings == grammar::generate::GenerateUpToLength::generate(grammar1, 3));
@@ -133,7 +133,7 @@ void GrammarGenerateUpToLength::testGenerate3() {
 	strings.insert(string::LinearString < >(ext::vector<DefaultSymbolType>{b, c, d}));
 
 	for(const string::LinearString < >& str : grammar::generate::GenerateUpToLength::generate(grammar1, 3)) {
-		std::cout << factory::StringDataFactory::toString(string::String(str)) << std::endl;
+		std::cout << factory::StringDataFactory::toString ( str ) << std::endl;
 	}
 
 	CPPUNIT_ASSERT(strings == grammar::generate::GenerateUpToLength::generate(grammar1, 3));
diff --git a/alib2algo/test-src/grammar/simplify/GrammarLeftRecursionRemoverTest.cpp b/alib2algo/test-src/grammar/simplify/GrammarLeftRecursionRemoverTest.cpp
index 26124b636a..eec5bb9017 100644
--- a/alib2algo/test-src/grammar/simplify/GrammarLeftRecursionRemoverTest.cpp
+++ b/alib2algo/test-src/grammar/simplify/GrammarLeftRecursionRemoverTest.cpp
@@ -6,6 +6,9 @@
 #include "grammar/ContextFree/CFG.h"
 #include "grammar/ContextFree/EpsilonFreeCFG.h"
 
+#include "grammar/string/ContextFree/CFG.h"
+#include "grammar/string/ContextFree/EpsilonFreeCFG.h"
+
 #include <factory/StringDataFactory.hpp>
 #include <common/createUnique.hpp>
 
@@ -62,7 +65,7 @@ void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion2() {
 
 	DefaultSymbolType Aprimed = common::createUnique(A, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet());
 
-	std::cout << factory::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar1)) << std::endl;
+	std::cout << factory::StringDataFactory::toString ( grammar1 ) << std::endl;
 
 	grammar::EpsilonFreeCFG < > grammar2 = grammar::simplify::LeftRecursionRemover::remove(grammar1);
 
@@ -78,8 +81,8 @@ void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion2() {
 	grammar3.addRule(Aprimed, {b, Aprimed});
 	grammar3.addRule(Aprimed, {b});
 
-	std::cout << factory::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar2)) << std::endl;
-	std::cout << factory::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar3)) << std::endl;
+	std::cout << factory::StringDataFactory::toString( grammar2 ) << std::endl;
+	std::cout << factory::StringDataFactory::toString( grammar3 ) << std::endl;
 
 	CPPUNIT_ASSERT(grammar2 == grammar3);
 }
@@ -104,7 +107,7 @@ void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion3() {
 
 	DefaultSymbolType Bprimed = common::createUnique(B, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet());
 
-	std::cout << factory::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar1)) << std::endl;
+	std::cout << factory::StringDataFactory::toString ( grammar1 ) << std::endl;
 
 	grammar::EpsilonFreeCFG < > grammar2 = grammar::simplify::LeftRecursionRemover::remove(grammar1);
 
@@ -121,8 +124,8 @@ void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion3() {
 	grammar3.addRule(Bprimed, {a, b, Bprimed});
 	grammar3.addRule(Bprimed, {a, b});
 
-	std::cout << factory::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar2)) << std::endl;
-	std::cout << factory::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar3)) << std::endl;
+	std::cout << factory::StringDataFactory::toString ( grammar2 ) << std::endl;
+	std::cout << factory::StringDataFactory::toString ( grammar3 ) << std::endl;
 
 	CPPUNIT_ASSERT(grammar2 == grammar3);
 }
@@ -149,7 +152,7 @@ void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion4() {
 	DefaultSymbolType Bprimed = common::createUnique(B, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet());
 	DefaultSymbolType Cprimed = common::createUnique(C, grammar1.getTerminalAlphabet(), grammar1.getNonterminalAlphabet());
 
-	std::cout << factory::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar1)) << std::endl;
+	std::cout << factory::StringDataFactory::toString ( grammar1 ) << std::endl;
 
 	grammar::EpsilonFreeCFG < > grammar2 = grammar::simplify::LeftRecursionRemover::remove(grammar1);
 
@@ -179,8 +182,8 @@ void GrammarLeftRecursionRemoverTest::testRemoveLefRecursion4() {
 	grammar3.addRule(Cprimed, {A, Bprimed, C, B});
 	grammar3.addRule(Cprimed, {C});
 
-	std::cout << factory::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar2)) << std::endl;
-	std::cout << factory::StringDataFactory::toString<grammar::Grammar>(grammar::Grammar(grammar3)) << std::endl;
+	std::cout << factory::StringDataFactory::toString( grammar2 ) << std::endl;
+	std::cout << factory::StringDataFactory::toString( grammar3 ) << std::endl;
 
 	CPPUNIT_ASSERT(grammar2 == grammar3);
 }
diff --git a/alib2algo/test-src/regexp/transform/RegExpDerivationTest.cpp b/alib2algo/test-src/regexp/transform/RegExpDerivationTest.cpp
index 726d9e4b6c..44fe7fbca1 100644
--- a/alib2algo/test-src/regexp/transform/RegExpDerivationTest.cpp
+++ b/alib2algo/test-src/regexp/transform/RegExpDerivationTest.cpp
@@ -1,14 +1,16 @@
 #include "RegExpDerivationTest.h"
 
 #include "regexp/transform/RegExpDerivation.h"
-#include <string/String.h>
-#include <regexp/RegExp.h>
 
 #include <factory/StringDataFactory.hpp>
 #include "factory/XmlDataFactory.hpp"
+
 #include <regexp/string/UnboundedRegExp.h>
 #include <regexp/xml/UnboundedRegExp.h>
 
+#include <string/string/LinearString.h>
+#include <string/xml/LinearString.h>
+
 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( RegExpDerivationTest, "regexp" );
 CPPUNIT_TEST_SUITE_REGISTRATION( RegExpDerivationTest );
 
@@ -38,13 +40,11 @@ void RegExpDerivationTest::ExecSingleTest(std::string regexp_str, std::string st
     ext::deque<sax::Token> tokens = factory::XmlDataFactory::toTokens(regexp0);
     regexp::UnboundedRegExp < > regexp = factory::XmlDataFactory::fromTokens (std::move(tokens));
 
-    string::String string0 = factory::StringDataFactory::fromString ("\"" + string_str + "\"");
+    string::LinearString < > string0 = factory::StringDataFactory::fromString ("\"" + string_str + "\"");
     ext::deque<sax::Token> tokens2 = factory::XmlDataFactory::toTokens(string0);
-    string::String string1 = factory::XmlDataFactory::fromTokens (std::move(tokens2));
-
-    const string::LinearString < > & string = static_cast<const string::LinearString < >&>(string1.getData());
+    string::LinearString < > string1 = factory::XmlDataFactory::fromTokens (std::move(tokens2));
 
-    std::cout << factory::StringDataFactory::toString(regexp::RegExpDerivation::derivation(regexp, string)) << " == " << std::endl << result << std::endl << std::endl;
+    std::cout << factory::StringDataFactory::toString(regexp::RegExpDerivation::derivation(regexp, string1)) << " == " << std::endl << result << std::endl << std::endl;
 
-    CPPUNIT_ASSERT(factory::StringDataFactory::toString(regexp::RegExpDerivation::derivation(regexp, string)) == result);
+    CPPUNIT_ASSERT(factory::StringDataFactory::toString(regexp::RegExpDerivation::derivation(regexp, string1)) == result);
 }
diff --git a/alib2algo/test-src/regexp/transform/RegExpIntegralTest.cpp b/alib2algo/test-src/regexp/transform/RegExpIntegralTest.cpp
index 3df8b780d4..54c28f62f0 100644
--- a/alib2algo/test-src/regexp/transform/RegExpIntegralTest.cpp
+++ b/alib2algo/test-src/regexp/transform/RegExpIntegralTest.cpp
@@ -1,12 +1,12 @@
 #include "RegExpIntegralTest.h"
 
 #include "regexp/transform/RegExpIntegral.h"
-#include <string/String.h>
-#include <regexp/RegExp.h>
 
-#include <factory/StringDataFactory.hpp>
+#include <string/string/LinearString.h>
 #include <regexp/string/UnboundedRegExp.h>
 
+#include <factory/StringDataFactory.hpp>
+
 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( RegExpIntegralTest, "regexp" );
 CPPUNIT_TEST_SUITE_REGISTRATION( RegExpIntegralTest );
 
@@ -25,9 +25,7 @@ void RegExpIntegralTest::testRegExpIntegral() {
 
 void RegExpIntegralTest::ExecSingleTest(std::string regexp_str, std::string string_str, std::string result) {
     regexp::UnboundedRegExp < > regexp = factory::StringDataFactory::fromString ( regexp_str );
-    string::String str = factory::StringDataFactory::fromString ( "\"" + string_str + "\"" );
-
-    const string::LinearString < > & string = static_cast < const string::LinearString < > & > ( str.getData ( ) );
+    string::LinearString < > string = factory::StringDataFactory::fromString ( "\"" + string_str + "\"" );
 
     std::cout << factory::StringDataFactory::toString(regexp::RegExpIntegral::integral(regexp, string)) << " == " << result << std::endl;
 
diff --git a/alib2data/src/automaton/Automaton.h b/alib2data/src/automaton/Automaton.h
index 59ceeb897c..0e3dc4df43 100644
--- a/alib2data/src/automaton/Automaton.h
+++ b/alib2data/src/automaton/Automaton.h
@@ -8,21 +8,14 @@
 #ifndef AUTOMATON_H_
 #define AUTOMATON_H_
 
-#include <base/WrapperBase.hpp>
-#include "AutomatonBase.h"
+#include <type_traits>
 
 namespace automaton {
 
 /**
  * \brief Wrapper around any automaton type.
  */
-class Automaton : public base::WrapperBase < AutomatonBase > {
-	/**
-	 * Inherite constructors of base::WrapperBase < AutomatonBase >
-	 */
-	using base::WrapperBase < AutomatonBase >::WrapperBase;
-
-};
+class Automaton;
 
 template < class T >
 using SymbolTypeOfAutomaton = typename std::decay < decltype (std::declval<T>().getInputAlphabet()) >::type::value_type;
diff --git a/alib2data/src/automaton/xml/FSM/CompactNFA.cpp b/alib2data/src/automaton/xml/FSM/CompactNFA.cpp
index 494a5f29b4..6db2fc0722 100644
--- a/alib2data/src/automaton/xml/FSM/CompactNFA.cpp
+++ b/alib2data/src/automaton/xml/FSM/CompactNFA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "CompactNFA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::CompactNFA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::CompactNFA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::CompactNFA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::CompactNFA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::CompactNFA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/FSM/DFA.cpp b/alib2data/src/automaton/xml/FSM/DFA.cpp
index 5e4b221aeb..af3fa7c940 100644
--- a/alib2data/src/automaton/xml/FSM/DFA.cpp
+++ b/alib2data/src/automaton/xml/FSM/DFA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "DFA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::DFA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::DFA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::DFA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::DFA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::DFA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/FSM/EpsilonNFA.cpp b/alib2data/src/automaton/xml/FSM/EpsilonNFA.cpp
index a0629ecd98..ddd96f849d 100644
--- a/alib2data/src/automaton/xml/FSM/EpsilonNFA.cpp
+++ b/alib2data/src/automaton/xml/FSM/EpsilonNFA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "EpsilonNFA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::EpsilonNFA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::EpsilonNFA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::EpsilonNFA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::EpsilonNFA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::EpsilonNFA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/FSM/ExtendedNFA.cpp b/alib2data/src/automaton/xml/FSM/ExtendedNFA.cpp
index 94554666cc..42837fac01 100644
--- a/alib2data/src/automaton/xml/FSM/ExtendedNFA.cpp
+++ b/alib2data/src/automaton/xml/FSM/ExtendedNFA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "ExtendedNFA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::ExtendedNFA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::ExtendedNFA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::ExtendedNFA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::ExtendedNFA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::ExtendedNFA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/FSM/MultiInitialStateEpsilonNFA.cpp b/alib2data/src/automaton/xml/FSM/MultiInitialStateEpsilonNFA.cpp
index 2e59c648e7..1316606bc6 100644
--- a/alib2data/src/automaton/xml/FSM/MultiInitialStateEpsilonNFA.cpp
+++ b/alib2data/src/automaton/xml/FSM/MultiInitialStateEpsilonNFA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "MultiInitialStateEpsilonNFA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::MultiInitialStateEpsilonNFA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::MultiInitialStateEpsilonNFA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::MultiInitialStateEpsilonNFA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::MultiInitialStateEpsilonNFA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::MultiInitialStateEpsilonNFA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/FSM/MultiInitialStateNFA.cpp b/alib2data/src/automaton/xml/FSM/MultiInitialStateNFA.cpp
index ba115fd059..d2a062dcc2 100644
--- a/alib2data/src/automaton/xml/FSM/MultiInitialStateNFA.cpp
+++ b/alib2data/src/automaton/xml/FSM/MultiInitialStateNFA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "MultiInitialStateNFA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::MultiInitialStateNFA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::MultiInitialStateNFA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::MultiInitialStateNFA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::MultiInitialStateNFA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::MultiInitialStateNFA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/FSM/NFA.cpp b/alib2data/src/automaton/xml/FSM/NFA.cpp
index ccb9be9263..f2877a2b7f 100644
--- a/alib2data/src/automaton/xml/FSM/NFA.cpp
+++ b/alib2data/src/automaton/xml/FSM/NFA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "NFA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::NFA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::NFA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::NFA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::NFA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::NFA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/PDA/DPDA.cpp b/alib2data/src/automaton/xml/PDA/DPDA.cpp
index 4810abfd5a..75cb382436 100644
--- a/alib2data/src/automaton/xml/PDA/DPDA.cpp
+++ b/alib2data/src/automaton/xml/PDA/DPDA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "DPDA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::DPDA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::DPDA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::DPDA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::DPDA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::DPDA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/PDA/InputDrivenDPDA.cpp b/alib2data/src/automaton/xml/PDA/InputDrivenDPDA.cpp
index af173af811..1f63ae366c 100644
--- a/alib2data/src/automaton/xml/PDA/InputDrivenDPDA.cpp
+++ b/alib2data/src/automaton/xml/PDA/InputDrivenDPDA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "InputDrivenDPDA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::InputDrivenDPDA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::InputDrivenDPDA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::InputDrivenDPDA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::InputDrivenDPDA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::InputDrivenDPDA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/PDA/InputDrivenNPDA.cpp b/alib2data/src/automaton/xml/PDA/InputDrivenNPDA.cpp
index 6516c33113..6816d30543 100644
--- a/alib2data/src/automaton/xml/PDA/InputDrivenNPDA.cpp
+++ b/alib2data/src/automaton/xml/PDA/InputDrivenNPDA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "InputDrivenNPDA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::InputDrivenNPDA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::InputDrivenNPDA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::InputDrivenNPDA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::InputDrivenNPDA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::InputDrivenNPDA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/PDA/NPDA.cpp b/alib2data/src/automaton/xml/PDA/NPDA.cpp
index 52f6431c7f..8acf289121 100644
--- a/alib2data/src/automaton/xml/PDA/NPDA.cpp
+++ b/alib2data/src/automaton/xml/PDA/NPDA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "NPDA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::NPDA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::NPDA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::NPDA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::NPDA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::NPDA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/PDA/NPDTA.cpp b/alib2data/src/automaton/xml/PDA/NPDTA.cpp
index b854540f52..bfe8fee01e 100644
--- a/alib2data/src/automaton/xml/PDA/NPDTA.cpp
+++ b/alib2data/src/automaton/xml/PDA/NPDTA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "NPDTA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::NPDTA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::NPDTA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::NPDTA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::NPDTA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::NPDTA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/PDA/RealTimeHeightDeterministicDPDA.cpp b/alib2data/src/automaton/xml/PDA/RealTimeHeightDeterministicDPDA.cpp
index fadda2739a..9e5f890451 100644
--- a/alib2data/src/automaton/xml/PDA/RealTimeHeightDeterministicDPDA.cpp
+++ b/alib2data/src/automaton/xml/PDA/RealTimeHeightDeterministicDPDA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "RealTimeHeightDeterministicDPDA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::RealTimeHeightDeterministicDPDA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::RealTimeHeightDeterministicDPDA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::RealTimeHeightDeterministicDPDA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::RealTimeHeightDeterministicDPDA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::RealTimeHeightDeterministicDPDA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/PDA/RealTimeHeightDeterministicNPDA.cpp b/alib2data/src/automaton/xml/PDA/RealTimeHeightDeterministicNPDA.cpp
index 488c9831e0..7b787f85b6 100644
--- a/alib2data/src/automaton/xml/PDA/RealTimeHeightDeterministicNPDA.cpp
+++ b/alib2data/src/automaton/xml/PDA/RealTimeHeightDeterministicNPDA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "RealTimeHeightDeterministicNPDA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::RealTimeHeightDeterministicNPDA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::RealTimeHeightDeterministicNPDA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::RealTimeHeightDeterministicNPDA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::RealTimeHeightDeterministicNPDA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::RealTimeHeightDeterministicNPDA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/PDA/SinglePopDPDA.cpp b/alib2data/src/automaton/xml/PDA/SinglePopDPDA.cpp
index f45ed52b79..12c062b491 100644
--- a/alib2data/src/automaton/xml/PDA/SinglePopDPDA.cpp
+++ b/alib2data/src/automaton/xml/PDA/SinglePopDPDA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "SinglePopDPDA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::SinglePopDPDA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::SinglePopDPDA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::SinglePopDPDA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::SinglePopDPDA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::SinglePopDPDA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/PDA/SinglePopNPDA.cpp b/alib2data/src/automaton/xml/PDA/SinglePopNPDA.cpp
index a6d858975a..5490f11993 100644
--- a/alib2data/src/automaton/xml/PDA/SinglePopNPDA.cpp
+++ b/alib2data/src/automaton/xml/PDA/SinglePopNPDA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "SinglePopNPDA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::SinglePopNPDA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::SinglePopNPDA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::SinglePopNPDA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::SinglePopNPDA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::SinglePopNPDA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/PDA/VisiblyPushdownDPDA.cpp b/alib2data/src/automaton/xml/PDA/VisiblyPushdownDPDA.cpp
index 850d62c103..2894ecdde3 100644
--- a/alib2data/src/automaton/xml/PDA/VisiblyPushdownDPDA.cpp
+++ b/alib2data/src/automaton/xml/PDA/VisiblyPushdownDPDA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "VisiblyPushdownDPDA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::VisiblyPushdownDPDA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::VisiblyPushdownDPDA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::VisiblyPushdownDPDA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::VisiblyPushdownDPDA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::VisiblyPushdownDPDA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/PDA/VisiblyPushdownNPDA.cpp b/alib2data/src/automaton/xml/PDA/VisiblyPushdownNPDA.cpp
index e46ac9eb3a..1ae885b5c0 100644
--- a/alib2data/src/automaton/xml/PDA/VisiblyPushdownNPDA.cpp
+++ b/alib2data/src/automaton/xml/PDA/VisiblyPushdownNPDA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "VisiblyPushdownNPDA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::VisiblyPushdownNPDA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::VisiblyPushdownNPDA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::VisiblyPushdownNPDA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::VisiblyPushdownNPDA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::VisiblyPushdownNPDA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/TA/DFTA.cpp b/alib2data/src/automaton/xml/TA/DFTA.cpp
index 4139df7ab2..e4eaa5184f 100644
--- a/alib2data/src/automaton/xml/TA/DFTA.cpp
+++ b/alib2data/src/automaton/xml/TA/DFTA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "DFTA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::DFTA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::DFTA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::DFTA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::DFTA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::DFTA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/TA/NFTA.cpp b/alib2data/src/automaton/xml/TA/NFTA.cpp
index f85fdf0479..acf7571311 100644
--- a/alib2data/src/automaton/xml/TA/NFTA.cpp
+++ b/alib2data/src/automaton/xml/TA/NFTA.cpp
@@ -6,7 +6,6 @@
  */
 
 #include "NFTA.h"
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -16,7 +15,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::NFTA < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::NFTA < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::NFTA < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::NFTA < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::NFTA < > > ( );
 
 } /* namespace */
diff --git a/alib2data/src/automaton/xml/TM/OneTapeDTM.cpp b/alib2data/src/automaton/xml/TM/OneTapeDTM.cpp
index 662db3b034..7ece1cd02b 100644
--- a/alib2data/src/automaton/xml/TM/OneTapeDTM.cpp
+++ b/alib2data/src/automaton/xml/TM/OneTapeDTM.cpp
@@ -7,7 +7,6 @@
 
 #include "OneTapeDTM.h"
 
-#include <automaton/Automaton.h>
 #include <object/Object.h>
 
 #include <registration/XmlRegistration.hpp>
@@ -17,7 +16,6 @@ namespace {
 static auto xmlWrite = registration::XmlWriterRegister < automaton::OneTapeDTM < > > ( );
 static auto xmlRead = registration::XmlReaderRegister < automaton::OneTapeDTM < > > ( );
 
-static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < automaton::Automaton, automaton::OneTapeDTM < > > ( );
-static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < object::Object, automaton::OneTapeDTM < > > ( );
+static auto xmlGroup = registration::XmlRegisterTypeInGroup < object::Object, automaton::OneTapeDTM < > > ( );
 
 } /* namespace */
-- 
GitLab