From 4f28d84de76c9e84bdd749cfd7df4321f319da5e Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Wed, 20 Jul 2016 22:59:51 +0200
Subject: [PATCH] casting of new tree structures to linear string

---
 alib2data/src/string/LinearString.cpp | 12 +++++++++++-
 alib2data/src/string/LinearString.h   |  4 ++++
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/alib2data/src/string/LinearString.cpp b/alib2data/src/string/LinearString.cpp
index 785d32b2ae..5b5fbc2e5d 100644
--- a/alib2data/src/string/LinearString.cpp
+++ b/alib2data/src/string/LinearString.cpp
@@ -9,8 +9,10 @@
 #include "Epsilon.h"
 #include "../tree/ranked/PrefixRankedTree.h"
 #include "../tree/ranked/PrefixRankedPattern.h"
+#include "../tree/ranked/PrefixRankedNonlinearPattern.h"
 #include "../tree/ranked/PrefixRankedBarTree.h"
 #include "../tree/ranked/PrefixRankedBarPattern.h"
+#include "../tree/ranked/PrefixRankedBarNonlinearPattern.h"
 #include "../tree/unranked/PrefixBarTree.h"
 #include "../tree/common/TreeAuxiliary.h"
 #include <exception/CommonException.h>
@@ -54,12 +56,18 @@ LinearString::LinearString ( const tree::PrefixRankedTree & tree ) : LinearStrin
 LinearString::LinearString ( const tree::PrefixRankedPattern & tree ) : LinearString ( StringAuxiliary::wrapSymbols ( tree.getAlphabet ( ) ), StringAuxiliary::wrapSymbols ( tree.getContent ( ) ) ) {
 }
 
+LinearString::LinearString ( const tree::PrefixRankedNonlinearPattern & tree ) : LinearString ( StringAuxiliary::wrapSymbols ( tree.getAlphabet ( ) ), StringAuxiliary::wrapSymbols ( tree.getContent ( ) ) ) {
+}
+
 LinearString::LinearString ( const tree::PrefixRankedBarTree & tree ) : LinearString ( StringAuxiliary::wrapSymbols ( tree.getAlphabet ( ) ), StringAuxiliary::wrapSymbols ( tree.getContent ( ) ) ) {
 }
 
 LinearString::LinearString ( const tree::PrefixRankedBarPattern & tree ) : LinearString ( StringAuxiliary::wrapSymbols ( tree.getAlphabet ( ) ), StringAuxiliary::wrapSymbols ( tree.getContent ( ) ) ) {
 }
 
+LinearString::LinearString ( const tree::PrefixRankedBarNonlinearPattern & tree ) : LinearString ( StringAuxiliary::wrapSymbols ( tree.getAlphabet ( ) ), StringAuxiliary::wrapSymbols ( tree.getContent ( ) ) ) {
+}
+
 LinearString::LinearString ( const tree::PrefixBarTree & tree ) : LinearString ( tree.getAlphabet ( ), tree.getContent ( ) ) {
 }
 
@@ -166,13 +174,15 @@ void ::string::LinearString::Component < ::string::LinearString, alphabet::Symbo
 namespace alib {
 
 auto linearStringParserRegister = xmlApi < string::String >::ParserRegister < string::LinearString > ();
-auto linearStringParserRegister2  = xmlApi < alib::Object >::ParserRegister < string::LinearString > ();
+auto linearStringParserRegister2 = xmlApi < alib::Object >::ParserRegister < string::LinearString > ();
 
 auto LinearStringFromEpsilon = castApi::CastRegister < string::LinearString, string::Epsilon > ( );
 auto LinearStringFromPrefixRankedTree = castApi::CastRegister < string::LinearString, tree::PrefixRankedTree > ( );
 auto LinearStringFromPrefixRankedPattern = castApi::CastRegister < string::LinearString, tree::PrefixRankedPattern > ( );
+auto LinearStringFromPrefixRankedNonlinearPattern = castApi::CastRegister < string::LinearString, tree::PrefixRankedNonlinearPattern > ( );
 auto LinearStringFromPrefixRankedBarTree = castApi::CastRegister < string::LinearString, tree::PrefixRankedBarTree > ( );
 auto LinearStringFromPrefixRankedBarPattern = castApi::CastRegister < string::LinearString, tree::PrefixRankedBarPattern > ( );
+auto LinearStringFromPrefixRankedBarNonlinearPattern = castApi::CastRegister < string::LinearString, tree::PrefixRankedBarNonlinearPattern > ( );
 auto LinearStringFromPrefixBarTree = castApi::CastRegister < string::LinearString, tree::PrefixBarTree > ( );
 auto LinearStringCastBinder = castApi::CastPoolStringBinder < string::LinearString > ( string::LinearString::getXmlTagName() );
 
diff --git a/alib2data/src/string/LinearString.h b/alib2data/src/string/LinearString.h
index e3d4cdfb0b..13bd6c5d09 100644
--- a/alib2data/src/string/LinearString.h
+++ b/alib2data/src/string/LinearString.h
@@ -19,8 +19,10 @@ namespace tree {
 
 class PrefixRankedTree;
 class PrefixRankedPattern;
+class PrefixRankedNonlinearPattern;
 class PrefixRankedBarTree;
 class PrefixRankedBarPattern;
+class PrefixRankedBarNonlinearPattern;
 class PrefixBarTree;
 
 }
@@ -41,8 +43,10 @@ public:
 	explicit LinearString ( );
 	explicit LinearString ( const tree::PrefixRankedTree & tree );
 	explicit LinearString ( const tree::PrefixRankedPattern & tree );
+	explicit LinearString ( const tree::PrefixRankedNonlinearPattern & tree );
 	explicit LinearString ( const tree::PrefixRankedBarTree & tree );
 	explicit LinearString ( const tree::PrefixRankedBarPattern & tree );
+	explicit LinearString ( const tree::PrefixRankedBarNonlinearPattern & tree );
 	explicit LinearString ( const tree::PrefixBarTree & tree );
 	explicit LinearString ( std::set < alphabet::Symbol > alphabet, std::vector < alphabet::Symbol > data );
 	explicit LinearString ( std::vector < alphabet::Symbol > data );
-- 
GitLab