protected final < TYPE_1 extends TYPE_2 > TYPE_1 METHOD_1 ( java.lang.Class < TYPE_1 > VAR_1 ) { if ( VAR_1 == ( getClass ( ) ) ) throw new TYPE_3 ( ( ( STRING_1 + ( VAR_1 . getName ( ) ) ) + STRING_2 ) ) ; for ( TYPE_2 c = this ; c != null ; c = VAR_2 ) { if ( VAR_1 . METHOD_2 ( c ) ) return VAR_1 . METHOD_3 ( c ) ; } return null ; }

protected final < TYPE_1 extends TYPE_2 > TYPE_1 METHOD_1 ( java.lang.Class < TYPE_1 > VAR_1 ) { for ( TYPE_2 c = this ; c != null ; c = VAR_2 ) { if ( VAR_1 . METHOD_2 ( c ) ) return VAR_1 . METHOD_3 ( c ) ; } return null ; }
