code: public boolean hasNext() {
  		if(cachedNext != null) return true;
  		while(itr.hasNext()) {
  			S o = itr.next();
  			T adapted = adapter.adapt(o);
  			if(adapted != null) {
  				cachedNext = adapted;
  				return true;
  			}
  		}
  		return false;
  	}
docs: /* (non-Javadoc)
  @see java.util.Iterator#hasNext()