31
31
*
32
32
* @author Gavin King
33
33
* @author Steve Ebersole
34
+ * @author Chris Cranford
34
35
*/
35
36
@ SuppressWarnings ("unchecked" )
36
37
public final class ReflectHelper {
@@ -407,12 +408,7 @@ public static Method findGetterMethod(Class containerClass, String propertyName)
407
408
408
409
// if no getter found yet, check all implemented interfaces
409
410
if ( getter == null ) {
410
- for ( Class theInterface : containerClass .getInterfaces () ) {
411
- getter = getGetterOrNull ( theInterface , propertyName );
412
- if ( getter != null ) {
413
- break ;
414
- }
415
- }
411
+ getter = getGetterOrNull ( containerClass .getInterfaces (), propertyName );
416
412
}
417
413
418
414
if ( getter == null ) {
@@ -430,6 +426,19 @@ public static Method findGetterMethod(Class containerClass, String propertyName)
430
426
return getter ;
431
427
}
432
428
429
+ private static Method getGetterOrNull (Class [] interfaces , String propertyName ) {
430
+ Method getter = null ;
431
+ for ( int i = 0 ; getter == null && i < interfaces .length ; ++i ) {
432
+ final Class anInterface = interfaces [i ];
433
+ getter = getGetterOrNull ( anInterface , propertyName );
434
+ if ( getter == null ) {
435
+ // if no getter found yet, check all implemented interfaces of interface
436
+ getter = getGetterOrNull ( anInterface .getInterfaces (), propertyName );
437
+ }
438
+ }
439
+ return getter ;
440
+ }
441
+
433
442
private static Method getGetterOrNull (Class containerClass , String propertyName ) {
434
443
for ( Method method : containerClass .getDeclaredMethods () ) {
435
444
// if the method has parameters, skip it
@@ -539,12 +548,13 @@ public static Method findSetterMethod(Class containerClass, String propertyName,
539
548
540
549
// if no setter found yet, check all implemented interfaces
541
550
if ( setter == null ) {
542
- for ( Class theInterface : containerClass .getInterfaces () ) {
543
- setter = setterOrNull ( theInterface , propertyName , propertyType );
544
- if ( setter != null ) {
545
- break ;
546
- }
547
- }
551
+ setter = setterOrNull ( containerClass .getInterfaces (), propertyName , propertyType );
552
+ // for ( Class theInterface : containerClass.getInterfaces() ) {
553
+ // setter = setterOrNull( theInterface, propertyName, propertyType );
554
+ // if ( setter != null ) {
555
+ // break;
556
+ // }
557
+ // }
548
558
}
549
559
550
560
if ( setter == null ) {
@@ -562,6 +572,19 @@ public static Method findSetterMethod(Class containerClass, String propertyName,
562
572
return setter ;
563
573
}
564
574
575
+ private static Method setterOrNull (Class [] interfaces , String propertyName , Class propertyType ) {
576
+ Method setter = null ;
577
+ for ( int i = 0 ; setter == null && i < interfaces .length ; ++i ) {
578
+ final Class anInterface = interfaces [i ];
579
+ setter = setterOrNull ( anInterface , propertyName , propertyType );
580
+ if ( setter == null ) {
581
+ // if no setter found yet, check all implemented interfaces of interface
582
+ setter = setterOrNull ( anInterface .getInterfaces (), propertyName , propertyType );
583
+ }
584
+ }
585
+ return setter ;
586
+ }
587
+
565
588
private static Method setterOrNull (Class theClass , String propertyName , Class propertyType ) {
566
589
Method potentialSetter = null ;
567
590
0 commit comments