|
4 | 4 | import io.cucumber.core.backend.Lookup;
|
5 | 5 | import io.cucumber.datatable.DataTable;
|
6 | 6 | import io.cucumber.datatable.DataTableType;
|
7 |
| -import io.cucumber.datatable.TableCellTransformer; |
8 |
| -import io.cucumber.datatable.TableEntryTransformer; |
9 |
| -import io.cucumber.datatable.TableRowTransformer; |
10 |
| -import io.cucumber.datatable.TableTransformer; |
11 | 7 |
|
12 | 8 | import java.lang.reflect.Method;
|
13 | 9 | import java.lang.reflect.ParameterizedType;
|
|
17 | 13 |
|
18 | 14 | import static io.cucumber.java.InvalidMethodSignatureException.builder;
|
19 | 15 |
|
20 |
| -class JavaDataTableTypeDefinition extends AbstractGlueDefinition implements DataTableTypeDefinition { |
| 16 | +class JavaDataTableTypeDefinition extends AbstractDatatableElementTransformerDefinition implements DataTableTypeDefinition { |
21 | 17 |
|
22 | 18 | private final DataTableType dataTableType;
|
23 | 19 |
|
24 |
| - JavaDataTableTypeDefinition(Method method, Lookup lookup) { |
25 |
| - super(method, lookup); |
| 20 | + JavaDataTableTypeDefinition(Method method, Lookup lookup, String[] emptyPatterns) { |
| 21 | + super(method, lookup, emptyPatterns); |
26 | 22 | this.dataTableType = createDataTableType(method);
|
27 | 23 | }
|
28 | 24 |
|
@@ -75,33 +71,32 @@ private DataTableType createDataTableType(Method method) {
|
75 | 71 | if (DataTable.class.equals(parameterType)) {
|
76 | 72 | return new DataTableType(
|
77 | 73 | returnType,
|
78 |
| - (TableTransformer<Object>) this::execute |
| 74 | + (DataTable table) -> execute(replaceEmptyPatternsWithEmptyString(table)) |
79 | 75 | );
|
80 | 76 | }
|
81 | 77 |
|
82 | 78 | if (List.class.equals(parameterType)) {
|
83 | 79 | return new DataTableType(
|
84 | 80 | returnType,
|
85 |
| - (TableRowTransformer<Object>) this::execute |
| 81 | + (List<String> row) -> execute(replaceEmptyPatternsWithEmptyString(row)) |
86 | 82 | );
|
87 | 83 | }
|
88 | 84 |
|
89 | 85 | if (Map.class.equals(parameterType)) {
|
90 | 86 | return new DataTableType(
|
91 | 87 | returnType,
|
92 |
| - (TableEntryTransformer<Object>) this::execute |
| 88 | + (Map<String, String> entry) -> execute(replaceEmptyPatternsWithEmptyString(entry)) |
93 | 89 | );
|
94 | 90 | }
|
95 | 91 |
|
96 | 92 | if (String.class.equals(parameterType)) {
|
97 | 93 | return new DataTableType(
|
98 | 94 | returnType,
|
99 |
| - (TableCellTransformer<Object>) this::execute |
| 95 | + (String cell) -> execute(replaceEmptyPatternsWithEmptyString(cell)) |
100 | 96 | );
|
101 | 97 | }
|
102 | 98 |
|
103 | 99 | throw createInvalidSignatureException(method);
|
104 |
| - |
105 | 100 | }
|
106 | 101 |
|
107 | 102 | @Override
|
|
0 commit comments