private RuleResult selectSuccess()
{
if( success.isEmpty() )
throw new IllegalStateException( "no planner results from registry set" );
for( RuleResult ruleResult : success )
getFlowLogger().logInfo( "rule registry: {}, supports assembly with steps: {}, nodes: {}", ruleResult.getRegistry().getName(), ruleResult.getNumSteps(), ruleResult.getNumNodes() );
if( success.size() != 1 )
{
Collections.sort( success, getOrderComparator() );
Collections.sort( success, getPlanComparator() );
}
RuleResult ruleResult = success.get( 0 );
if( registrySet.getSelect() == RuleRegistrySet.Select.FIRST )
getFlowLogger().logInfo( "rule registry: {}, result was selected as first successful", ruleResult.getRegistry().getName() );
else if( registrySet.getSelect() == RuleRegistrySet.Select.COMPARED )
getFlowLogger().logInfo( "rule registry: {}, result was selected using: \'{}\'", ruleResult.getRegistry().getName(), getPlanComparator().toString() );
return ruleResult;
}