public RootNode prepareExecutionConfig(final Config config , final Syntax syntax, final TestParameters parameters,
final SetupAndTearDown setupAndTearDown ,
final MethodExecutor methodExecutorToUse,
TagManager nonFatalTagmanager ) {
final ExecutionNodeTreeBuilder nodeTreeBuilder = new ExecutionNodeTreeBuilder(parameters, config);
this.rootNode = nodeTreeBuilder.buildExecutionNodeTree(NewSubstepsExecutionConfig.getDescription(config));
setupExecutionListeners(NewSubstepsExecutionConfig.getExecutionListenerClasses(config));
if (NewSubstepsExecutionConfig.isCheckForUncalledAndUnused(config)) {
processUncalledAndUnused(syntax, NewSubstepsExecutionConfig.getDataOutputDirectory(config));
}
ExecutionContext.put(Scope.SUITE, INotificationDistributor.NOTIFIER_DISTRIBUTOR_KEY,
this.notificationDistributor);
this.nodeExecutionContext = new RootNodeExecutionContext(this.notificationDistributor,
Lists.<SubstepExecutionFailure>newArrayList(), setupAndTearDown, nonFatalTagmanager,
methodExecutorToUse);
return this.rootNode;
}