1 16 package com.google.gwt.junit.client; 17 18 import java.util.Iterator ; 19 20 26 public class IntRange implements Range { 27 28 32 private static class IntRangeIterator extends RangeIterator { 33 34 int end; 35 36 Operator operator; 37 38 int start; 39 40 int step; 41 42 int value; 43 44 IntRangeIterator(IntRange r) { 45 this.value = this.start = r.start; 46 this.end = r.end; 47 this.operator = r.operator; 48 if (operator == null) { 49 throw new IllegalArgumentException ("operator must be \"*\" or \"+\""); 50 } 51 this.step = r.step; 52 } 53 54 public boolean hasNext() { 55 return value <= end; 56 } 57 58 public Object next() { 59 int currentValue = value; 60 value = step(); 61 return new Integer (currentValue); 62 } 63 64 public int step() { 65 if (operator == Operator.MULTIPLY) { 66 return value * step; 67 } else { 68 return value + step; 69 } 70 } 71 } 72 73 int end; 74 75 Operator operator; 76 77 int start; 78 79 int step; 80 81 92 public IntRange(int start, int end, Operator operator, int step) { 93 this.start = start; 94 this.end = end; 95 this.operator = operator; 96 this.step = step; 97 if (step <= 0) { 98 throw new IllegalArgumentException ("step must be > 0"); 99 } 100 } 101 102 public Iterator iterator() { 103 return new IntRangeIterator(this); 104 } 105 } 106 | Popular Tags |