From 48577a238f482d60c20e2ff88b0adedd662b7e09 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Wed, 4 Jan 2017 21:48:50 +0100
Subject: [PATCH] callbacks for forgotten labels in toStringComposer

---
 alib2data/src/label/LabelFeatures.h          |  3 +++
 alib2str/src/label/LabelToStringComposer.cpp | 24 ++++++++++++++++++++
 alib2str/src/label/LabelToStringComposer.h   |  3 +++
 3 files changed, 30 insertions(+)

diff --git a/alib2data/src/label/LabelFeatures.h b/alib2data/src/label/LabelFeatures.h
index 33eb238f44..5d34b49012 100644
--- a/alib2data/src/label/LabelFeatures.h
+++ b/alib2data/src/label/LabelFeatures.h
@@ -28,6 +28,9 @@ class ObjectLabel;
 class LabelSetLabel;
 class LabelPairLabel;
 class UniqueLabel;
+class InitialStateLabel;
+class FailStateLabel;
+class FinalStateLabel;
 
 } /* namespace label */
 
diff --git a/alib2str/src/label/LabelToStringComposer.cpp b/alib2str/src/label/LabelToStringComposer.cpp
index 55d9098909..5361f9c50b 100644
--- a/alib2str/src/label/LabelToStringComposer.cpp
+++ b/alib2str/src/label/LabelToStringComposer.cpp
@@ -14,6 +14,9 @@
 #include "label/LabelSetLabel.h"
 #include "label/LabelPairLabel.h"
 #include "label/UniqueLabel.h"
+#include "label/InitialStateLabel.h"
+#include "label/FinalStateLabel.h"
+#include "label/FailStateLabel.h"
 
 #include "../StringApi.hpp"
 
@@ -78,6 +81,27 @@ void LabelToStringComposer::compose(std::ostream& out, const UniqueLabel& label)
 auto LabelToStringComposerUniqueLabel = LabelToStringComposer::RegistratorWrapper<void, UniqueLabel>(LabelToStringComposer::compose);
 auto ObjectToStringComposerUniqueLabel = alib::ObjectBaseDispatcher::RegistratorWrapper<void, UniqueLabel >( LabelToStringComposer::compose);
 
+void LabelToStringComposer::compose(std::ostream& out, const FailStateLabel& label) {
+	out << (std::string) label;
+}
+
+auto LabelToStringComposerFailStateLabel = LabelToStringComposer::RegistratorWrapper<void, FailStateLabel>(LabelToStringComposer::compose);
+auto ObjectToStringComposerFailStateLabel = alib::ObjectBaseDispatcher::RegistratorWrapper<void, FailStateLabel >( LabelToStringComposer::compose);
+
+void LabelToStringComposer::compose(std::ostream& out, const InitialStateLabel& label) {
+	out << (std::string) label;
+}
+
+auto LabelToStringComposerInitialStateLabel = LabelToStringComposer::RegistratorWrapper<void, InitialStateLabel>(LabelToStringComposer::compose);
+auto ObjectToStringComposerInitialStateLabel = alib::ObjectBaseDispatcher::RegistratorWrapper<void, InitialStateLabel >( LabelToStringComposer::compose);
+
+void LabelToStringComposer::compose(std::ostream& out, const FinalStateLabel& label) {
+	out << (std::string) label;
+}
+
+auto LabelToStringComposerFinalStateLabel = LabelToStringComposer::RegistratorWrapper<void, FinalStateLabel>(LabelToStringComposer::compose);
+auto ObjectToStringComposerFinalStateLabel = alib::ObjectBaseDispatcher::RegistratorWrapper<void, FinalStateLabel >( LabelToStringComposer::compose);
+
 void LabelToStringComposer::compose(std::ostream& output, const Label& label) {
 	dispatch(output, label.getData());
 }
diff --git a/alib2str/src/label/LabelToStringComposer.h b/alib2str/src/label/LabelToStringComposer.h
index 4c716501b6..5decc9e98a 100644
--- a/alib2str/src/label/LabelToStringComposer.h
+++ b/alib2str/src/label/LabelToStringComposer.h
@@ -26,6 +26,9 @@ public:
 	static void compose(std::ostream&, const LabelSetLabel& label);
 	static void compose(std::ostream&, const LabelPairLabel& label);
 	static void compose(std::ostream&, const UniqueLabel& label);
+	static void compose(std::ostream&, const FailStateLabel& label);
+	static void compose(std::ostream&, const InitialStateLabel& label);
+	static void compose(std::ostream&, const FinalStateLabel& label);
 
 	/**
 	 * Prints text representation of Label to the output stream.
-- 
GitLab