package cucumber.runtime; import gherkin.I18n; import gherkin.formatter.Argument; import gherkin.formatter.model.Step; import java.lang.reflect.Method; import java.lang.reflect.Type; import java.util.List; public class StubStepDefinition implements StepDefinition { private final Object target; private final Method method; private final String pattern; private List<ParameterInfo> parameterInfos; public StubStepDefinition(Object target, Method method, String pattern) { this.target = target; this.method = method; this.pattern = pattern; this.parameterInfos = ParameterInfo.fromMethod(method); } @Override public List<Argument> matchedArguments(Step step) { throw new UnsupportedOperationException(); } @Override public String getLocation(boolean detail) { return method.getName(); } @Override public Integer getParameterCount() { return parameterInfos.size(); } @Override public ParameterInfo getParameterType(int n, Type argumentType) { return parameterInfos.get(n); } @Override public void execute(I18n i18n, Object[] args) throws Throwable { Utils.invoke(target, method, 0, args); } @Override public boolean isDefinedAt(StackTraceElement stackTraceElement) { return false; } @Override public String getPattern() { return pattern; } @Override public boolean isScenarioScoped() { return false; } }