package rescuecore2.misc; import org.uncommons.maths.number.NumberGenerator; /** A NumberGenerator that rounds output from a downstream NumberGenerator. */ public class RoundingNumberGenerator implements NumberGenerator<Integer> { private NumberGenerator<? extends Number> downstream; /** Construct a RoundingNumberGenerator. @param downstream The downstream generator to round output from. */ public RoundingNumberGenerator(NumberGenerator<? extends Number> downstream) { this.downstream = downstream; } @Override public Integer nextValue() { Number n = downstream.nextValue(); return (int)Math.round(n.doubleValue()); } }