From 7792030867604b881086584c627046f381e31c0a Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Sun, 28 Sep 2014 10:25:57 +0200
Subject: [PATCH] use generic getTransitions

---
 alib2algo/src/automaton/EpsilonClosure.cpp | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/alib2algo/src/automaton/EpsilonClosure.cpp b/alib2algo/src/automaton/EpsilonClosure.cpp
index 318bcf5a39..39ad0e4221 100644
--- a/alib2algo/src/automaton/EpsilonClosure.cpp
+++ b/alib2algo/src/automaton/EpsilonClosure.cpp
@@ -40,10 +40,11 @@ std::set<automaton::State> EpsilonClosure::epsilonClosure( const automaton::Epsi
 		visited[ p ] = true;
 		closure.insert( p );
 
-		for( const auto & transition : fsm.getEpsilonTransitionsFromState( p ) )
-			for (const auto & to : transition.second )
-				if( visited [ to ] == false )
-					queue.push( to );
+		for( const auto & transition : fsm.getTransitions( ) )
+			if( transition.first.second.is<string::Epsilon>() && transition.first.first == p)
+				for (const auto & to : transition.second )
+					if( visited [ to ] == false )
+						queue.push( to );
 	}
 
 	return closure;
@@ -83,8 +84,8 @@ std::set<automaton::State> EpsilonClosure::epsilonClosure( const automaton::Exte
 		visited[ p ] = true;
 		closure.insert( p );
 
-		for( const auto & transition : fsm.getTransitionsFromState( p ) )
-			if( regexp::RegExpEpsilon::languageContainsEpsilon( transition.first.second ) )
+		for( const auto & transition : fsm.getTransitions( ) )
+			if( transition.first.first == p && regexp::RegExpEpsilon::languageContainsEpsilon( transition.first.second ) )
 				for (const auto & to : transition.second )
 					if( visited [ to ] == false )
 						queue.push( to );
@@ -111,8 +112,8 @@ std::set<automaton::State> EpsilonClosure::epsilonClosure( const automaton::Comp
 		visited[ p ] = true;
 		closure.insert( p );
 
-		for( const auto & transition : fsm.getTransitionsFromState( p ) )
-			if( transition.first.second.getContent().size() != 0 )
+		for( const auto & transition : fsm.getTransitions( ) )
+			if( transition.first.first == p && transition.first.second.getContent().size() == 0 )
 				for (const auto & to : transition.second )
 					if( visited [ to ] == false )
 						queue.push( to );
-- 
GitLab