ValueObjectIterator.java

package com.surrealdb;

import java.util.Iterator;

class ValueObjectIterator<T> implements Iterator<T> {

    private final ValueClassConverter<T> converter;
    private final Iterator<Value> iterator;

    ValueObjectIterator(Class<T> clazz, Iterator<Value> iterator) {
        this.converter = new ValueClassConverter<>(clazz);
        this.iterator = iterator;
    }


    @Override
    final public boolean hasNext() {
        return iterator.hasNext();
    }

    @Override
    final public T next() {
        final Value value = iterator.next();
        return converter.convert(value);
    }
}