private R doIteration ( Iterator < ? extends T > it ) { // save the iterator into member variable state . i = it ; state . iterations = 0 ; if ( state . do_break == true ) return state . return_object ; // do the iteration calling nextobject on each while ( state . i . hasNext ( ) ) { T o = state . i . next ( ) ; if ( delegate != null ) delegate . delegate ( o ) ; else iterateObject ( o ) ; if ( state . do_break == true ) return state . return_object ; } return state . amended_object ; }
do the actual iteration