private ScenarioToken createScenarioFromOutline(String scenarioName, ScenarioToken outlineScenario, List<String> placeholders,
List<String> values,List<String> currentFeaturesTags,
List<String> currentScenariosTags, List<StepMacro> stepMacros) {
ScenarioToken scenario = new ScenarioToken();
List<String> outlineVariableTags = findChorusTagsFromOutlineVariables(placeholders, values);
String firstParam = " " + (!values.isEmpty() ? values.get(0) : "");
scenarioName += firstParam.trim().length() > 0 ? firstParam : "";
scenario.setName(scenarioName);
for (StepToken step : outlineScenario.getSteps()) {
String action = step.getAction();
for (int i = 0; i < placeholders.size(); i++) {
String placeholder = placeholders.get(i);
String value = values.get(i);
value = RegexpUtils.escapeRegexReplacement(value);
action = action.replaceAll("<" + placeholder + ">", value);
}
addStepToScenario(scenario, createStepToken(step.getType(), action), stepMacros);
}
scenario.addTags(currentFeaturesTags);
scenario.addTags(currentScenariosTags);
scenario.addTags(outlineVariableTags);
return scenario;
}