package org.pentaho.reporting.libraries.formula.typing.sequence; import org.pentaho.reporting.libraries.formula.EvaluationException; import org.pentaho.reporting.libraries.formula.lvalues.LValue; import org.pentaho.reporting.libraries.formula.lvalues.StaticValue; import org.pentaho.reporting.libraries.formula.typing.Sequence; import java.util.Collection; public class RawArraySequence implements Sequence { private Object[] array; private int counter; public RawArraySequence( final Object[] array ) { this.array = array; this.counter = 0; } public RawArraySequence( final Collection array ) { this.array = array.toArray(); this.counter = 0; } public boolean hasNext() throws EvaluationException { return counter < array.length; } public Object next() throws EvaluationException { final Object retval = array[ counter ]; counter += 1; return retval; } public LValue nextRawValue() throws EvaluationException { final Object retval = array[ counter ]; counter += 1; return new StaticValue( retval ); } }