From be9de068db5ad767687493634aef226a6ac42f4d Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Sun, 9 Jul 2017 21:21:59 +0200 Subject: [PATCH] use registration class to unify cast registration --- acast2/src/acast.cpp | 16 ++- .../src/automaton/transform/PDAToRHPDA.cpp | 6 +- .../src/automaton/transform/RHPDAToPDA.cpp | 6 +- alib2common/src/core/castApi.hpp | 102 ++---------------- alib2common/src/core/namingApi.hpp | 47 ++++++++ .../src/registration/CastRegistration.hpp | 27 +++++ .../src/registration/NameRegistration.hpp | 19 ++++ alib2data/src/automaton/FSM/CompactNFA.cpp | 19 ++-- alib2data/src/automaton/FSM/EpsilonNFA.cpp | 13 +-- alib2data/src/automaton/FSM/ExtendedNFA.cpp | 17 +-- .../automaton/FSM/MultiInitialStateNFA.cpp | 11 +- alib2data/src/automaton/FSM/NFA.cpp | 9 +- alib2data/src/automaton/PDA/DPDA.cpp | 3 - alib2data/src/automaton/PDA/NPDA.cpp | 3 - alib2data/src/automaton/PDA/NPDTA.cpp | 3 - .../PDA/RealTimeHeightDeterministicDPDA.cpp | 3 - .../PDA/RealTimeHeightDeterministicNPDA.cpp | 3 - alib2data/src/grammar/ContextFree/CFG.cpp | 6 +- alib2data/src/regexp/formal/FormalRegExp.cpp | 9 +- .../src/regexp/unbounded/UnboundedRegExp.cpp | 8 +- alib2data/src/rte/formal/FormalRTE.cpp | 3 - alib2data/src/string/CyclicString.cpp | 5 +- alib2data/src/string/LinearString.cpp | 26 ++--- .../src/tree/ranked/PostfixRankedTree.cpp | 8 +- .../PrefixRankedBarNonlinearPattern.cpp | 16 +-- .../tree/ranked/PrefixRankedBarPattern.cpp | 10 +- .../src/tree/ranked/PrefixRankedBarTree.cpp | 8 +- .../ranked/PrefixRankedNonlinearPattern.cpp | 16 +-- .../src/tree/ranked/PrefixRankedPattern.cpp | 10 +- .../src/tree/ranked/PrefixRankedTree.cpp | 8 +- .../tree/ranked/RankedNonlinearPattern.cpp | 1 - alib2data/src/tree/ranked/RankedPattern.cpp | 8 +- alib2data/src/tree/ranked/RankedTree.cpp | 10 +- alib2data/src/tree/unranked/PrefixBarTree.cpp | 14 +-- .../unranked/UnrankedNonlinearPattern.cpp | 1 - .../src/tree/unranked/UnrankedPattern.cpp | 8 +- alib2data/src/tree/unranked/UnrankedTree.cpp | 8 +- 37 files changed, 262 insertions(+), 228 deletions(-) create mode 100644 alib2common/src/core/namingApi.hpp create mode 100644 alib2common/src/registration/CastRegistration.hpp create mode 100644 alib2common/src/registration/NameRegistration.hpp diff --git a/acast2/src/acast.cpp b/acast2/src/acast.cpp index 5ce6a1ff4c..25bd0c26fc 100644 --- a/acast2/src/acast.cpp +++ b/acast2/src/acast.cpp @@ -14,9 +14,21 @@ #include <factory/XmlDataFactory.hpp> #include <object/Object.h> #include <core/castApi.hpp> +#include <core/namingApi.hpp> // ----------------------------------------------------------------------------------------- +alib::Object doCast ( const alib::Object & in, const std::string & to ) { + const alib::ObjectBase & inObject = in.getData ( ); + std::type_index inType = std::type_index ( typeid ( inObject ) ); + + for ( const std::type_index & toType : alib::namingApi::getTypes ( to ) ) + if ( alib::castApi::getCastPool ( toType ).castAvailable ( inType ) ) + return alib::castApi::getCastPool ( toType ).cast ( inObject ); + + throw exception::CommonException ( "Cast from " + std::type_name ( inType ) + " to " + to + " not available" ); +} + int main(int argc, char** argv) { try { common::GlobalData::argc = argc; @@ -51,12 +63,12 @@ int main(int argc, char** argv) { measurements::end(); measurements::start("Cast", measurements::Type::MAIN); - alib::Object res = alib::castApi::getCastPool(type.getValue()).cast(in.getData()); + alib::Object out = doCast ( in, type.getValue ( ) ); measurements::end(); measurements::start("Output write", measurements::Type::AUXILIARY); - alib::XmlDataFactory::toStdout(res); + alib::XmlDataFactory::toStdout(out); measurements::end(); measurements::end(); diff --git a/alib2algo/src/automaton/transform/PDAToRHPDA.cpp b/alib2algo/src/automaton/transform/PDAToRHPDA.cpp index 5b050b2426..11dd7ea3af 100644 --- a/alib2algo/src/automaton/transform/PDAToRHPDA.cpp +++ b/alib2algo/src/automaton/transform/PDAToRHPDA.cpp @@ -21,6 +21,8 @@ #include <label/InitialStateLabel.h> #include <common/createUnique.hpp> +#include <registration/CastRegistration.hpp> + namespace automaton { automaton::RealTimeHeightDeterministicDPDA < > PDAToRHPDA::convert ( const automaton::RealTimeHeightDeterministicDPDA < > & pda ) { @@ -193,7 +195,7 @@ automaton::Automaton PDAToRHPDA::convert ( const Automaton & automaton ) { namespace alib { -auto RealTimeHeightDeterministicDPDAFromDPDA = castApi::CastRegister < automaton::RealTimeHeightDeterministicDPDA < >, automaton::DPDA < > > ( automaton::PDAToRHPDA::convert ); -auto RealTimeHeightDeterministicNPDAFromNPDA = castApi::CastRegister < automaton::RealTimeHeightDeterministicNPDA < >, automaton::NPDA < > > ( automaton::PDAToRHPDA::convert ); +auto RealTimeHeightDeterministicDPDAFromDPDA = registration::CastRegister < automaton::RealTimeHeightDeterministicDPDA < >, automaton::DPDA < > > ( automaton::PDAToRHPDA::convert ); +auto RealTimeHeightDeterministicNPDAFromNPDA = registration::CastRegister < automaton::RealTimeHeightDeterministicNPDA < >, automaton::NPDA < > > ( automaton::PDAToRHPDA::convert ); } /* namespace alib */ diff --git a/alib2algo/src/automaton/transform/RHPDAToPDA.cpp b/alib2algo/src/automaton/transform/RHPDAToPDA.cpp index 550d7ffa54..2a618e9173 100644 --- a/alib2algo/src/automaton/transform/RHPDAToPDA.cpp +++ b/alib2algo/src/automaton/transform/RHPDAToPDA.cpp @@ -20,6 +20,8 @@ #include <queue> #include <iostream> +#include <registration/CastRegistration.hpp> + namespace automaton { template < class T > @@ -279,7 +281,7 @@ automaton::Automaton RHPDAToPDA::convert ( const Automaton & automaton ) { namespace alib { -auto DPDAFromRealTimeHeightDeterministicNPDA = castApi::CastRegister < automaton::DPDA < >, automaton::RealTimeHeightDeterministicDPDA < > > ( automaton::RHPDAToPDA::convert ); -auto NPDAFromRealTimeHeightDeterministicNPDA = castApi::CastRegister < automaton::NPDA < >, automaton::RealTimeHeightDeterministicNPDA < > > ( automaton::RHPDAToPDA::convert ); +auto DPDAFromRealTimeHeightDeterministicNPDA = registration::CastRegister < automaton::DPDA < >, automaton::RealTimeHeightDeterministicDPDA < > > ( automaton::RHPDAToPDA::convert ); +auto NPDAFromRealTimeHeightDeterministicNPDA = registration::CastRegister < automaton::NPDA < >, automaton::RealTimeHeightDeterministicNPDA < > > ( automaton::RHPDAToPDA::convert ); } /* namespace alib */ diff --git a/alib2common/src/core/castApi.hpp b/alib2common/src/core/castApi.hpp index 3379955b78..ca3cde212b 100644 --- a/alib2common/src/core/castApi.hpp +++ b/alib2common/src/core/castApi.hpp @@ -17,11 +17,10 @@ #include "../object/Object.h" #include "../exception/CommonException.h" -#include <introspection/Casts.hpp> - namespace alib { struct castApi { +private: class CastPoolBase { protected: std::map < std::type_index, std::function < alib::Object ( const alib::ObjectBase & ) > > castFunctions; @@ -54,31 +53,25 @@ struct castApi { class CastPool : public CastPoolBase { public: template < class From > - void add ( ) { - bool res = castFunctions.insert ( std::make_pair ( std::type_index ( typeid ( From ) ), [] ( const alib::ObjectBase & from ) { return alib::Object ( To ( ( const From & ) from ) ); } ) ).second; + void add ( std::function < To ( const From & ) > castFunction ) { + bool res = castFunctions.insert ( std::make_pair ( std::type_index ( typeid ( From ) ), [=] ( const alib::ObjectBase & from ) { + return alib::Object ( castFunction ( static_cast < const From & > ( from ) ) ); + } ) ).second; if ( ! res ) { std::string fromName = std::type_name < From > ( ); std::string toName = std::type_name < To > ( ); throw::exception::CommonException ( "Casting from " + fromName + " to " + toName + " already registered." ); } - - introspection::Casts::registerCast < From, To > ( ); } template < class From > - void add ( To ( * castFunction )( const From & ) ) { - bool res = castFunctions.insert ( std::make_pair ( std::type_index ( typeid ( From ) ), [=] ( const alib::ObjectBase & from ) { - return alib::Object ( ( ( To ( * )( const alib::ObjectBase & ) )castFunction )( from ) ); - } ) ).second; - if ( ! res ) { - std::string fromName = std::type_name < From > ( ); - std::string toName = std::type_name < To > ( ); - - throw::exception::CommonException ( "Casting from " + fromName + " to " + toName + " already registered." ); - } + void add ( ) { + auto castFunction = [] ( const From & from ) -> To { + return To ( from ); + }; - introspection::Casts::registerCast < From, To > ( ); + add < From > ( castFunction ); } To explicitCast ( const alib::ObjectBase & from ) { @@ -115,13 +108,6 @@ private: return res; } - // INFO: Function exist to handle static order of initialisation - static std::multimap < std::string, CastPoolBase * > & castFunctionsByString ( ) { - static std::multimap < std::string, CastPoolBase * > res; - - return res; - } - public: static CastPoolBase & getCastPool ( std::type_index typeId ) { std::map < std::type_index, CastPoolBase * >::iterator res = castFunctionsById ( ).find ( typeId ); @@ -162,74 +148,6 @@ public: return castAvailable ( std::type_index ( typeid ( To ) ), std::type_index ( typeid ( From ) ) ); } - template < class To > - class CastPoolStringBinder { - public: - CastPoolStringBinder ( std::string tagName ) { - CastPoolBase * castPool = & getCastPool < To > ( ); - - std::pair < std::multimap < std::string, CastPoolBase * >::iterator, std::multimap < std::string, CastPoolBase * >::iterator > res = castFunctionsByString ( ).equal_range ( tagName ); - for ( std::multimap < std::string, CastPoolBase * >::iterator iter = res.first; iter != res.second; ++ iter ) { - if ( iter->second == castPool ) { - std::string toName = std::type_name < To > ( ); - - throw::exception::CommonException ( "String cast pool for " + toName + "already exists." ); - } - } - - castFunctionsByString ( ).insert ( std::make_pair ( tagName, castPool ) ); - } - - }; - - class CastPoolBases { - std::pair < std::multimap < std::string, CastPoolBase * >::iterator, std::multimap < std::string, CastPoolBase * >::iterator > m_CastPoolBaseRange; - - public: - CastPoolBases ( std::pair < std::multimap < std::string, CastPoolBase * >::iterator, std::multimap < std::string, CastPoolBase * >::iterator > castPoolBaseRange ) : m_CastPoolBaseRange ( castPoolBaseRange ) { - } - - alib::Object cast ( const alib::ObjectBase & from ) { - for ( std::multimap < std::string, CastPoolBase * >::iterator iter = m_CastPoolBaseRange.first; iter != m_CastPoolBaseRange.second; ++ iter ) - if ( iter->second->castAvailable ( std::type_index ( typeid ( from ) ) ) ) - return iter->second->cast ( from ); - - std::string fromType = std::type_name ( typeid ( from ) ); - - throw exception::CommonException ( "Bad cast: From: " + fromType + " To: " + m_CastPoolBaseRange.first->first ); - } - - bool castAvailable ( std::type_index from ) { - for ( std::multimap < std::string, CastPoolBase * >::iterator iter = m_CastPoolBaseRange.first; iter != m_CastPoolBaseRange.second; ++ iter ) - if ( iter->second->castAvailable ( from ) ) - return true; - - return false; - } - }; - - static CastPoolBases getCastPool ( const std::string & tagName ) { - std::pair < std::multimap < std::string, CastPoolBase * >::iterator, std::multimap < std::string, CastPoolBase * >::iterator > res = castFunctionsByString ( ).equal_range ( tagName ); - - if ( res.first == res.second ) - throw exception::CommonException ( "Casting to type " + tagName + " not available." ); - else - return CastPoolBases ( res ); - } - - template < class To, class From > - class CastRegister { - public: - CastRegister ( ) { - getCastPool < To > ( ).template add < From > ( ); - } - - CastRegister ( To ( * castFunction ) ( const From & ) ) { - getCastPool < To > ( ).template add < From > ( castFunction ); - } - - }; - }; } /* namespace alib */ diff --git a/alib2common/src/core/namingApi.hpp b/alib2common/src/core/namingApi.hpp new file mode 100644 index 0000000000..a463d138ef --- /dev/null +++ b/alib2common/src/core/namingApi.hpp @@ -0,0 +1,47 @@ +/* + * namingApi.hpp + * + * Created on: Jul 7, 2017 + * Author: Jan Travnicek + */ + +#ifndef NAMING_API_HPP_ +#define NAMING_API_HPP_ + +#include <map> +#include <set> +#include <string> +#include <typeindex> + +#include <exception/CommonException.h> + +namespace alib { + +class namingApi { + static std::map < std::string, std::set < std::type_index > > & getNames ( ) { + static std::map < std::string, std::set < std::type_index > > names; + return names; + } + +public: + template < typename Type > + static void registerName ( std::string name ) { + std::type_index type = std::type_index ( typeid ( Type ) ); + std::pair < std::set < std::type_index >::iterator, bool > res = getNames ( ) [ name ].insert ( type ); + if ( ! res.second && * res.first != type ) + throw exception::CommonException ( "Type for name " + name + " already registered."); + } + + static std::set < std::type_index > & getTypes ( std::string stringname ) { + auto name = getNames ( ).find ( stringname ); + if ( name == getNames ( ).end ( ) ) + throw exception::CommonException ( "Types for name " + stringname + " not registered."); + + return name->second; + } + +}; + +} /* namespace alib */ + +#endif /* CAST_API_HPP_ */ diff --git a/alib2common/src/registration/CastRegistration.hpp b/alib2common/src/registration/CastRegistration.hpp new file mode 100644 index 0000000000..8d42e2e997 --- /dev/null +++ b/alib2common/src/registration/CastRegistration.hpp @@ -0,0 +1,27 @@ +#ifndef _CAST_REGISTRATION_HPP_ +#define _CAST_REGISTRATION_HPP_ + +#include <core/castApi.hpp> +#include <introspection/Casts.hpp> + +namespace registration { + +template < class To, class From > +class CastRegister { +public: + CastRegister ( ) { + alib::castApi::getCastPool < To > ( ).template add < From > ( ); + + introspection::Casts::registerCast < From, To > ( ); + } + + CastRegister ( To ( * castFunction ) ( const From & ) ) { + alib::castApi::getCastPool < To > ( ).template add < From > ( castFunction ); + + introspection::Casts::registerCast < From, To > ( ); + } +}; + +} /* namespace registration */ + +#endif // _CAST_REGISTRATION_HPP_ diff --git a/alib2common/src/registration/NameRegistration.hpp b/alib2common/src/registration/NameRegistration.hpp new file mode 100644 index 0000000000..13e8ac7475 --- /dev/null +++ b/alib2common/src/registration/NameRegistration.hpp @@ -0,0 +1,19 @@ +#ifndef _NAME_REGISTRATION_HPP_ +#define _NAME_REGISTRATION_HPP_ + +#include <core/namingApi.hpp> +#include <string> + +namespace registration { + +template < class Type > +class NameRegister { +public: + NameRegister ( std::string name ) { + alib::namingApi::registerName < Type > ( std::move ( name ) ); + } +}; + +} /* namespace registration */ + +#endif // _NAME_REGISTRATION_HPP_ diff --git a/alib2data/src/automaton/FSM/CompactNFA.cpp b/alib2data/src/automaton/FSM/CompactNFA.cpp index 29975eac55..ea24737519 100644 --- a/alib2data/src/automaton/FSM/CompactNFA.cpp +++ b/alib2data/src/automaton/FSM/CompactNFA.cpp @@ -9,22 +9,19 @@ #include "../Automaton.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> - -#include <core/castApi.hpp> - -namespace automaton { - -} /* namespace automaton */ +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { auto compactNFAType = registration::TypeRegister < automaton::Automaton, automaton::CompactNFA < > > ( ); auto compactNFAType2 = registration::TypeRegister < alib::Object, automaton::CompactNFA < > > ( ); -auto CompactNFAFromDFA = castApi::CastRegister < automaton::CompactNFA < >, automaton::DFA < > > ( ); -auto CompactNFAFromNFA = castApi::CastRegister < automaton::CompactNFA < >, automaton::NFA < > > ( ); -auto CompactNFAFromMultiInitialStateNFA = castApi::CastRegister < automaton::CompactNFA < >, automaton::MultiInitialStateNFA < > > ( ); -auto CompactNFAEpsilonNFA = castApi::CastRegister < automaton::CompactNFA < >, automaton::EpsilonNFA < > > ( ); -auto CompactNFACastBinder = castApi::CastPoolStringBinder < automaton::CompactNFA < > > ( automaton::CompactNFA < >::getXmlTagName() ); +auto CompactNFAFromDFA = registration::CastRegister < automaton::CompactNFA < >, automaton::DFA < > > ( ); +auto CompactNFAFromNFA = registration::CastRegister < automaton::CompactNFA < >, automaton::NFA < > > ( ); +auto CompactNFAFromMultiInitialStateNFA = registration::CastRegister < automaton::CompactNFA < >, automaton::MultiInitialStateNFA < > > ( ); +auto CompactNFAEpsilonNFA = registration::CastRegister < automaton::CompactNFA < >, automaton::EpsilonNFA < > > ( ); + +auto CompactNFAName = registration::NameRegister < automaton::CompactNFA < > > ( automaton::CompactNFA < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/automaton/FSM/EpsilonNFA.cpp b/alib2data/src/automaton/FSM/EpsilonNFA.cpp index 8eb2a1cb8f..dd5cc40d8a 100644 --- a/alib2data/src/automaton/FSM/EpsilonNFA.cpp +++ b/alib2data/src/automaton/FSM/EpsilonNFA.cpp @@ -9,17 +9,18 @@ #include "../Automaton.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> - -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { auto epsilonNFAType = registration::TypeRegister < automaton::Automaton, automaton::EpsilonNFA < > > ( ); auto epsilonNFAType2 = registration::TypeRegister < alib::Object, automaton::EpsilonNFA < > > ( ); -auto EpsilonNFAFromDFA = castApi::CastRegister < automaton::EpsilonNFA < >, automaton::DFA < > > ( ); -auto EpsilonNFAFromNFA = castApi::CastRegister < automaton::EpsilonNFA < >, automaton::NFA < > > ( ); -auto EpsilonNFAFromMultiInitialStateNFA = castApi::CastRegister < automaton::EpsilonNFA < >, automaton::MultiInitialStateNFA < > > ( ); -auto EpsilonNFACastBinder = castApi::CastPoolStringBinder < automaton::EpsilonNFA < > > ( automaton::EpsilonNFA < >::getXmlTagName() ); +auto EpsilonNFAFromDFA = registration::CastRegister < automaton::EpsilonNFA < >, automaton::DFA < > > ( ); +auto EpsilonNFAFromNFA = registration::CastRegister < automaton::EpsilonNFA < >, automaton::NFA < > > ( ); +auto EpsilonNFAFromMultiInitialStateNFA = registration::CastRegister < automaton::EpsilonNFA < >, automaton::MultiInitialStateNFA < > > ( ); + +auto EpsilonNFAName = registration::NameRegister < automaton::EpsilonNFA < > > ( automaton::EpsilonNFA < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/automaton/FSM/ExtendedNFA.cpp b/alib2data/src/automaton/FSM/ExtendedNFA.cpp index ade894859e..6f11c0feec 100644 --- a/alib2data/src/automaton/FSM/ExtendedNFA.cpp +++ b/alib2data/src/automaton/FSM/ExtendedNFA.cpp @@ -9,19 +9,20 @@ #include "../Automaton.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> - -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { auto extendedNFAType = registration::TypeRegister < automaton::Automaton, automaton::ExtendedNFA < > > ( ); auto extendedNFAType2 = registration::TypeRegister < alib::Object, automaton::ExtendedNFA < > > ( ); -auto ExtendedNFAFromDFA = castApi::CastRegister < automaton::ExtendedNFA < >, automaton::DFA < > > ( ); -auto ExtendedNFAFromNFA = castApi::CastRegister < automaton::ExtendedNFA < >, automaton::NFA < > > ( ); -auto ExtendedNFAFromMultiInitialStateNFA = castApi::CastRegister < automaton::ExtendedNFA < >, automaton::MultiInitialStateNFA < > > ( ); -auto ExtendedNFAEpsilonNFA = castApi::CastRegister < automaton::ExtendedNFA < >, automaton::EpsilonNFA < > > ( ); -auto ExtendedNFACompactNFA = castApi::CastRegister < automaton::ExtendedNFA < >, automaton::CompactNFA < > > ( ); -auto ExtendedNFACastBinder = castApi::CastPoolStringBinder < automaton::ExtendedNFA < > > ( automaton::ExtendedNFA < >::getXmlTagName() ); +auto ExtendedNFAFromDFA = registration::CastRegister < automaton::ExtendedNFA < >, automaton::DFA < > > ( ); +auto ExtendedNFAFromNFA = registration::CastRegister < automaton::ExtendedNFA < >, automaton::NFA < > > ( ); +auto ExtendedNFAFromMultiInitialStateNFA = registration::CastRegister < automaton::ExtendedNFA < >, automaton::MultiInitialStateNFA < > > ( ); +auto ExtendedNFAEpsilonNFA = registration::CastRegister < automaton::ExtendedNFA < >, automaton::EpsilonNFA < > > ( ); +auto ExtendedNFACompactNFA = registration::CastRegister < automaton::ExtendedNFA < >, automaton::CompactNFA < > > ( ); + +auto ExtendedNFAName = registration::NameRegister < automaton::ExtendedNFA < > > ( automaton::ExtendedNFA < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/automaton/FSM/MultiInitialStateNFA.cpp b/alib2data/src/automaton/FSM/MultiInitialStateNFA.cpp index 0eabd35e7d..98922e2a19 100644 --- a/alib2data/src/automaton/FSM/MultiInitialStateNFA.cpp +++ b/alib2data/src/automaton/FSM/MultiInitialStateNFA.cpp @@ -9,16 +9,17 @@ #include "../Automaton.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> - -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { auto multiInitialStateNFAType = registration::TypeRegister < automaton::Automaton, automaton::MultiInitialStateNFA < > > ( ); auto multiInitialStateNFAType2 = registration::TypeRegister < alib::Object, automaton::MultiInitialStateNFA < > > ( ); -auto MultiInitialStateNFAFromDFA = castApi::CastRegister < automaton::MultiInitialStateNFA < >, automaton::DFA < > > ( ); -auto MultiInitialStateNFAFromNFA = castApi::CastRegister < automaton::MultiInitialStateNFA < >, automaton::NFA < > > ( ); -auto MultiInitialStateNFACastBinder = castApi::CastPoolStringBinder < automaton::MultiInitialStateNFA < > > ( automaton::MultiInitialStateNFA < >::getXmlTagName() ); +auto MultiInitialStateNFAFromDFA = registration::CastRegister < automaton::MultiInitialStateNFA < >, automaton::DFA < > > ( ); +auto MultiInitialStateNFAFromNFA = registration::CastRegister < automaton::MultiInitialStateNFA < >, automaton::NFA < > > ( ); + +auto MultiInitialStateNFAName = registration::NameRegister < automaton::MultiInitialStateNFA < > > ( automaton::MultiInitialStateNFA < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/automaton/FSM/NFA.cpp b/alib2data/src/automaton/FSM/NFA.cpp index bf24cca718..72e8738c48 100644 --- a/alib2data/src/automaton/FSM/NFA.cpp +++ b/alib2data/src/automaton/FSM/NFA.cpp @@ -9,15 +9,16 @@ #include "../Automaton.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> - -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { auto NFAType = registration::TypeRegister < automaton::Automaton, automaton::NFA < > > ( ); auto NFAType2 = registration::TypeRegister < alib::Object, automaton::NFA < > > ( ); -auto NFAFromDFA = castApi::CastRegister < automaton::NFA < >, automaton::DFA < > > ( ); -auto NFACastBinder = castApi::CastPoolStringBinder < automaton::NFA < > > ( automaton::NFA < >::getXmlTagName() ); +auto NFAFromDFA = registration::CastRegister < automaton::NFA < >, automaton::DFA < > > ( ); + +auto NFAName = registration::NameRegister < automaton::NFA < > > ( automaton::NFA < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/automaton/PDA/DPDA.cpp b/alib2data/src/automaton/PDA/DPDA.cpp index aaba74d9f8..26f020caee 100644 --- a/alib2data/src/automaton/PDA/DPDA.cpp +++ b/alib2data/src/automaton/PDA/DPDA.cpp @@ -9,13 +9,10 @@ #include "../Automaton.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> namespace alib { auto DPDAType = registration::TypeRegister < automaton::Automaton, automaton::DPDA < > > ( ); auto DPDAType2 = registration::TypeRegister < alib::Object, automaton::DPDA < > > ( ); -auto DPDACastBinder = castApi::CastPoolStringBinder<automaton::DPDA < > >(automaton::DPDA < >::getXmlTagName()); - } /* namespace alib */ diff --git a/alib2data/src/automaton/PDA/NPDA.cpp b/alib2data/src/automaton/PDA/NPDA.cpp index 9115fef9fd..f186774171 100644 --- a/alib2data/src/automaton/PDA/NPDA.cpp +++ b/alib2data/src/automaton/PDA/NPDA.cpp @@ -9,13 +9,10 @@ #include "../Automaton.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> namespace alib { auto NPDAType = registration::TypeRegister < automaton::Automaton, automaton::NPDA < > > ( ); auto NPDAType2 = registration::TypeRegister < alib::Object, automaton::NPDA < > > ( ); -auto NPDACastBinder = castApi::CastPoolStringBinder<automaton::NPDA < > >(automaton::NPDA < >::getXmlTagName()); - } /* namespace alib */ diff --git a/alib2data/src/automaton/PDA/NPDTA.cpp b/alib2data/src/automaton/PDA/NPDTA.cpp index 47e80d8d34..f9cfe35ea5 100644 --- a/alib2data/src/automaton/PDA/NPDTA.cpp +++ b/alib2data/src/automaton/PDA/NPDTA.cpp @@ -9,13 +9,10 @@ #include "../Automaton.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> namespace alib { auto NPDTAType = registration::TypeRegister < automaton::Automaton, automaton::NPDTA < > > ( ); auto NPDTAType2 = registration::TypeRegister < alib::Object, automaton::NPDTA < > > ( ); -auto NPDTACastBinder = castApi::CastPoolStringBinder<automaton::NPDTA < > >(automaton::NPDTA < >::getXmlTagName()); - } /* namespace alib */ diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp index e82f6b04a6..c53dedb6b6 100644 --- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp +++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp @@ -9,13 +9,10 @@ #include "../Automaton.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> namespace alib { auto realTimeHeightDeterministicDPDAType = registration::TypeRegister < automaton::Automaton, automaton::RealTimeHeightDeterministicDPDA < > > ( ); auto realTimeHeightDeterministicDPDAType2 = registration::TypeRegister < alib::Object, automaton::RealTimeHeightDeterministicDPDA < > > ( ); -auto RealTimeHeightDeterministicDPDACastBinder = castApi::CastPoolStringBinder<automaton::RealTimeHeightDeterministicDPDA < > >(automaton::RealTimeHeightDeterministicDPDA < >::getXmlTagName()); - } /* namespace alib */ diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp index 9f7d4e0d81..a8d59e4e32 100644 --- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp +++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp @@ -9,13 +9,10 @@ #include "../Automaton.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> namespace alib { auto realTimeHeightDeterministicNPDAType = registration::TypeRegister < automaton::Automaton, automaton::RealTimeHeightDeterministicNPDA < > > ( ); auto realTimeHeightDeterministicNPDAType2 = registration::TypeRegister < alib::Object, automaton::RealTimeHeightDeterministicNPDA < > > ( ); -auto RealTimeHeightDeterministicNPDACastBinder = castApi::CastPoolStringBinder<automaton::RealTimeHeightDeterministicNPDA < > >(automaton::RealTimeHeightDeterministicNPDA < >::getXmlTagName()); - } /* namespace alib */ diff --git a/alib2data/src/grammar/ContextFree/CFG.cpp b/alib2data/src/grammar/ContextFree/CFG.cpp index 3a4dce0d19..8e73c7d0a9 100644 --- a/alib2data/src/grammar/ContextFree/CFG.cpp +++ b/alib2data/src/grammar/ContextFree/CFG.cpp @@ -9,15 +9,13 @@ #include "../Grammar.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> - -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> namespace alib { auto CFGType = registration::TypeRegister < grammar::Grammar, grammar::CFG < > > ( ); auto CFGType2 = registration::TypeRegister < alib::Object, grammar::CFG < > > ( ); -auto CFGEpsilonFreeCFG = castApi::CastRegister < grammar::CFG < >, grammar::EpsilonFreeCFG < > > ( ); -auto CFGCastBinder = castApi::CastPoolStringBinder < grammar::CFG < > > ( grammar::CFG < >::getXmlTagName() ); +auto CFGEpsilonFreeCFG = registration::CastRegister < grammar::CFG < >, grammar::EpsilonFreeCFG < > > ( ); } /* namespace alib */ diff --git a/alib2data/src/regexp/formal/FormalRegExp.cpp b/alib2data/src/regexp/formal/FormalRegExp.cpp index 94a7e8b51e..13f5791a6d 100644 --- a/alib2data/src/regexp/formal/FormalRegExp.cpp +++ b/alib2data/src/regexp/formal/FormalRegExp.cpp @@ -9,15 +9,16 @@ #include "../RegExp.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> - -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { auto formalRegExpType = registration::TypeRegister < regexp::RegExp, regexp::FormalRegExp < > > ( ); auto formalRegExpType2 = registration::TypeRegister < alib::Object, regexp::FormalRegExp < > > ( ); -auto FormalRegExpFromUnboundedRegExp = castApi::CastRegister < regexp::FormalRegExp < >, regexp::UnboundedRegExp < > > ( ); -auto FormalRegExpCastBinder = castApi::CastPoolStringBinder < regexp::FormalRegExp < > > ( regexp::FormalRegExp < >::getXmlTagName() ); +auto FormalRegExpFromUnboundedRegExp = registration::CastRegister < regexp::FormalRegExp < >, regexp::UnboundedRegExp < > > ( ); + +auto FormalRegExpName = registration::NameRegister < regexp::FormalRegExp < > > ( regexp::FormalRegExp < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/regexp/unbounded/UnboundedRegExp.cpp b/alib2data/src/regexp/unbounded/UnboundedRegExp.cpp index 2cc259f294..c9eee6c9b6 100644 --- a/alib2data/src/regexp/unbounded/UnboundedRegExp.cpp +++ b/alib2data/src/regexp/unbounded/UnboundedRegExp.cpp @@ -9,14 +9,16 @@ #include "../RegExp.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { auto unboundedRegExpType = registration::TypeRegister < regexp::RegExp, regexp::UnboundedRegExp < > > ( ); auto unboundedRegExpType2 = registration::TypeRegister < alib::Object, regexp::UnboundedRegExp < > > ( ); -auto UnboundedRegExpFromFormalRegExp = castApi::CastRegister < regexp::UnboundedRegExp < >, regexp::FormalRegExp < > > ( ); -auto UnboundedRegExpCastBinder = castApi::CastPoolStringBinder < regexp::UnboundedRegExp < > > ( regexp::UnboundedRegExp < >::getXmlTagName() ); +auto UnboundedRegExpFromFormalRegExp = registration::CastRegister < regexp::UnboundedRegExp < >, regexp::FormalRegExp < > > ( ); + +auto UnboundedRegExpName = registration::NameRegister < regexp::UnboundedRegExp < > > ( regexp::UnboundedRegExp < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/rte/formal/FormalRTE.cpp b/alib2data/src/rte/formal/FormalRTE.cpp index 879420b1b7..1890ed238d 100644 --- a/alib2data/src/rte/formal/FormalRTE.cpp +++ b/alib2data/src/rte/formal/FormalRTE.cpp @@ -8,7 +8,6 @@ #include "FormalRTE.h" #include "../RTE.h" #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> #include <object/Object.h> namespace alib { @@ -16,6 +15,4 @@ namespace alib { auto formalRTEType = registration::TypeRegister < rte::RTE, rte::FormalRTE < > > ( ); auto formalRTEType2 = registration::TypeRegister < alib::Object, rte::FormalRTE < > > ( ); -auto FormalRTECastBinder = castApi::CastPoolStringBinder < rte::FormalRTE < > > ( rte::FormalRTE < >::getXmlTagName ( ) ); - } /* namespace alib */ diff --git a/alib2data/src/string/CyclicString.cpp b/alib2data/src/string/CyclicString.cpp index 701efc9a1f..dd8520dd62 100644 --- a/alib2data/src/string/CyclicString.cpp +++ b/alib2data/src/string/CyclicString.cpp @@ -9,14 +9,13 @@ #include "String.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> namespace alib { auto cyclicStringType = registration::TypeRegister < string::String, string::CyclicString < > > (); auto cyclicStringType2 = registration::TypeRegister < alib::Object, string::CyclicString < > > (); -auto CyclicStringFromEpsilon = castApi::CastRegister<string::CyclicString < >, string::Epsilon < > >(); -auto CyclicStringCastBinder = castApi::CastPoolStringBinder<string::CyclicString < > >(string::CyclicString < >::getXmlTagName()); +auto CyclicStringFromEpsilon = registration::CastRegister < string::CyclicString < >, string::Epsilon < > > ( ); } /* namespace alib */ diff --git a/alib2data/src/string/LinearString.cpp b/alib2data/src/string/LinearString.cpp index f5ef9ab65c..684d0170ff 100644 --- a/alib2data/src/string/LinearString.cpp +++ b/alib2data/src/string/LinearString.cpp @@ -10,23 +10,25 @@ #include "String.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { auto linearStringType = registration::TypeRegister < string::String, string::LinearString < > > ( ); auto linearStringType2 = registration::TypeRegister < alib::Object, string::LinearString < > > ( ); -auto LinearStringFromEpsilon = castApi::CastRegister < string::LinearString < >, string::Epsilon < > > ( ); -auto LinearStringFromPrefixBarTree = castApi::CastRegister < string::LinearString < >, tree::PrefixBarTree < > > ( ); -auto LinearStringCastBinder = castApi::CastPoolStringBinder < string::LinearString < > > ( string::LinearString < >::getXmlTagName() ); - -auto LinearStringFromPrefixRankedTree = castApi::CastRegister < string::LinearString < std::ranked_symbol < DefaultSymbolType, DefaultRankType > >, tree::PrefixRankedTree < > > ( ); -auto LinearStringFromPrefixRankedPattern = castApi::CastRegister < string::LinearString < std::ranked_symbol < DefaultSymbolType, DefaultRankType > >, tree::PrefixRankedPattern < > > ( ); -auto LinearStringFromPrefixRankedNonlinearPattern = castApi::CastRegister < string::LinearString < std::ranked_symbol < DefaultSymbolType, DefaultRankType > >, tree::PrefixRankedNonlinearPattern < > > ( ); -auto LinearStringFromPrefixRankedBarTree = castApi::CastRegister < string::LinearString < std::ranked_symbol < DefaultSymbolType, DefaultRankType > >, tree::PrefixRankedBarTree < > > ( ); -auto LinearStringFromPrefixRankedBarPattern = castApi::CastRegister < string::LinearString < std::ranked_symbol < DefaultSymbolType, DefaultRankType > >, tree::PrefixRankedBarPattern < > > ( ); -auto LinearStringFromPrefixRankedBarNonlinearPattern = castApi::CastRegister < string::LinearString < std::ranked_symbol < DefaultSymbolType, DefaultRankType > >, tree::PrefixRankedBarNonlinearPattern < > > ( ); -auto LinearStringCastBinderTree = castApi::CastPoolStringBinder < string::LinearString < std::ranked_symbol < DefaultSymbolType, DefaultRankType > > > ( string::LinearString < >::getXmlTagName() ); +auto LinearStringFromEpsilon = registration::CastRegister < string::LinearString < >, string::Epsilon < > > ( ); +auto LinearStringFromPrefixBarTree = registration::CastRegister < string::LinearString < >, tree::PrefixBarTree < > > ( ); + +auto LinearStringFromPrefixRankedTree = registration::CastRegister < string::LinearString < std::ranked_symbol < DefaultSymbolType, DefaultRankType > >, tree::PrefixRankedTree < > > ( ); +auto LinearStringFromPrefixRankedPattern = registration::CastRegister < string::LinearString < std::ranked_symbol < DefaultSymbolType, DefaultRankType > >, tree::PrefixRankedPattern < > > ( ); +auto LinearStringFromPrefixRankedNonlinearPattern = registration::CastRegister < string::LinearString < std::ranked_symbol < DefaultSymbolType, DefaultRankType > >, tree::PrefixRankedNonlinearPattern < > > ( ); +auto LinearStringFromPrefixRankedBarTree = registration::CastRegister < string::LinearString < std::ranked_symbol < DefaultSymbolType, DefaultRankType > >, tree::PrefixRankedBarTree < > > ( ); +auto LinearStringFromPrefixRankedBarPattern = registration::CastRegister < string::LinearString < std::ranked_symbol < DefaultSymbolType, DefaultRankType > >, tree::PrefixRankedBarPattern < > > ( ); +auto LinearStringFromPrefixRankedBarNonlinearPattern = registration::CastRegister < string::LinearString < std::ranked_symbol < DefaultSymbolType, DefaultRankType > >, tree::PrefixRankedBarNonlinearPattern < > > ( ); + +auto LinearStringName = registration::NameRegister < string::LinearString < > > ( string::LinearString < >::getXmlTagName ( ) ); +auto LinearStringName2 = registration::NameRegister < string::LinearString < std::ranked_symbol < DefaultSymbolType, DefaultRankType > > > ( string::LinearString < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/tree/ranked/PostfixRankedTree.cpp b/alib2data/src/tree/ranked/PostfixRankedTree.cpp index c9f608d7a7..10e399e719 100644 --- a/alib2data/src/tree/ranked/PostfixRankedTree.cpp +++ b/alib2data/src/tree/ranked/PostfixRankedTree.cpp @@ -10,7 +10,8 @@ #include "../RankedTreeWrapper.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { @@ -18,7 +19,8 @@ auto postfixRankedTreeType = registration::TypeRegister < ::tree::Tree, ::tree:: auto postfixRankedTreeType2 = registration::TypeRegister < ::tree::RankedTreeWrapper, ::tree::PostfixRankedTree < > > ( ); auto postfixRankedTreeType3 = registration::TypeRegister < alib::Object, ::tree::PostfixRankedTree < > > ( ); -auto PostfixRankedTreeFromRankedTree = castApi::CastRegister < ::tree::PostfixRankedTree < >, ::tree::RankedTree < > > ( ); -auto PostfixRankedTreeCastBinder = castApi::CastPoolStringBinder < ::tree::PostfixRankedTree < > > ( ::tree::PostfixRankedTree < >::getXmlTagName ( ) ); +auto PostfixRankedTreeFromRankedTree = registration::CastRegister < ::tree::PostfixRankedTree < >, ::tree::RankedTree < > > ( ); + +auto PostfixRankedTreeName = registration::NameRegister < ::tree::PostfixRankedTree < > > ( ::tree::PostfixRankedTree < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp index 2eb97c178b..598c95cc32 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp +++ b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.cpp @@ -10,7 +10,8 @@ #include "../RankedTreeWrapper.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { @@ -18,11 +19,12 @@ auto prefixRankedBarNonlinearPatternType = registration::TypeRegister < ::tree:: auto prefixRankedBarNonlinearPatternType2 = registration::TypeRegister < ::tree::RankedTreeWrapper, ::tree::PrefixRankedBarNonlinearPattern < > > ( ); auto prefixRankedBarNonlinearPatternType3 = registration::TypeRegister < alib::Object, ::tree::PrefixRankedBarNonlinearPattern < > > ( ); -auto PrefixRankedBarNonlinearPatternFromRankedTree = castApi::CastRegister < ::tree::PrefixRankedBarNonlinearPattern < >, ::tree::RankedTree < > > ( ); -auto PrefixRankedBarNonlinearPatternFromRankedPattern = castApi::CastRegister < ::tree::PrefixRankedBarNonlinearPattern < >, ::tree::RankedPattern < > > ( ); -auto PrefixRankedBarNonlinearPatternFromRankedNonlinearPattern = castApi::CastRegister < ::tree::PrefixRankedBarNonlinearPattern < >, ::tree::RankedNonlinearPattern < > > ( ); -auto PrefixRankedBarNonlinearPatternFromPrefixRankedBarTree = castApi::CastRegister < ::tree::PrefixRankedBarNonlinearPattern < >, ::tree::PrefixRankedBarTree < > > ( ); -auto PrefixRankedBarNonlinearPatternFromPrefixRankedBarPattern = castApi::CastRegister < ::tree::PrefixRankedBarNonlinearPattern < >, ::tree::PrefixRankedBarPattern < > > ( ); -auto PrefixRankedBarNonlinearPatternCastBinder = castApi::CastPoolStringBinder < ::tree::PrefixRankedBarNonlinearPattern < > > ( ::tree::PrefixRankedBarNonlinearPattern < >::getXmlTagName ( ) ); +auto PrefixRankedBarNonlinearPatternFromRankedTree = registration::CastRegister < ::tree::PrefixRankedBarNonlinearPattern < >, ::tree::RankedTree < > > ( ); +auto PrefixRankedBarNonlinearPatternFromRankedPattern = registration::CastRegister < ::tree::PrefixRankedBarNonlinearPattern < >, ::tree::RankedPattern < > > ( ); +auto PrefixRankedBarNonlinearPatternFromRankedNonlinearPattern = registration::CastRegister < ::tree::PrefixRankedBarNonlinearPattern < >, ::tree::RankedNonlinearPattern < > > ( ); +auto PrefixRankedBarNonlinearPatternFromPrefixRankedBarTree = registration::CastRegister < ::tree::PrefixRankedBarNonlinearPattern < >, ::tree::PrefixRankedBarTree < > > ( ); +auto PrefixRankedBarNonlinearPatternFromPrefixRankedBarPattern = registration::CastRegister < ::tree::PrefixRankedBarNonlinearPattern < >, ::tree::PrefixRankedBarPattern < > > ( ); + +auto PrefixRankedBarNonlinearPatternName = registration::NameRegister < ::tree::PrefixRankedBarNonlinearPattern < > > ( ::tree::PrefixRankedBarNonlinearPattern < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp index 02709d7a91..0a11dc5638 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp +++ b/alib2data/src/tree/ranked/PrefixRankedBarPattern.cpp @@ -10,7 +10,8 @@ #include "../RankedTreeWrapper.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { @@ -18,8 +19,9 @@ auto prefixRankedBarPatternType = registration::TypeRegister < ::tree::Tree, ::t auto prefixRankedBarPatternType2 = registration::TypeRegister < ::tree::RankedTreeWrapper, ::tree::PrefixRankedBarPattern < > > ( ); auto prefixRankedBarPatternType3 = registration::TypeRegister < alib::Object, ::tree::PrefixRankedBarPattern < > > ( ); -auto PrefixRankedBarPatternFromRankedPattern = castApi::CastRegister < ::tree::PrefixRankedBarPattern < >, ::tree::RankedPattern < > > ( ); -auto PrefixRankedBarPatternFromPrefixRankedBarTree = castApi::CastRegister < ::tree::PrefixRankedBarPattern < >, ::tree::PrefixRankedBarTree < > > ( ); -auto PrefixRankedBarPatternCastBinder = castApi::CastPoolStringBinder < ::tree::PrefixRankedBarPattern < > > ( ::tree::PrefixRankedBarPattern < >::getXmlTagName() ); +auto PrefixRankedBarPatternFromRankedPattern = registration::CastRegister < ::tree::PrefixRankedBarPattern < >, ::tree::RankedPattern < > > ( ); +auto PrefixRankedBarPatternFromPrefixRankedBarTree = registration::CastRegister < ::tree::PrefixRankedBarPattern < >, ::tree::PrefixRankedBarTree < > > ( ); + +auto PrefixRankedBarPatternName = registration::NameRegister < ::tree::PrefixRankedBarPattern < > > ( ::tree::PrefixRankedBarPattern < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp b/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp index ca194a4270..2e23881bcb 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp +++ b/alib2data/src/tree/ranked/PrefixRankedBarTree.cpp @@ -10,7 +10,8 @@ #include "../RankedTreeWrapper.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { @@ -18,7 +19,8 @@ auto prefixRankedBarTreeType = registration::TypeRegister < ::tree::Tree, ::tree auto prefixRankedBarTreeType2 = registration::TypeRegister < ::tree::RankedTreeWrapper, ::tree::PrefixRankedBarTree < > > ( ); auto prefixRankedBarTreeType3 = registration::TypeRegister < alib::Object, ::tree::PrefixRankedBarTree < > > ( ); -auto PrefixRankedBarTreeFromRankedTree = castApi::CastRegister < ::tree::PrefixRankedBarTree < >, ::tree::RankedTree < > > ( ); -auto PrefixRankedBarTreeCastBinder = castApi::CastPoolStringBinder < ::tree::PrefixRankedBarTree < > > ( ::tree::PrefixRankedBarTree < >::getXmlTagName() ); +auto PrefixRankedBarTreeFromRankedTree = registration::CastRegister < ::tree::PrefixRankedBarTree < >, ::tree::RankedTree < > > ( ); + +auto PrefixRankedBarTreeName = registration::NameRegister < ::tree::PrefixRankedBarTree < > > ( ::tree::PrefixRankedBarTree < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp index b4b2ef800f..ffb962b5b5 100644 --- a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp +++ b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.cpp @@ -10,7 +10,8 @@ #include "../RankedTreeWrapper.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { @@ -18,11 +19,12 @@ auto prefixRankedNonlinearPatternType = registration::TypeRegister < ::tree::Tre auto prefixRankedNonlinearPatternType2 = registration::TypeRegister < ::tree::RankedTreeWrapper, ::tree::PrefixRankedNonlinearPattern < > > ( ); auto prefixRankedNonlinearPatternType3 = registration::TypeRegister < alib::Object, ::tree::PrefixRankedNonlinearPattern < > > ( ); -auto PrefixRankedNonlinearPatternFromRankedTree = castApi::CastRegister < ::tree::PrefixRankedNonlinearPattern < >, ::tree::RankedTree < > > ( ); -auto PrefixRankedNonlinearPatternFromRankedPattern = castApi::CastRegister < ::tree::PrefixRankedNonlinearPattern < >, ::tree::RankedPattern < > > ( ); -auto PrefixRankedNonlinearPatternFromRankedNonlinearPattern = castApi::CastRegister < ::tree::PrefixRankedNonlinearPattern < >, ::tree::RankedNonlinearPattern < > > ( ); -auto PrefixRankedNonlinearPatternFromPrefixRankedTree = castApi::CastRegister < ::tree::PrefixRankedNonlinearPattern < >, ::tree::PrefixRankedTree < > > ( ); -auto PrefixRankedNonlinearPatternFromPrefixRankedPattern = castApi::CastRegister < ::tree::PrefixRankedNonlinearPattern < >, ::tree::PrefixRankedPattern < > > ( ); -auto PrefixRankedNonlinearPatternCastBinder = castApi::CastPoolStringBinder < ::tree::PrefixRankedNonlinearPattern < > > ( ::tree::PrefixRankedNonlinearPattern < >::getXmlTagName ( ) ); +auto PrefixRankedNonlinearPatternFromRankedTree = registration::CastRegister < ::tree::PrefixRankedNonlinearPattern < >, ::tree::RankedTree < > > ( ); +auto PrefixRankedNonlinearPatternFromRankedPattern = registration::CastRegister < ::tree::PrefixRankedNonlinearPattern < >, ::tree::RankedPattern < > > ( ); +auto PrefixRankedNonlinearPatternFromRankedNonlinearPattern = registration::CastRegister < ::tree::PrefixRankedNonlinearPattern < >, ::tree::RankedNonlinearPattern < > > ( ); +auto PrefixRankedNonlinearPatternFromPrefixRankedTree = registration::CastRegister < ::tree::PrefixRankedNonlinearPattern < >, ::tree::PrefixRankedTree < > > ( ); +auto PrefixRankedNonlinearPatternFromPrefixRankedPattern = registration::CastRegister < ::tree::PrefixRankedNonlinearPattern < >, ::tree::PrefixRankedPattern < > > ( ); + +auto PrefixRankedNonlinearPatternName = registration::NameRegister < ::tree::PrefixRankedNonlinearPattern < > > ( ::tree::PrefixRankedNonlinearPattern < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/tree/ranked/PrefixRankedPattern.cpp b/alib2data/src/tree/ranked/PrefixRankedPattern.cpp index f1a913c09b..115751741c 100644 --- a/alib2data/src/tree/ranked/PrefixRankedPattern.cpp +++ b/alib2data/src/tree/ranked/PrefixRankedPattern.cpp @@ -10,7 +10,8 @@ #include "../RankedTreeWrapper.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { @@ -18,8 +19,9 @@ auto prefixRankedPatternType = registration::TypeRegister < ::tree::Tree, ::tree auto prefixRankedPatternType2 = registration::TypeRegister < ::tree::RankedTreeWrapper, ::tree::PrefixRankedPattern < > > ( ); auto prefixRankedPatternType3 = registration::TypeRegister < alib::Object, ::tree::PrefixRankedPattern < > > ( ); -auto PrefixRankedPatternFromRankedPattern = castApi::CastRegister < ::tree::PrefixRankedPattern < >, ::tree::RankedPattern < > > ( ); -auto PrefixRankedPatternFromPrefixRankedTree = castApi::CastRegister < ::tree::PrefixRankedPattern < >, ::tree::PrefixRankedTree < > > ( ); -auto PrefixRankedPatternCastBinder = castApi::CastPoolStringBinder < ::tree::PrefixRankedPattern < > > ( ::tree::PrefixRankedPattern < >::getXmlTagName() ); +auto PrefixRankedPatternFromRankedPattern = registration::CastRegister < ::tree::PrefixRankedPattern < >, ::tree::RankedPattern < > > ( ); +auto PrefixRankedPatternFromPrefixRankedTree = registration::CastRegister < ::tree::PrefixRankedPattern < >, ::tree::PrefixRankedTree < > > ( ); + +auto PrefixRankedPatternName = registration::NameRegister < ::tree::PrefixRankedPattern < > > ( ::tree::PrefixRankedPattern < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/tree/ranked/PrefixRankedTree.cpp b/alib2data/src/tree/ranked/PrefixRankedTree.cpp index 2baa29fe68..9b04ab35ab 100644 --- a/alib2data/src/tree/ranked/PrefixRankedTree.cpp +++ b/alib2data/src/tree/ranked/PrefixRankedTree.cpp @@ -10,7 +10,8 @@ #include "../RankedTreeWrapper.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { @@ -18,7 +19,8 @@ auto prefixRankedTreeType = registration::TypeRegister < ::tree::Tree, ::tree::P auto prefixRankedTreeType2 = registration::TypeRegister < ::tree::RankedTreeWrapper, ::tree::PrefixRankedTree < > > ( ); auto prefixRankedTreeType3 = registration::TypeRegister < alib::Object, ::tree::PrefixRankedTree < > > ( ); -auto PrefixRankedTreeFromRankedTree = castApi::CastRegister < ::tree::PrefixRankedTree < > , ::tree::RankedTree < > > ( ); -auto PrefixRankedTreeCastBinder = castApi::CastPoolStringBinder < ::tree::PrefixRankedTree < > > ( ::tree::PrefixRankedTree < >::getXmlTagName() ); +auto PrefixRankedTreeFromRankedTree = registration::CastRegister < ::tree::PrefixRankedTree < > , ::tree::RankedTree < > > ( ); + +auto PrefixRankedTreeName = registration::NameRegister < ::tree::PrefixRankedTree < > > ( ::tree::PrefixRankedTree < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp b/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp index ba11e59d4c..b58961061b 100644 --- a/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp +++ b/alib2data/src/tree/ranked/RankedNonlinearPattern.cpp @@ -10,7 +10,6 @@ #include "../RankedTreeWrapper.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> namespace alib { diff --git a/alib2data/src/tree/ranked/RankedPattern.cpp b/alib2data/src/tree/ranked/RankedPattern.cpp index 6b616e5365..52e03811a4 100644 --- a/alib2data/src/tree/ranked/RankedPattern.cpp +++ b/alib2data/src/tree/ranked/RankedPattern.cpp @@ -10,7 +10,8 @@ #include "../RankedTreeWrapper.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { @@ -18,7 +19,8 @@ auto rankedPatternType = registration::TypeRegister < ::tree::Tree, ::tree::Rank auto rankedPatternType2 = registration::TypeRegister < ::tree::RankedTreeWrapper, ::tree::RankedPattern < > > ( ); auto rankedPatternType3 = registration::TypeRegister < alib::Object, ::tree::RankedPattern < > > ( ); -auto RankedPatternFromUnrankedPattern = castApi::CastRegister < ::tree::RankedPattern < >, ::tree::UnrankedPattern < > > ( ); -auto RankedPatternCastBinder = castApi::CastPoolStringBinder < ::tree::RankedPattern < > > ( ::tree::RankedPattern < >::getXmlTagName() ); +auto RankedPatternFromUnrankedPattern = registration::CastRegister < ::tree::RankedPattern < >, ::tree::UnrankedPattern < > > ( ); + +auto RankedPatternName = registration::NameRegister < ::tree::RankedPattern < > > ( ::tree::RankedPattern < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/tree/ranked/RankedTree.cpp b/alib2data/src/tree/ranked/RankedTree.cpp index 7898070f5a..7e64bd73d1 100644 --- a/alib2data/src/tree/ranked/RankedTree.cpp +++ b/alib2data/src/tree/ranked/RankedTree.cpp @@ -10,7 +10,8 @@ #include "../RankedTreeWrapper.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { @@ -18,8 +19,9 @@ auto rankedTreeType = registration::TypeRegister < ::tree::Tree, ::tree::RankedT auto rankedTreeType2 = registration::TypeRegister < ::tree::RankedTreeWrapper, ::tree::RankedTree < > > ( ); auto rankedTreeType3 = registration::TypeRegister < alib::Object, ::tree::RankedTree < > > ( ); -auto RankedTreeFromUnrankedTree = castApi::CastRegister < ::tree::RankedTree < >, ::tree::UnrankedTree < > > ( ); -auto RankedTreeFromPostfixRankedTree = castApi::CastRegister < ::tree::RankedTree < >, ::tree::PostfixRankedTree < > > ( ); -auto RankedTreeCastBinder = castApi::CastPoolStringBinder < ::tree::RankedTree < > > ( ::tree::RankedTree < >::getXmlTagName() ); +auto RankedTreeFromUnrankedTree = registration::CastRegister < ::tree::RankedTree < >, ::tree::UnrankedTree < > > ( ); +auto RankedTreeFromPostfixRankedTree = registration::CastRegister < ::tree::RankedTree < >, ::tree::PostfixRankedTree < > > ( ); + +auto RankedTreeName = registration::NameRegister < ::tree::RankedTree < > > ( ::tree::RankedTree < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/tree/unranked/PrefixBarTree.cpp b/alib2data/src/tree/unranked/PrefixBarTree.cpp index 9d4eb3b812..81203f614d 100644 --- a/alib2data/src/tree/unranked/PrefixBarTree.cpp +++ b/alib2data/src/tree/unranked/PrefixBarTree.cpp @@ -10,15 +10,17 @@ #include "../UnrankedTreeWrapper.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { -auto prefixBarTreeType = registration::TypeRegister < tree::Tree, tree::PrefixBarTree < > > ( ); -auto prefixBarTreeType2 = registration::TypeRegister < tree::UnrankedTreeWrapper, tree::PrefixBarTree < > > ( ); -auto prefixBarTreeType3 = registration::TypeRegister < alib::Object, tree::PrefixBarTree < > > ( ); +auto prefixBarTreeType = registration::TypeRegister < ::tree::Tree, ::tree::PrefixBarTree < > > ( ); +auto prefixBarTreeType2 = registration::TypeRegister < ::tree::UnrankedTreeWrapper, ::tree::PrefixBarTree < > > ( ); +auto prefixBarTreeType3 = registration::TypeRegister < alib::Object, ::tree::PrefixBarTree < > > ( ); -auto PrefixBarTreeFromUnrankedTree = castApi::CastRegister < tree::PrefixBarTree < > , tree::UnrankedTree < > > ( ); -auto PrefixBarTreeCastBinder = castApi::CastPoolStringBinder < tree::PrefixBarTree < > > ( tree::PrefixBarTree < >::getXmlTagName() ); +auto PrefixBarTreeFromUnrankedTree = registration::CastRegister < ::tree::PrefixBarTree < >, ::tree::UnrankedTree < > > ( ); + +auto PrefixBarTreeName = registration::NameRegister < ::tree::PrefixBarTree < > > ( ::tree::PrefixBarTree < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp index 7aa205bae6..eb7aaa04b5 100644 --- a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp +++ b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.cpp @@ -10,7 +10,6 @@ #include "../UnrankedTreeWrapper.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> namespace alib { diff --git a/alib2data/src/tree/unranked/UnrankedPattern.cpp b/alib2data/src/tree/unranked/UnrankedPattern.cpp index a6d32a2915..b100cff9d6 100644 --- a/alib2data/src/tree/unranked/UnrankedPattern.cpp +++ b/alib2data/src/tree/unranked/UnrankedPattern.cpp @@ -10,7 +10,8 @@ #include "../UnrankedTreeWrapper.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { @@ -18,7 +19,8 @@ auto unrankedPatternType = registration::TypeRegister < ::tree::Tree, ::tree::Un auto unrankedPatternType2 = registration::TypeRegister < ::tree::UnrankedTreeWrapper, ::tree::UnrankedPattern < > > ( ); auto unrankedPatternType3 = registration::TypeRegister < alib::Object, ::tree::UnrankedPattern < > > ( ); -auto UnrankedPatternFromRankedPattern = castApi::CastRegister < ::tree::UnrankedPattern < >, ::tree::RankedPattern < > > ( ); -auto UnrankedPatternCastBinder = castApi::CastPoolStringBinder < ::tree::UnrankedPattern < > > ( ::tree::UnrankedPattern < >::getXmlTagName() ); +auto UnrankedPatternFromRankedPattern = registration::CastRegister < ::tree::UnrankedPattern < >, ::tree::RankedPattern < > > ( ); + +auto UnrankedPatternName = registration::NameRegister < ::tree::UnrankedPattern < > > ( ::tree::UnrankedPattern < >::getXmlTagName ( ) ); } /* namespace alib */ diff --git a/alib2data/src/tree/unranked/UnrankedTree.cpp b/alib2data/src/tree/unranked/UnrankedTree.cpp index ae2172109a..ea29eaadbe 100644 --- a/alib2data/src/tree/unranked/UnrankedTree.cpp +++ b/alib2data/src/tree/unranked/UnrankedTree.cpp @@ -10,7 +10,8 @@ #include "../UnrankedTreeWrapper.h" #include <object/Object.h> #include <registration/TypeRegistration.hpp> -#include <core/castApi.hpp> +#include <registration/CastRegistration.hpp> +#include <registration/NameRegistration.hpp> namespace alib { @@ -18,7 +19,8 @@ auto unrankedTreeType = registration::TypeRegister < ::tree::Tree, ::tree::Unran auto unrankedTreeType2 = registration::TypeRegister < ::tree::UnrankedTreeWrapper, ::tree::UnrankedTree < > > ( ); auto unrankedTreeType3 = registration::TypeRegister < alib::Object, ::tree::UnrankedTree < > > ( ); -auto UnrankedTreeFromRankedTree = castApi::CastRegister < ::tree::UnrankedTree < >, ::tree::RankedTree < > > ( ); -auto UnrankedTreeCastBinder = castApi::CastPoolStringBinder < ::tree::UnrankedTree < > > ( ::tree::UnrankedTree < >::getXmlTagName() ); +auto UnrankedTreeFromRankedTree = registration::CastRegister < ::tree::UnrankedTree < >, ::tree::RankedTree < > > ( ); + +auto UnrankedTreeName = registration::NameRegister < ::tree::UnrankedTree < > > ( ::tree::UnrankedTree < >::getXmlTagName ( ) ); } /* namespace alib */ -- GitLab