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);
	}
}