From a968378024bc44dddaa700c3ffe7ffc4b1304bdd Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Tue, 4 Jul 2017 11:08:39 +0200 Subject: [PATCH] xmlApi provides the tag name --- alib2common/src/container/ObjectsBitset.h | 8 +++++++- alib2common/src/container/ObjectsDeque.h | 8 +++++++- alib2common/src/container/ObjectsList.h | 8 +++++++- alib2common/src/container/ObjectsMap.h | 8 +++++++- alib2common/src/container/ObjectsPair.h | 8 +++++++- alib2common/src/container/ObjectsSet.h | 8 +++++++- alib2common/src/container/ObjectsTree.h | 8 +++++++- alib2common/src/container/ObjectsTrie.h | 8 +++++++- alib2common/src/container/ObjectsTuple.h | 8 +++++++- alib2common/src/container/ObjectsVariant.h | 6 ++++++ alib2common/src/container/ObjectsVector.h | 8 +++++++- alib2common/src/core/xmlApi.hpp | 12 +++++++++++- alib2common/src/primitive/Bool.cpp | 6 +++++- alib2common/src/primitive/Bool.h | 1 + alib2common/src/primitive/Character.cpp | 6 +++++- alib2common/src/primitive/Character.h | 1 + alib2common/src/primitive/Double.cpp | 6 +++++- alib2common/src/primitive/Double.h | 1 + alib2common/src/primitive/Integer.cpp | 6 +++++- alib2common/src/primitive/Integer.h | 1 + alib2common/src/primitive/String.cpp | 6 +++++- alib2common/src/primitive/String.h | 1 + alib2common/src/primitive/Unsigned.cpp | 6 +++++- alib2common/src/primitive/Unsigned.h | 1 + alib2common/src/primitive/UnsignedLong.cpp | 6 +++++- alib2common/src/primitive/UnsignedLong.h | 1 + alib2common/src/sax/FromXMLParserHelper.cpp | 10 +++++----- alib2common/src/sax/FromXMLParserHelper.h | 3 +-- 28 files changed, 135 insertions(+), 25 deletions(-) diff --git a/alib2common/src/container/ObjectsBitset.h b/alib2common/src/container/ObjectsBitset.h index dc5d599ea1..f9c5a8d2b9 100644 --- a/alib2common/src/container/ObjectsBitset.h +++ b/alib2common/src/container/ObjectsBitset.h @@ -74,6 +74,7 @@ template < size_t N > struct xmlApi < std::bitset < N > > { static std::bitset < N > parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, const std::bitset < N > & data ); }; @@ -84,7 +85,12 @@ std::bitset < N > xmlApi < std::bitset < N > >::parse ( std::deque < sax::Token template < size_t N > bool xmlApi < std::bitset < N > >::first ( const std::deque < sax::Token >::const_iterator & input ) { - return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, container::ObjectsBitset::getXmlTagName() ); + return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName() ); +} + +template < size_t N > +std::string xmlApi < std::bitset < N > >::xmlTagName ( ) { + return container::ObjectsBitset::getXmlTagName(); } template < size_t N > diff --git a/alib2common/src/container/ObjectsDeque.h b/alib2common/src/container/ObjectsDeque.h index 5ae4b7d699..a0b9e9b0cb 100644 --- a/alib2common/src/container/ObjectsDeque.h +++ b/alib2common/src/container/ObjectsDeque.h @@ -157,6 +157,7 @@ template < typename T > struct xmlApi < std::deque < T > > { static std::deque < T > parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, const std::deque < T > & data ); }; @@ -167,7 +168,12 @@ std::deque < T > xmlApi < std::deque < T > >::parse ( std::deque < sax::Token >: template < typename T > bool xmlApi < std::deque < T > >::first ( const std::deque < sax::Token >::const_iterator & input ) { - return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, container::ObjectsDeque < >::getXmlTagName() ); + return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName() ); +} + +template < typename T > +std::string xmlApi < std::deque < T > >::xmlTagName ( ) { + return container::ObjectsDeque < >::getXmlTagName(); } template < typename T > diff --git a/alib2common/src/container/ObjectsList.h b/alib2common/src/container/ObjectsList.h index ca09218046..23ae170fa7 100644 --- a/alib2common/src/container/ObjectsList.h +++ b/alib2common/src/container/ObjectsList.h @@ -157,6 +157,7 @@ template < typename T > struct xmlApi < std::list < T > > { static std::list < T > parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, const std::list < T > & data ); }; @@ -167,7 +168,12 @@ std::list < T > xmlApi < std::list < T > >::parse ( std::deque < sax::Token >::i template < typename T > bool xmlApi < std::list < T > >::first ( const std::deque < sax::Token >::const_iterator & input ) { - return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, container::ObjectsList < >::getXmlTagName() ); + return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName() ); +} + +template < typename T > +std::string xmlApi < std::list < T > >::xmlTagName ( ) { + return container::ObjectsList < >::getXmlTagName(); } template < typename T > diff --git a/alib2common/src/container/ObjectsMap.h b/alib2common/src/container/ObjectsMap.h index 44735e5b53..2cc501c85f 100644 --- a/alib2common/src/container/ObjectsMap.h +++ b/alib2common/src/container/ObjectsMap.h @@ -160,6 +160,7 @@ template < typename T, typename R > struct xmlApi < std::map < T, R > > { static std::map < T, R > parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, const std::map < T, R > & data ); }; @@ -170,7 +171,12 @@ std::map < T, R > xmlApi < std::map < T, R > >::parse ( std::deque < sax::Token template < typename T, typename R > bool xmlApi < std::map < T, R > >::first ( const std::deque < sax::Token >::const_iterator & input ) { - return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, container::ObjectsMap < >::getXmlTagName() ); + return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName() ); +} + +template < typename T, typename R > +std::string xmlApi < std::map < T, R > >::xmlTagName ( ) { + return container::ObjectsMap < >::getXmlTagName(); } template < typename T, typename R > diff --git a/alib2common/src/container/ObjectsPair.h b/alib2common/src/container/ObjectsPair.h index c2cbcc2f32..60ff385ae3 100644 --- a/alib2common/src/container/ObjectsPair.h +++ b/alib2common/src/container/ObjectsPair.h @@ -153,6 +153,7 @@ template < typename T, typename R > struct xmlApi < std::pair < T, R > > { static std::pair < T, R > parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, const std::pair < T, R > & data ); }; @@ -163,7 +164,12 @@ std::pair < T, R > xmlApi < std::pair < T, R > >::parse ( std::deque < sax::Toke template < typename T, typename R > bool xmlApi < std::pair < T, R > >::first ( const std::deque < sax::Token >::const_iterator & input ) { - return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, container::ObjectsPair < >::getXmlTagName() ); + return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName() ); +} + +template < typename T, typename R > +std::string xmlApi < std::pair < T, R > >::xmlTagName ( ) { + return container::ObjectsPair < >::getXmlTagName(); } template < typename T, typename R > diff --git a/alib2common/src/container/ObjectsSet.h b/alib2common/src/container/ObjectsSet.h index acf734f329..f2d7399670 100644 --- a/alib2common/src/container/ObjectsSet.h +++ b/alib2common/src/container/ObjectsSet.h @@ -158,6 +158,7 @@ template < typename T > struct xmlApi < std::set < T > > { static std::set < T > parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, const std::set < T > & data ); }; @@ -168,7 +169,12 @@ std::set < T > xmlApi < std::set < T > >::parse ( std::deque < sax::Token >::ite template < typename T > bool xmlApi < std::set < T > >::first ( const std::deque < sax::Token >::const_iterator & input ) { - return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, container::ObjectsSet < >::getXmlTagName() ); + return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName() ); +} + +template < typename T > +std::string xmlApi < std::set < T > >::xmlTagName ( ) { + return container::ObjectsSet < >::getXmlTagName(); } template < typename T > diff --git a/alib2common/src/container/ObjectsTree.h b/alib2common/src/container/ObjectsTree.h index 3b13bce372..114258239e 100644 --- a/alib2common/src/container/ObjectsTree.h +++ b/alib2common/src/container/ObjectsTree.h @@ -193,6 +193,7 @@ template < typename T > struct xmlApi < std::tree < T > > { static std::tree < T > parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, const std::tree < T > & data ); }; @@ -203,7 +204,12 @@ std::tree < T > xmlApi < std::tree < T > >::parse ( std::deque < sax::Token >::i template < typename T > bool xmlApi < std::tree < T > >::first ( const std::deque < sax::Token >::const_iterator & input ) { - return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, container::ObjectsTree < >::getXmlTagName ( ) ); + return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); +} + +template < typename T > +std::string xmlApi < std::tree < T > >::xmlTagName ( ) { + return container::ObjectsTree < >::getXmlTagName ( ); } template < typename T > diff --git a/alib2common/src/container/ObjectsTrie.h b/alib2common/src/container/ObjectsTrie.h index 0ce858dc02..aee90811ac 100644 --- a/alib2common/src/container/ObjectsTrie.h +++ b/alib2common/src/container/ObjectsTrie.h @@ -185,6 +185,7 @@ template < typename T, typename R > struct xmlApi < std::trie < T, R > > { static std::trie < T, R > parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, const std::trie < T, R > & data ); }; @@ -195,7 +196,12 @@ std::trie < T, R > xmlApi < std::trie < T, R > >::parse ( std::deque < sax::Toke template < typename T, typename R > bool xmlApi < std::trie < T, R > >::first ( const std::deque < sax::Token >::const_iterator & input ) { - return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, container::ObjectsTrie < >::getXmlTagName ( ) ); + return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) ); +} + +template < typename T, typename R > +std::string xmlApi < std::trie < T, R > >::xmlTagName ( ) { + return container::ObjectsTrie < >::getXmlTagName ( ); } template < typename T, typename R > diff --git a/alib2common/src/container/ObjectsTuple.h b/alib2common/src/container/ObjectsTuple.h index 7118b7a958..196a653f94 100644 --- a/alib2common/src/container/ObjectsTuple.h +++ b/alib2common/src/container/ObjectsTuple.h @@ -73,6 +73,7 @@ template < typename ... Ts > struct xmlApi < std::tuple < Ts ... > > { static std::tuple < Ts ... > parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, const std::tuple < Ts ... > & data ); }; @@ -83,7 +84,12 @@ std::tuple < Ts ... > xmlApi < std::tuple < Ts ... > >::parse ( std::deque < sax template < typename ... Ts > bool xmlApi < std::tuple < Ts ... > >::first ( const std::deque < sax::Token >::const_iterator & input ) { - return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, container::ObjectsTuple::getXmlTagName() ); + return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName() ); +} + +template < typename ... Ts > +std::string xmlApi < std::tuple < Ts ... > >::xmlTagName ( ) { + return container::ObjectsTuple::getXmlTagName(); } template < typename ... Ts > diff --git a/alib2common/src/container/ObjectsVariant.h b/alib2common/src/container/ObjectsVariant.h index 47fb46cb87..22a8f2709c 100644 --- a/alib2common/src/container/ObjectsVariant.h +++ b/alib2common/src/container/ObjectsVariant.h @@ -111,6 +111,7 @@ template < typename ... Ts > struct xmlApi < std::variant < Ts ... > > { static std::variant < Ts ... > parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, const std::variant < Ts ... > & data ); }; @@ -124,6 +125,11 @@ bool xmlApi < std::variant < Ts ... > >::first ( const std::deque < sax::Token > return container::firstVariantHelper < std::variant < Ts ... >, Ts ... > ( input ); } +template < typename ... Ts > +std::string xmlApi < std::variant < Ts ... > >::xmlTagName ( ) { + throw ::exception::CommonException ( "Variant does not have xmlTagName." ); +} + template < typename ... Ts > void xmlApi < std::variant < Ts ... > >::compose ( std::deque < sax::Token > & output, const std::variant < Ts ... > & input ) { return container::ObjectsVariant::compose < Ts ... > ( output, input ); diff --git a/alib2common/src/container/ObjectsVector.h b/alib2common/src/container/ObjectsVector.h index 1a7dd5de68..5ee06a051c 100644 --- a/alib2common/src/container/ObjectsVector.h +++ b/alib2common/src/container/ObjectsVector.h @@ -157,6 +157,7 @@ template < typename T > struct xmlApi < std::vector < T > > { static std::vector < T > parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, const std::vector < T > & data ); }; @@ -167,7 +168,12 @@ std::vector < T > xmlApi < std::vector < T > >::parse ( std::deque < sax::Token template < typename T > bool xmlApi < std::vector < T > >::first ( const std::deque < sax::Token >::const_iterator & input ) { - return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, container::ObjectsVector < >::getXmlTagName() ); + return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName() ); +} + +template < typename T > +std::string xmlApi < std::vector < T > >::xmlTagName ( ) { + return container::ObjectsVector < >::getXmlTagName(); } template < typename T > diff --git a/alib2common/src/core/xmlApi.hpp b/alib2common/src/core/xmlApi.hpp index e4096793d0..f57dd9b6b2 100644 --- a/alib2common/src/core/xmlApi.hpp +++ b/alib2common/src/core/xmlApi.hpp @@ -173,6 +173,12 @@ public: return true; } + static std::string xmlTagName ( ) { + std::string target = std::type_name < Group > ( ); + + throw ::exception::CommonException ( "Type " + target + " does not have xmlTagName." ); + } + static void compose ( std::deque < sax::Token > & output, const Group & data ) { xmlApiOutputContext & context = ( xmlApiOutputContext & ) output; @@ -215,7 +221,11 @@ struct xmlApi < Type, typename std::enable_if < std::is_base_of < ObjectBase, Ty } static bool first ( const std::deque < sax::Token >::const_iterator & input ) { - return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, Type::getXmlTagName() ); + return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName() ); + } + + static std::string xmlTagName ( ) { + return Type::getXmlTagName(); } static void compose ( std::deque < sax::Token > & output, const Type & data ) { diff --git a/alib2common/src/primitive/Bool.cpp b/alib2common/src/primitive/Bool.cpp index 4bca416762..3bcf20c114 100644 --- a/alib2common/src/primitive/Bool.cpp +++ b/alib2common/src/primitive/Bool.cpp @@ -94,7 +94,11 @@ bool xmlApi<bool>::parse(std::deque<sax::Token>::iterator& input) { } bool xmlApi<bool>::first(const std::deque<sax::Token>::const_iterator& input) { - return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, primitive::Bool::getXmlTagName()); + return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, xmlTagName()); +} + +std::string xmlApi<bool>::xmlTagName() { + return primitive::Bool::getXmlTagName(); } void xmlApi<bool>::compose(std::deque<sax::Token>& output, bool data) { diff --git a/alib2common/src/primitive/Bool.h b/alib2common/src/primitive/Bool.h index 70f29fe605..68c3d0857c 100644 --- a/alib2common/src/primitive/Bool.h +++ b/alib2common/src/primitive/Bool.h @@ -82,6 +82,7 @@ template < > struct xmlApi < bool > { static bool parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, bool data ); }; diff --git a/alib2common/src/primitive/Character.cpp b/alib2common/src/primitive/Character.cpp index 6830c2428a..297ced502f 100644 --- a/alib2common/src/primitive/Character.cpp +++ b/alib2common/src/primitive/Character.cpp @@ -83,7 +83,11 @@ char xmlApi<char>::parse(std::deque<sax::Token>::iterator& input) { } bool xmlApi<char>::first(const std::deque<sax::Token>::const_iterator& input) { - return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, primitive::Character::getXmlTagName()); + return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, xmlTagName()); +} + +std::string xmlApi<char>::xmlTagName() { + return primitive::Character::getXmlTagName(); } void xmlApi<char>::compose(std::deque<sax::Token>& output, char data) { diff --git a/alib2common/src/primitive/Character.h b/alib2common/src/primitive/Character.h index 8ed29bec4c..8d44ae1814 100644 --- a/alib2common/src/primitive/Character.h +++ b/alib2common/src/primitive/Character.h @@ -82,6 +82,7 @@ template < > struct xmlApi < char > { static char parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, char data ); }; diff --git a/alib2common/src/primitive/Double.cpp b/alib2common/src/primitive/Double.cpp index 573d7eade4..3acb1e041f 100644 --- a/alib2common/src/primitive/Double.cpp +++ b/alib2common/src/primitive/Double.cpp @@ -88,7 +88,11 @@ int xmlApi<double>::parse(std::deque<sax::Token>::iterator& input) { } bool xmlApi<double>::first(const std::deque<sax::Token>::const_iterator& input) { - return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, primitive::Double::getXmlTagName()); + return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, xmlTagName()); +} + +std::string xmlApi<double>::xmlTagName() { + return primitive::Double::getXmlTagName(); } void xmlApi<double>::compose(std::deque<sax::Token>& output, double data) { diff --git a/alib2common/src/primitive/Double.h b/alib2common/src/primitive/Double.h index 578b8bb3c9..abff90e059 100644 --- a/alib2common/src/primitive/Double.h +++ b/alib2common/src/primitive/Double.h @@ -82,6 +82,7 @@ template < > struct xmlApi < double > { static int parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, double data ); }; diff --git a/alib2common/src/primitive/Integer.cpp b/alib2common/src/primitive/Integer.cpp index 97ff2f1402..89b960661d 100644 --- a/alib2common/src/primitive/Integer.cpp +++ b/alib2common/src/primitive/Integer.cpp @@ -83,7 +83,11 @@ int xmlApi<int>::parse(std::deque<sax::Token>::iterator& input) { } bool xmlApi<int>::first(const std::deque<sax::Token>::const_iterator& input) { - return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, primitive::Integer::getXmlTagName()); + return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, xmlTagName()); +} + +std::string xmlApi<int>::xmlTagName() { + return primitive::Integer::getXmlTagName(); } void xmlApi<int>::compose(std::deque<sax::Token>& output, int data) { diff --git a/alib2common/src/primitive/Integer.h b/alib2common/src/primitive/Integer.h index 1e1aaf0e9f..bdecb3ce5a 100644 --- a/alib2common/src/primitive/Integer.h +++ b/alib2common/src/primitive/Integer.h @@ -82,6 +82,7 @@ template < > struct xmlApi < int > { static int parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, int data ); }; diff --git a/alib2common/src/primitive/String.cpp b/alib2common/src/primitive/String.cpp index 38d18e52a8..0799334fd7 100644 --- a/alib2common/src/primitive/String.cpp +++ b/alib2common/src/primitive/String.cpp @@ -86,7 +86,11 @@ std::string xmlApi<std::string>::parse(std::deque<sax::Token>::iterator& input) } bool xmlApi<std::string>::first(const std::deque<sax::Token>::const_iterator& input) { - return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, primitive::String::getXmlTagName()); + return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, xmlTagName()); +} + +std::string xmlApi<std::string>::xmlTagName() { + return primitive::String::getXmlTagName(); } void xmlApi<std::string>::compose(std::deque<sax::Token>& output, std::string data) { diff --git a/alib2common/src/primitive/String.h b/alib2common/src/primitive/String.h index 9e4c166d79..a3624f3d93 100644 --- a/alib2common/src/primitive/String.h +++ b/alib2common/src/primitive/String.h @@ -83,6 +83,7 @@ template < > struct xmlApi < std::string > { static std::string parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, std::string data ); }; diff --git a/alib2common/src/primitive/Unsigned.cpp b/alib2common/src/primitive/Unsigned.cpp index a76c27e0d9..0b0f02eb56 100644 --- a/alib2common/src/primitive/Unsigned.cpp +++ b/alib2common/src/primitive/Unsigned.cpp @@ -87,7 +87,11 @@ unsigned xmlApi<unsigned>::parse(std::deque<sax::Token>::iterator& input) { } bool xmlApi<unsigned>::first(const std::deque<sax::Token>::const_iterator& input) { - return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, primitive::Unsigned::getXmlTagName()); + return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, xmlTagName()); +} + +std::string xmlApi<unsigned>::xmlTagName() { + return primitive::Unsigned::getXmlTagName(); } void xmlApi<unsigned>::compose(std::deque<sax::Token>& output, unsigned data) { diff --git a/alib2common/src/primitive/Unsigned.h b/alib2common/src/primitive/Unsigned.h index 22f5b22980..3dfe67dd7f 100644 --- a/alib2common/src/primitive/Unsigned.h +++ b/alib2common/src/primitive/Unsigned.h @@ -84,6 +84,7 @@ template < > struct xmlApi < unsigned > { static unsigned parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, unsigned data ); }; diff --git a/alib2common/src/primitive/UnsignedLong.cpp b/alib2common/src/primitive/UnsignedLong.cpp index 245439b736..0fed03b14f 100644 --- a/alib2common/src/primitive/UnsignedLong.cpp +++ b/alib2common/src/primitive/UnsignedLong.cpp @@ -83,7 +83,11 @@ unsigned long xmlApi<unsigned long>::parse(std::deque<sax::Token>::iterator& inp } bool xmlApi<unsigned long>::first(const std::deque<sax::Token>::const_iterator& input) { - return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, primitive::UnsignedLong::getXmlTagName()); + return sax::FromXMLParserHelper::isToken(input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( )); +} + +std::string xmlApi<unsigned long>::xmlTagName() { + return primitive::UnsignedLong::getXmlTagName(); } void xmlApi<unsigned long>::compose(std::deque<sax::Token>& output, unsigned long data) { diff --git a/alib2common/src/primitive/UnsignedLong.h b/alib2common/src/primitive/UnsignedLong.h index 807d6ab449..6ca67cc428 100644 --- a/alib2common/src/primitive/UnsignedLong.h +++ b/alib2common/src/primitive/UnsignedLong.h @@ -82,6 +82,7 @@ template < > struct xmlApi < unsigned long > { static unsigned long parse ( std::deque < sax::Token >::iterator & input ); static bool first ( const std::deque < sax::Token >::const_iterator & input ); + static std::string xmlTagName ( ); static void compose ( std::deque < sax::Token > & output, unsigned long data ); }; diff --git a/alib2common/src/sax/FromXMLParserHelper.cpp b/alib2common/src/sax/FromXMLParserHelper.cpp index e1ec1ababe..98a83748ae 100644 --- a/alib2common/src/sax/FromXMLParserHelper.cpp +++ b/alib2common/src/sax/FromXMLParserHelper.cpp @@ -67,7 +67,7 @@ std::string FromXMLParserHelper::getTokenData(std::deque<Token>::const_iterator } } -std::deque< sax::Token > FromXMLParserHelper::parseSingle(const std::string& input) { +std::deque< sax::Token > FromXMLParserHelper::parseInput(const std::string& input) { std::deque < sax::Token > res; sax::SaxParseInterface::parseFile ( input, res ); return res; @@ -81,10 +81,10 @@ std::deque < std::deque < sax::Token > > FromXMLParserHelper::parseInput(bool ne throw exception::CommonException("Multiple parameters when single required."); for ( const std::string & fileName : input.getValue() ) { - inputTokens.emplace_back ( parseSingle ( fileName ) ); + inputTokens.emplace_back ( parseInput ( fileName ) ); } } else { - inputTokens.emplace_back ( parseSingle ( "-" ) ); + inputTokens.emplace_back ( parseInput ( "-" ) ); } return inputTokens; @@ -92,9 +92,9 @@ std::deque < std::deque < sax::Token > > FromXMLParserHelper::parseInput(bool ne std::deque < sax::Token > FromXMLParserHelper::parseInput(/*const*/ TCLAP::ValueArg < std::string >& input) { if ( input.isSet ( ) ) { - return parseSingle ( input.getValue() ); + return parseInput ( input.getValue() ); } else { - return parseSingle ( "-" ); + return parseInput ( "-" ); } } } /* namespace sax */ diff --git a/alib2common/src/sax/FromXMLParserHelper.h b/alib2common/src/sax/FromXMLParserHelper.h index f91a588fac..a211c555ba 100644 --- a/alib2common/src/sax/FromXMLParserHelper.h +++ b/alib2common/src/sax/FromXMLParserHelper.h @@ -33,8 +33,7 @@ public: static void skipAttributes ( std::deque < Token >::const_iterator & input, Token::TokenType type ); static void skipAttributes ( std::deque < Token >::iterator & input, Token::TokenType type ); -private: - static std::deque< sax::Token > parseSingle(const std::string& input); + static std::deque< sax::Token > parseInput(const std::string& input); }; } /* namespace sax */ -- GitLab