{@inheritDoc}
(int step, Closure closure)
| 518 | * {@inheritDoc} |
| 519 | */ |
| 520 | @Override |
| 521 | public void step(int step, Closure closure) { |
| 522 | if (step == 0) { |
| 523 | if (!getFrom().equals(getTo())) { |
| 524 | throw new GroovyRuntimeException("Infinite loop detected due to step size of 0"); |
| 525 | } |
| 526 | return; // from == to and step == 0, nothing to do, so return |
| 527 | } |
| 528 | |
| 529 | if (isReverse()) { |
| 530 | step = -step; |
| 531 | } |
| 532 | if (step > 0) { |
| 533 | int value = getFrom(); |
| 534 | while (value <= getTo()) { |
| 535 | closure.call(value); |
| 536 | if (((long) value + step) >= Integer.MAX_VALUE) { |
| 537 | break; |
| 538 | } |
| 539 | value = value + step; |
| 540 | } |
| 541 | } else { |
| 542 | int value = getTo(); |
| 543 | while (value >= getFrom()) { |
| 544 | closure.call(value); |
| 545 | if (((long) value + step) <= Integer.MIN_VALUE) { |
| 546 | break; |
| 547 | } |
| 548 | value = value + step; |
| 549 | } |
| 550 | } |
| 551 | } |
| 552 | |
| 553 | /** |
| 554 | * {@inheritDoc} |