@@ -210,6 +210,7 @@ class FiniteStateMachine {
210210 [[nodiscard]] virtual const SetOfStateRefs &getInitialStates () const = 0;
211211 [[nodiscard]] virtual const SetOfStateRefs &getFinalStates () const = 0;
212212 [[nodiscard]] virtual const SetOfStates &getStates () const = 0;
213+ [[nodiscard]] virtual const SetOfEdges &getEdges () const = 0;
213214};
214215
215216//
@@ -507,7 +508,7 @@ class FiniteStateMachine : public Abstract::FiniteStateMachine {
507508
508509private:
509510 SetOfStates<StateLabelType, EdgeLabelType> states;
510- Abstract:: SetOfEdges edges;
511+ SetOfEdges<StateLabelType, EdgeLabelType> edges;
511512 // State<StateLabelType, EdgeLabelType> *initialState;
512513 SetOfStateRefs<StateLabelType, EdgeLabelType> initialStates;
513514 SetOfStateRefs<StateLabelType, EdgeLabelType> finalStates;
@@ -650,6 +651,11 @@ class FiniteStateMachine : public Abstract::FiniteStateMachine {
650651 [[nodiscard]] const SetOfStates<StateLabelType, EdgeLabelType> &getStates () const override {
651652 return this ->states ;
652653 };
654+
655+ [[nodiscard]] const SetOfEdges<StateLabelType, EdgeLabelType> &getEdges () const override {
656+ return this ->edges ;
657+ };
658+
653659 Abstract::SetOfStateRefs getStateRefs () {
654660 Abstract::SetOfStateRefs result;
655661 for (auto i : this ->states ) {
@@ -658,7 +664,13 @@ class FiniteStateMachine : public Abstract::FiniteStateMachine {
658664 return result;
659665 };
660666
661- Abstract::SetOfEdges &getEdges () { return this ->edges ; };
667+ Abstract::SetOfEdgeRefs getEdgeRefs () {
668+ Abstract::SetOfEdgeRefs result;
669+ for (auto i : this ->edges ) {
670+ result.insert (&(*(i.second )));
671+ }
672+ return result;
673+ };
662674
663675 EdgeRef<StateLabelType, EdgeLabelType>
664676 getEdge (const State<StateLabelType, EdgeLabelType> &source,
0 commit comments