use of io.cucumber.docstring.DocString in project cucumber-jvm by cucumber.
the class StepExpressionFactory method createExpression.
private StepExpression createExpression(String expressionString, Supplier<Type> tableOrDocStringType, boolean transpose) {
requireNonNull(expressionString, "expressionString can not be null");
requireNonNull(tableOrDocStringType, "tableOrDocStringType can not be null");
final Expression expression = crateExpression(expressionString);
RawTableTransformer<?> tableTransform = (List<List<String>> raw) -> {
DataTable dataTable = DataTable.create(raw, StepExpressionFactory.this.tableConverter);
Type targetType = tableOrDocStringType.get();
return dataTable.convert(Object.class.equals(targetType) ? DataTable.class : targetType, transpose);
};
DocStringTransformer<?> docStringTransform = (text, contentType) -> {
DocString docString = DocString.create(text, contentType, docStringConverter);
Type targetType = tableOrDocStringType.get();
return docString.convert(Object.class.equals(targetType) ? DocString.class : targetType);
};
return new StepExpression(expression, docStringTransform, tableTransform);
}
Aggregations