|
24 | 24 | import java.math.BigDecimal;
|
25 | 25 | import java.util.List;
|
26 | 26 | import java.util.UUID;
|
| 27 | +import java.util.function.BiFunction; |
27 | 28 | import java.util.function.Function;
|
28 | 29 |
|
29 | 30 | /**
|
@@ -179,58 +180,55 @@ default float getFloat(String columnName) {
|
179 | 180 | /**
|
180 | 181 | * @param columnIndex index of the column
|
181 | 182 | * @return the value of a column with type T or null if the column contains a null value
|
182 |
| - * <p>Example |
183 |
| - * |
184 |
| - * <pre>{@code |
| 183 | + * <p>Example |
| 184 | + * <pre>{@code |
185 | 185 | * Struct row = ...
|
186 |
| - * String name = row.getOrNull(1, row::getString) |
| 186 | + * String name = row.getOrNull(1, StructReader::getString) |
187 | 187 | * }</pre>
|
188 | 188 | */
|
189 |
| - default <T> T getOrNull(int columnIndex, Function<Integer, T> function) { |
190 |
| - return isNull(columnIndex) ? null : function.apply(columnIndex); |
| 189 | + default <T> T getOrNull(int columnIndex, BiFunction<StructReader, Integer, T> function) { |
| 190 | + return isNull(columnIndex) ? null : function.apply(this, columnIndex); |
191 | 191 | }
|
192 | 192 |
|
193 | 193 | /**
|
194 | 194 | * @param columnName index of the column
|
195 | 195 | * @return the value of a column with type T or null if the column contains a null value
|
196 |
| - * <p>Example |
197 |
| - * |
198 |
| - * <pre>{@code |
| 196 | + * <p>Example |
| 197 | + * <pre>{@code |
199 | 198 | * Struct row = ...
|
200 |
| - * String name = row.getOrNull("name", row::getString) |
| 199 | + * String name = row.getOrNull("name", StructReader::getString) |
201 | 200 | * }</pre>
|
202 | 201 | */
|
203 |
| - default <T> T getOrNull(String columnName, Function<String, T> function) { |
204 |
| - return isNull(columnName) ? null : function.apply(columnName); |
| 202 | + default <T> T getOrNull(String columnName, BiFunction<StructReader, String, T> function) { |
| 203 | + return isNull(columnName) ? null : function.apply(this, columnName); |
205 | 204 | }
|
206 | 205 |
|
207 | 206 | /**
|
208 | 207 | * @param columnIndex index of the column
|
209 | 208 | * @return the value of a column with type T, or the given default if the column value is null
|
210 |
| - * <p>Example |
211 |
| - * |
212 |
| - * <pre>{@code |
| 209 | + * <p>Example |
| 210 | + * <pre>{@code |
213 | 211 | * Struct row = ...
|
214 |
| - * String name = row.getOrDefault(1, row::getString, "") |
| 212 | + * String name = row.getOrDefault(1, StructReader::getString, "") |
215 | 213 | * }</pre>
|
216 | 214 | */
|
217 |
| - default <T> T getOrDefault(int columnIndex, Function<Integer, T> function, T defaultValue) { |
218 |
| - return isNull(columnIndex) ? defaultValue : function.apply(columnIndex); |
| 215 | + default <T> T getOrDefault( |
| 216 | + int columnIndex, BiFunction<StructReader, Integer, T> function, T defaultValue) { |
| 217 | + return isNull(columnIndex) ? defaultValue : function.apply(this, columnIndex); |
219 | 218 | }
|
220 | 219 |
|
221 | 220 | /**
|
222 | 221 | * @param columnName name of the column
|
223 | 222 | * @return the value of a column with type T, or the given default if the column value is null
|
224 |
| - * |
225 |
| - * <p>Example |
226 |
| - * |
227 |
| - * <pre>{@code |
| 223 | + * <p>Example |
| 224 | + * <pre>{@code |
228 | 225 | * Struct row = ...
|
229 |
| - * String name = row.getOrDefault("name", row::getString, "") |
| 226 | + * String name = row.getOrDefault("name", StructReader::getString, "") |
230 | 227 | * }</pre>
|
231 | 228 | */
|
232 |
| - default <T> T getOrDefault(String columnName, Function<String, T> function, T defaultValue) { |
233 |
| - return isNull(columnName) ? defaultValue : function.apply(columnName); |
| 229 | + default <T> T getOrDefault( |
| 230 | + String columnName, BiFunction<StructReader, String, T> function, T defaultValue) { |
| 231 | + return isNull(columnName) ? defaultValue : function.apply(this, columnName); |
234 | 232 | }
|
235 | 233 |
|
236 | 234 | /**
|
|
0 commit comments