|
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