package com.ldbc.driver.validation; import com.ldbc.driver.Operation; import com.ldbc.driver.SerializingMarshallingException; import com.ldbc.driver.Workload; import com.ldbc.driver.generator.GeneratorException; import java.util.Iterator; import static java.lang.String.format; public class ValidationParamsFromCsvRows implements Iterator<ValidationParam> { private final Iterator<String[]> csvRows; private final Workload workload; public ValidationParamsFromCsvRows( Iterator<String[]> csvRows, Workload workload ) { this.csvRows = csvRows; this.workload = workload; } @Override public boolean hasNext() { return csvRows.hasNext(); } @Override public ValidationParam next() { String[] csvRow = csvRows.next(); String serializedOperation = csvRow[0]; String serializedOperationResult = csvRow[1]; Operation operation; try { operation = workload.marshalOperation( serializedOperation ); } catch ( SerializingMarshallingException e ) { throw new GeneratorException( format( "Error marshalling operation\n%s", serializedOperation ), e ); } Object operationResult; try { operationResult = operation.marshalResult( serializedOperationResult ); } catch ( SerializingMarshallingException e ) { throw new GeneratorException( format( "Error marshalling operation result\n%s", serializedOperationResult ), e ); } return ValidationParam.createUntyped( operation, operationResult ); } @Override public void remove() { throw new UnsupportedOperationException( "remove() not supported by " + getClass().getName() ); } }