public Map<ScopeExpression, Set<Scope>> getEdgeMapping( PlannerContext plannerContext, ElementGraph elementGraph, Map<ElementExpression, FlowElement> vertexMapping )
{
Map<ScopeExpression, Set<Scope>> edgeMapping = new HashMap<>();
DirectedMultigraph<ElementExpression, ScopeExpression> delegate = matchExpression.getGraph();
for( ScopeExpression scopeExpression : delegate.edgeSet() )
{
ElementExpression lhs = delegate.getEdgeSource( scopeExpression );
ElementExpression rhs = delegate.getEdgeTarget( scopeExpression );
FlowElement lhsElement = vertexMapping.get( lhs );
FlowElement rhsElement = vertexMapping.get( rhs );
Set<Scope> edges = elementGraph.getAllEdges( lhsElement, rhsElement );
if( edges != null )
edgeMapping.put( scopeExpression, edges );
}
return edgeMapping;
}