public static < TYPE_1 extends TYPE_2 > TYPE_1 METHOD_1 ( TYPE_3 VAR_1 , java.lang.Class < TYPE_1 > VAR_2 ) { TYPE_2 VAR_3 = VAR_1 . METHOD_2 ( ) ; while ( VAR_3 != null ) { if ( VAR_2 . METHOD_3 ( VAR_3 ) ) { return ( ( TYPE_1 ) ( VAR_3 ) ) ; } if ( VAR_3 instanceof TYPE_3 ) { VAR_3 = ( ( TYPE_3 ) ( VAR_3 ) ) . METHOD_2 ( ) ; } } return null ; }

public static < TYPE_1 extends TYPE_2 > TYPE_1 METHOD_1 ( TYPE_3 VAR_1 , java.lang.Class < TYPE_1 > VAR_2 ) { TYPE_2 VAR_3 = VAR_1 . METHOD_2 ( ) ; while ( VAR_3 != null ) { if ( VAR_2 . METHOD_3 ( VAR_3 ) ) { return ( ( TYPE_1 ) ( VAR_3 ) ) ; } if ( VAR_3 instanceof TYPE_3 ) { VAR_3 = ( ( TYPE_3 ) ( VAR_3 ) ) . METHOD_2 ( ) ; } else { return null ; } } return null ; }
