protected Map<ElementExpression, FlowElement> findMapping( FinderContext finderContext, PlannerContext plannerContext, ElementGraph elementGraph )
{
State state = new State( finderContext, plannerContext, matchExpression.getSearchOrder(), matchExpression.getGraph(), elementGraph );
Map<Integer, Integer> vertexMap = new LinkedHashMap<>();
boolean match = match( state, vertexMap );
if( !match )
return Collections.emptyMap();
Map<ElementExpression, FlowElement> result = new LinkedHashMap<>();
for( Map.Entry<Integer, Integer> entry : vertexMap.entrySet() )
result.put( state.getMatcherNode( entry.getKey() ), state.getElementNode( entry.getValue() ) );
return result;
}