/*
* Copyright (c) 2013 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.db.client.impl;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* Persist Data object Query iterator
*/
abstract class BulkDataObjIterator<T1, T2> implements Iterator<T2> {
private static final int DEFAULT_BATCH_SIZE = 100;
protected Iterator<T1> _resourceIt;
protected List<T1> nextBatch = new ArrayList<T1>(DEFAULT_BATCH_SIZE);
public BulkDataObjIterator(Iterator<T1> resources) {
_resourceIt = resources;
}
protected abstract void run();
protected List<T1> getNextBatch() {
nextBatch.clear();
for (int i = 0; (i < DEFAULT_BATCH_SIZE) && (_resourceIt.hasNext()); i++) {
nextBatch.add(_resourceIt.next());
}
return nextBatch;
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
}