class FilteringIterator extends UnmodifiableIterator<O> {

    @Override
    public O next() {
        if(!hasNext()) {
            throw new NoSuchElementException();
        }
        O objectToReturn = nextObject;
        nextObject = null;
        nextObjectIsNull = false;
        return objectToReturn;
    }

    public  FilteringIterator(Iterator<O> wrappedIterator, QueryOptions queryOptions);

}