public TYPE_1 < TYPE_2 > iterator ( ) { final java.util.Iterator < TYPE_2 > VAR_1 = source . iterator ( ) ; TYPE_2 VAR_2 = null ; while ( ( VAR_1 . METHOD_1 ( ) ) && ( VAR_3 . METHOD_2 ( ( VAR_2 = VAR_1 . METHOD_3 ( ) ) ) ) ) { VAR_2 = null ; } if ( VAR_2 == null ) return TYPE_3 . METHOD_4 ( VAR_1 ) ; return new TYPE_4 < TYPE_2 > ( VAR_2 , VAR_1 ) ; }

public TYPE_1 < TYPE_2 > iterator ( ) { if ( ( VAR_1 ) == null ) { VAR_1 = source . iterator ( ) ; TYPE_2 VAR_2 = null ; while ( ( VAR_1 . METHOD_1 ( ) ) && ( VAR_3 . METHOD_2 ( ( VAR_2 = VAR_1 . METHOD_3 ( ) ) ) ) ) { VAR_2 = null ; } if ( VAR_2 == null ) VAR_1 = TYPE_3 . METHOD_4 ( VAR_1 ) ; else VAR_1 = new TYPE_4 < TYPE_2 > ( VAR_2 , VAR_1 ) ; } return VAR_1 ; }
