@@ -68,6 +68,10 @@ public static boolean isNumeric(Object value) {
68
68
|| Double .TYPE .isInstance ( value );
69
69
}
70
70
71
+ public static boolean isBoolean (Object value ) {
72
+ return Boolean .class .isInstance ( value );
73
+ }
74
+
71
75
public static class ByteValueHandler extends BaseValueHandler <Byte > implements Serializable {
72
76
public static final ByteValueHandler INSTANCE = new ByteValueHandler ();
73
77
@ SuppressWarnings ({ "UnnecessaryBoxing" })
@@ -230,6 +234,23 @@ public String render(BigDecimal value) {
230
234
}
231
235
}
232
236
237
+ public static class BooleanValueHandler extends BaseValueHandler <Boolean > implements Serializable {
238
+ public static final BooleanValueHandler INSTANCE = new BooleanValueHandler ();
239
+
240
+ public Boolean convert (Object value ) {
241
+ if ( value == null ) {
242
+ return null ;
243
+ }
244
+ if ( Boolean .class .isInstance ( value ) ) {
245
+ return (Boolean ) value ;
246
+ }
247
+ if ( String .class .isInstance ( value ) ) {
248
+ return Boolean .getBoolean ( (String ) value );
249
+ }
250
+ throw unknownConversion ( value , Boolean .class );
251
+ }
252
+ }
253
+
233
254
public static class StringValueHandler extends BaseValueHandler <String > implements Serializable {
234
255
public static final StringValueHandler INSTANCE = new StringValueHandler ();
235
256
public String convert (Object value ) {
@@ -308,6 +329,9 @@ public static <T> ValueHandler<T> determineAppropriateHandler(Class<T> targetTyp
308
329
if ( BigDecimal .class .equals ( targetType ) ) {
309
330
return (ValueHandler <T >) BigDecimalValueHandler .INSTANCE ;
310
331
}
332
+ if ( Boolean .class .equals ( targetType ) ) {
333
+ return (ValueHandler <T >) BooleanValueHandler .INSTANCE ;
334
+ }
311
335
return null ;
312
336
}
313
337
}
0 commit comments