@@ -210,6 +210,7 @@ class FiniteStateMachine {
210
210
[[nodiscard]] virtual const SetOfStateRefs &getInitialStates () const = 0;
211
211
[[nodiscard]] virtual const SetOfStateRefs &getFinalStates () const = 0;
212
212
[[nodiscard]] virtual const SetOfStates &getStates () const = 0;
213
+ [[nodiscard]] virtual const SetOfEdges &getEdges () const = 0;
213
214
};
214
215
215
216
//
@@ -507,7 +508,7 @@ class FiniteStateMachine : public Abstract::FiniteStateMachine {
507
508
508
509
private:
509
510
SetOfStates<StateLabelType, EdgeLabelType> states;
510
- Abstract:: SetOfEdges edges;
511
+ SetOfEdges<StateLabelType, EdgeLabelType> edges;
511
512
// State<StateLabelType, EdgeLabelType> *initialState;
512
513
SetOfStateRefs<StateLabelType, EdgeLabelType> initialStates;
513
514
SetOfStateRefs<StateLabelType, EdgeLabelType> finalStates;
@@ -650,6 +651,11 @@ class FiniteStateMachine : public Abstract::FiniteStateMachine {
650
651
[[nodiscard]] const SetOfStates<StateLabelType, EdgeLabelType> &getStates () const override {
651
652
return this ->states ;
652
653
};
654
+
655
+ [[nodiscard]] const SetOfEdges<StateLabelType, EdgeLabelType> &getEdges () const override {
656
+ return this ->edges ;
657
+ };
658
+
653
659
Abstract::SetOfStateRefs getStateRefs () {
654
660
Abstract::SetOfStateRefs result;
655
661
for (auto i : this ->states ) {
@@ -658,7 +664,13 @@ class FiniteStateMachine : public Abstract::FiniteStateMachine {
658
664
return result;
659
665
};
660
666
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
+ };
662
674
663
675
EdgeRef<StateLabelType, EdgeLabelType>
664
676
getEdge (const State<StateLabelType, EdgeLabelType> &source,
0 commit comments