Index: src/java/org/apache/lucene/analysis/CharArraySet.java =================================================================== --- src/java/org/apache/lucene/analysis/CharArraySet.java (revision 826223) +++ src/java/org/apache/lucene/analysis/CharArraySet.java (working copy) @@ -33,7 +33,7 @@ * to a String first. */ -public class CharArraySet extends AbstractSet { +public class CharArraySet extends AbstractSet { private final static int INIT_SIZE = 8; private char[][] entries; private int count; @@ -49,8 +49,8 @@ entries = new char[size][]; } - /** Create set from a Collection of char[] or String */ - public CharArraySet(Collection c, boolean ignoreCase) { + /** Create set from a Collection of char[] or String */ + public CharArraySet(Collection c, boolean ignoreCase) { this(c.size(), ignoreCase); addAll(c); } @@ -223,7 +223,7 @@ public boolean contains(Object o) { if (o instanceof char[]) { - char[] text = (char[])o; + final char[] text = (char[])o; return contains(text, 0, text.length); } return contains(o.toString()); @@ -258,7 +258,7 @@ /** The Iterator for this set. Strings are constructed on the fly, so * use nextCharArray for more efficient access. */ - public class CharArraySetIterator implements Iterator { + public class CharArraySetIterator implements Iterator { int pos=-1; char[] next; CharArraySetIterator() { @@ -284,7 +284,7 @@ /** Returns the next String, as a Set would... * use nextCharArray() for better efficiency. */ - public Object next() { + public String next() { return new String(nextCharArray()); } @@ -293,10 +293,16 @@ } } - - public Iterator iterator() { + /** returns an iterator of new allocated Strings */ + public Iterator stringIterator() { return new CharArraySetIterator(); } + + /** returns an iterator of new allocated Strings, this method violates the Set interface */ + @SuppressWarnings("unchecked") + public Iterator iterator() { + return (Iterator) stringIterator(); + } /** * Efficient unmodifiable {@link CharArraySet}. This implementation does not @@ -316,7 +322,7 @@ throw new UnsupportedOperationException(); } - public boolean addAll(Collection coll) { + public boolean addAll(Collection coll) { throw new UnsupportedOperationException(); }