package com.ldbc.driver.generator;
import java.util.Iterator;
public class MinMaxGenerator<GENERATE_TYPE extends Number> extends Generator<GENERATE_TYPE>
{
private GENERATE_TYPE min = null;
private GENERATE_TYPE max = null;
private final Iterator<GENERATE_TYPE> generator;
MinMaxGenerator( Iterator<GENERATE_TYPE> generator, GENERATE_TYPE initialMin, GENERATE_TYPE initialMax )
{
this.min = initialMin;
this.max = initialMax;
this.generator = generator;
}
@Override
protected GENERATE_TYPE doNext() throws GeneratorException
{
if ( false == generator.hasNext() ) return null;
GENERATE_TYPE next = generator.next();
min = ( next.doubleValue() < min.doubleValue() ) ? next : min;
max = ( next.doubleValue() > max.doubleValue() ) ? next : max;
return next;
}
public final GENERATE_TYPE getMin()
{
return min;
}
public final GENERATE_TYPE getMax()
{
return max;
}
@Override
public String toString()
{
return "MinMaxGeneratorWrapper [min=" + min + ", max=" + max + ", generator=" + generator + "]";
}
}