diff --git a/alib2data/src/label/LabelFeatures.h b/alib2data/src/label/LabelFeatures.h index 33eb238f4450fa83ffd3744a37c2eac01ce40d18..5d34b49012c2a4907e59b506f24eefc0b3e55c52 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 55d90989092c1e8440a6ba18cec75400c1b32aa1..5361f9c50b4075e956702adfcae3f7509ef3c997 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 4c716501b62778ef76f8c00312b8e9426dd8e8fc..5decc9e98affd1511fb02436b92dce4fbb352bda 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.