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; }