/*
* Copyright (c) 2014 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.db.joiner;
import java.net.URI;
import java.util.Iterator;
/**
* An Iterator<T> that iterates through the results from
* a database query term.
*
* @author watson
* @param <T>
*/
class JClassIterator<T> implements Iterator<T> {
private JClass jc;
private QueryEngine engine;
private Iterator<URI> uriIterator;
JClassIterator(JClass jc, QueryEngine engine) {
this.jc = jc;
this.engine = engine;
uriIterator = jc.getUris().iterator();
}
JClassIterator(JClass jc, QueryEngine engine, Iterator<URI> uriIterator) {
this.jc = jc;
this.engine = engine;
this.uriIterator = uriIterator;
}
@Override
public boolean hasNext() {
return uriIterator.hasNext();
}
@Override
public T next() {
URI uri = uriIterator.next();
return (T) jc.queryObject(engine, uri);
}
@Override
public void remove() {
throw new UnsupportedOperationException("remove not supported for JClassIterator");
}
}