private static Object[] getStepMethodArguments(final String stepParameter, final Map<String, String> parentArguments,
final String stepImplementationPattern, final List<Map<String, String>> inlineTable,
final Class<?>[] parameterTypes, final Class<? extends Converter<?>>[] converterTypes,
final StepImplementationNode stepNode) {
log.debug("getStepMethodArguments for: " + stepParameter);
final String substitutedStepParam = substitutePlaceholders(stepParameter, parentArguments);
stepNode.setLine(substitutedStepParam);
List<Object> argsList = Arguments.getArgs(stepImplementationPattern, substitutedStepParam, parameterTypes,
converterTypes, Configuration.INSTANCE.getConfig());
if (inlineTable != null) {
if (argsList == null) {
argsList = new ArrayList<Object>();
}
argsList.add(inlineTable);
}
Object[] arguments = null;
if (argsList != null) {
arguments = new Object[argsList.size()];
arguments = argsList.toArray(arguments);
if (arguments.length != parameterTypes.length) {
throw new IllegalArgumentException(
"Argument mismatch between what expected for step impl and what found in feature");
}
}
stepNode.setMethodArgs(arguments);
return arguments;
}