@Override protected Value evaluateValidSelf(final ProcessingContext context, final Value[] childValues, final int depth) { final Random randomGenerator = context.getRandomGenerator(); final int min = getMin().evaluateNotNull(this, context, "Computed value of min was NULL. Replacing with 0", 0); final int max = getMax().evaluateNotNull(this, context, "Computed value of max was NULL. Replacing with min+1", min+1); final int step = getStep().evaluateNotNull(this, context, "Computed value of step was NULL. Replacing with 1", 1); /* Validate computed numbers */ if (step < 1) { return NullValue.INSTANCE; } if (max < min) { return NullValue.INSTANCE; } final int randomNumber = randomGenerator.nextInt((max - min) / step + 1); final int randomInteger = min + randomNumber * step; return new IntegerValue(randomInteger); } }
final int min = getMin().evaluateNotNull(this, context, "Computed value of minimum was NULL. Replacing with 0", 0); final int max = getMax().evaluateNotNull(this, context, "Computed value of maximum was NULL. Replacing with 0", 0);