package org.sky.auto.data.testng.excel; import java.util.Iterator; import org.databene.benerator.Generator; import org.databene.benerator.wrapper.ProductWrapper; public class FeedIterator implements Iterator<Object[]> { private Generator<Object[]> generator; private ProductWrapper<Object[]> next; public FeedIterator(Generator<Object[]> generator) { this.generator = generator; this.next = new ProductWrapper<Object[]>(); fetchNext(); } // interface ------------------------------------------------------------------------------------------------------- public boolean hasNext() { return (next != null); } public Object[] next() { if (next == null) throw new IllegalStateException("No data available in next(). Call hasNext() to check."); Object[] result = next.unwrap(); fetchNext(); return result; } public void remove() { throw new UnsupportedOperationException("remove() is not supported"); } // helper method --------------------------------------------------------------------------------------------------- private void fetchNext() { this.next = generator.generate(next); } }