From ed32646f527bb3a69fe6b1591d47b78a30b9fe8f Mon Sep 17 00:00:00 2001 From: sharwell Date: Thu, 17 Nov 2011 16:00:40 -0800 Subject: [PATCH] v4: Simple use of generics to clean up local impl code Specify @Override [git-p4: depot-paths = "//depot/code/antlr4/main/": change = 9332] --- .../antlr/v4/runtime/misc/IntervalSet.java | 66 +++++++++++-------- 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/runtime/Java/src/org/antlr/v4/runtime/misc/IntervalSet.java b/runtime/Java/src/org/antlr/v4/runtime/misc/IntervalSet.java index 33c8d2d51..6df10297e 100644 --- a/runtime/Java/src/org/antlr/v4/runtime/misc/IntervalSet.java +++ b/runtime/Java/src/org/antlr/v4/runtime/misc/IntervalSet.java @@ -88,6 +88,7 @@ public class IntervalSet implements IntSet { /** Add a single element to the set. An isolated element is stored * as a range el..el. */ + @Override public void add(int el) { add(el,el); } @@ -111,8 +112,8 @@ public class IntervalSet implements IntSet { } // find position in list // Use iterators as we modify list in place - for (ListIterator iter = intervals.listIterator(); iter.hasNext();) { - Interval r = (Interval) iter.next(); + for (ListIterator iter = intervals.listIterator(); iter.hasNext();) { + Interval r = iter.next(); if ( addition.equals(r) ) { return; } @@ -123,7 +124,7 @@ public class IntervalSet implements IntSet { // make sure we didn't just create an interval that // should be merged with next interval in list if ( iter.hasNext() ) { - Interval next = (Interval) iter.next(); + Interval next = iter.next(); if ( bigger.adjacent(next)||!bigger.disjoint(next) ) { // if we bump up against or overlap next, merge iter.remove(); // remove this one @@ -153,6 +154,7 @@ public class IntervalSet implements IntSet { return r; } + @Override public IntervalSet addAll(IntSet set) { if ( set==null ) { return this; @@ -166,7 +168,7 @@ public class IntervalSet implements IntSet { // walk set and add each interval int n = other.intervals.size(); for (int i = 0; i < n; i++) { - Interval I = (Interval) other.intervals.get(i); + Interval I = other.intervals.get(i); this.add(I.a,I.b); } return this; @@ -182,6 +184,7 @@ public class IntervalSet implements IntSet { * * 'this' is assumed to be either a subset or equal to vocabulary. */ + @Override public IntervalSet complement(IntSet vocabulary) { if ( vocabulary==null ) { return null; // nothing in common with null set @@ -198,25 +201,25 @@ public class IntervalSet implements IntSet { if ( n ==0 ) { return compl; } - Interval first = (Interval)intervals.get(0); + Interval first = intervals.get(0); // add a range from 0 to first.a constrained to vocab if ( first.a > 0 ) { IntervalSet s = IntervalSet.of(0, first.a-1); - IntervalSet a = (IntervalSet)s.and(vocabularyIS); + IntervalSet a = s.and(vocabularyIS); compl.addAll(a); } for (int i=1; i myIntervals = this.intervals; + List theirIntervals = ((IntervalSet)other).intervals; IntervalSet intersection = null; int mySize = myIntervals.size(); int theirSize = theirIntervals.size(); @@ -263,8 +269,8 @@ public class IntervalSet implements IntSet { int j = 0; // iterate down both interval lists looking for nondisjoint intervals while ( i iter = this.intervals.iterator(); while (iter.hasNext()) { - Interval I = (Interval) iter.next(); + Interval I = iter.next(); int a = I.a; int b = I.b; if ( a==b ) { @@ -456,9 +465,9 @@ public class IntervalSet implements IntSet { if ( this.size()>1 ) { buf.append("{"); } - Iterator iter = this.intervals.iterator(); + Iterator iter = this.intervals.iterator(); while (iter.hasNext()) { - Interval I = (Interval) iter.next(); + Interval I = iter.next(); int a = I.a; int b = I.b; if ( a==b ) { @@ -481,6 +490,7 @@ public class IntervalSet implements IntSet { return buf.toString(); } + @Override public int size() { int n = 0; int numIntervals = intervals.size(); @@ -489,17 +499,18 @@ public class IntervalSet implements IntSet { return firstInterval.b-firstInterval.a+1; } for (int i = 0; i < numIntervals; i++) { - Interval I = (Interval) intervals.get(i); + Interval I = intervals.get(i); n += (I.b-I.a+1); } return n; } + @Override public List toList() { List values = new ArrayList(); int n = intervals.size(); for (int i = 0; i < n; i++) { - Interval I = (Interval) intervals.get(i); + Interval I = intervals.get(i); int a = I.a; int b = I.b; for (int v=a; v<=b; v++) { @@ -517,7 +528,7 @@ public class IntervalSet implements IntSet { int n = intervals.size(); int index = 0; for (int j = 0; j < n; j++) { - Interval I = (Interval) intervals.get(j); + Interval I = intervals.get(j); int a = I.a; int b = I.b; for (int v=a; v<=b; v++) { @@ -535,7 +546,7 @@ public class IntervalSet implements IntSet { int n = intervals.size(); int j = 0; for (int i = 0; i < n; i++) { - Interval I = (Interval) intervals.get(i); + Interval I = intervals.get(i); int a = I.a; int b = I.b; for (int v=a; v<=b; v++) { @@ -546,6 +557,7 @@ public class IntervalSet implements IntSet { return values; } + @Override public void remove(int el) { throw new NoSuchMethodError("IntervalSet.remove() unimplemented"); }