@Override
    public boolean hasNext() {
        if (pointFeature != null) {
            return true;  // pointFeature hasn't yet been consumed.
        }
        
        pointFeature = nextFilteredDataPoint();
        if (pointFeature == null) {
            close();
            return false;
        } else {
            return true;
        }
    }
@Override
    public boolean hasNext() {
        if (pointFeature != null) {
            return true;  
        }
        
        pointFeature = nextFilteredDataPoint();
        if (pointFeature == null) {
            close();
            return false;
        } else {
            return true;
        }
    }
@ Override public boolean hasNext ( ) { if ( pointFeature != null ) { return true ; // pointFeature hasn't yet been consumed. } pointFeature = nextFilteredDataPoint ( ) ; if ( pointFeature == null ) { close ( ) ; return false ; } else { return true ; } }
PointFeatureIterator.hasNext() doesn't guarantee idempotency, but we do.
PointFeatureIterator . hasNext () doesn t guarantee idempotency but we do .