code: public boolean hasNext() {
  		if(cachedNext != null) {
  			return true;
  		}
  		if(aborted) {
  			return false;
  		}
  		while(cachedNext == null) {
  			if(!itr.hasNext()) {
  				aborted = true;
  				close();
  				return false;
  			}
  			T maybeNext = itr.next();
  			int ruling = filter.filterObject(maybeNext);
  			if(ruling == ObjectFilter.FILTER_ABORT) {
  				aborted = true;
  				close();
  				return false;
  			} else if(ruling == ObjectFilter.FILTER_INCLUDE) {
  				cachedNext = maybeNext;
  			}
  		}
  		return true;
  	}
docs: /* (non-Javadoc)
  @see java.util.Iterator#hasNext()