package cucumber.runtime.java;
import cucumber.runtime.snippets.Snippet;
import java.util.List;
public abstract class AbstractJavaSnippet implements Snippet {
@Override
public String arguments(List<Class<?>> argumentTypes) {
StringBuilder sb = new StringBuilder();
int n = 1;
for (Class<?> argType : argumentTypes) {
if (n > 1) {
sb.append(", ");
}
sb.append(getArgType(argType)).append(" ").append("arg").append(n++);
}
return sb.toString();
}
protected abstract String getArgType(Class<?> argType);
@Override
public String tableHint() {
return " // For automatic transformation, change DataTable to one of\n" +
" // List<YourType>, List<List<E>>, List<Map<K,V>> or Map<K,V>.\n" +
" // E,K,V must be a scalar (String, Integer, Date, enum etc)\n";
}
@Override
public String namedGroupStart() {
return null;
}
@Override
public String namedGroupEnd() {
return null;
}
@Override
public String escapePattern(String pattern) {
return pattern.replace("\\", "\\\\").replace("\"", "\\\"");
}
}