LUCENE-4519: remove generics wildcards from the return types of IndexDocument methods.

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1405639 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Adrien Grand 2012-11-04 21:08:59 +00:00
parent 463a478a11
commit 4c10042be4
7 changed files with 42 additions and 46 deletions

View File

@ -138,9 +138,8 @@ public final class Document implements IndexDocument {
*/
public final BytesRef[] getBinaryValues(String name) {
final List<BytesRef> result = new ArrayList<BytesRef>();
Iterator<Field> it = storedFieldsIterator();
while (it.hasNext()) {
for (Iterator<StorableField> it = storedFieldsIterator(); it.hasNext(); ) {
StorableField field = it.next();
if (field.name().equals(name)) {
final BytesRef bytes = field.binaryValue();
@ -163,9 +162,7 @@ public final class Document implements IndexDocument {
* @return a <code>BytesRef</code> containing the binary field value or <code>null</code>
*/
public final BytesRef getBinaryValue(String name) {
Iterator<Field> it = storedFieldsIterator();
while (it.hasNext()) {
for (Iterator<StorableField> it = storedFieldsIterator(); it.hasNext(); ) {
StorableField field = it.next();
if (field.name().equals(name)) {
final BytesRef bytes = field.binaryValue();
@ -235,9 +232,8 @@ public final class Document implements IndexDocument {
*/
public final String[] getValues(String name) {
List<String> result = new ArrayList<String>();
Iterator<Field> it = storedFieldsIterator();
while (it.hasNext()) {
for (Iterator<StorableField> it = storedFieldsIterator(); it.hasNext(); ) {
StorableField field = it.next();
if (field.name().equals(name) && field.stringValue() != null) {
result.add(field.stringValue());
@ -260,9 +256,7 @@ public final class Document implements IndexDocument {
* the actual numeric field instance back, use {@link #getField}.
*/
public final String get(String name) {
Iterator<Field> it = storedFieldsIterator();
while (it.hasNext()) {
for (Iterator<StorableField> it = storedFieldsIterator(); it.hasNext(); ) {
StorableField field = it.next();
if (field.name().equals(name) && field.stringValue() != null) {
return field.stringValue();
@ -288,29 +282,28 @@ public final class Document implements IndexDocument {
/** Obtains all indexed fields in document */
@Override
public Iterable<? extends IndexableField> indexableFields() {
return new Iterable<Field>() {
public Iterable<IndexableField> indexableFields() {
return new Iterable<IndexableField>() {
@Override
public Iterator<Field> iterator() {
public Iterator<IndexableField> iterator() {
return Document.this.indexedFieldsIterator();
}
};
}
/** Obtains all stored fields in document. */
@Override
public Iterable<? extends StorableField> storableFields() {
return new Iterable<Field>() {
public Iterable<StorableField> storableFields() {
return new Iterable<StorableField>() {
@Override
public Iterator<Field> iterator() {
public Iterator<StorableField> iterator() {
return Document.this.storedFieldsIterator();
}
};
}
private Iterator<Field> storedFieldsIterator() {
return new FilterIterator<Field>(fields.iterator()) {
private Iterator<StorableField> storedFieldsIterator() {
return new FilterIterator<StorableField, Field>(fields.iterator()) {
@Override
protected boolean predicateFunction(Field field) {
return field.type.stored() || field.type.docValueType() != null;
@ -318,8 +311,8 @@ public final class Document implements IndexDocument {
};
}
private Iterator<Field> indexedFieldsIterator() {
return new FilterIterator<Field>(fields.iterator()) {
private Iterator<IndexableField> indexedFieldsIterator() {
return new FilterIterator<IndexableField, Field>(fields.iterator()) {
@Override
protected boolean predicateFunction(Field field) {
return field.type.indexed();

View File

@ -24,8 +24,8 @@ package org.apache.lucene.index;
public interface IndexDocument {
/** Obtains all indexable fields in document */
public Iterable<? extends IndexableField> indexableFields();
public Iterable<IndexableField> indexableFields();
/** Obtains all storable fields in document */
public Iterable<? extends StorableField> storableFields();
public Iterable<StorableField> storableFields();
}

View File

@ -1,8 +1,5 @@
package org.apache.lucene.util;
import java.util.Iterator;
import java.util.NoSuchElementException;
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with this
@ -20,20 +17,26 @@ import java.util.NoSuchElementException;
* the License.
*/
import java.util.Iterator;
import java.util.NoSuchElementException;
/**
* An {@link Iterator} implementation that filters elements with a boolean predicate.
*
* @param <T> generic parameter for this iterator instance: this iterator implements {@link Iterator Iterator&lt;T&gt;}
* @param <InnerT> generic parameter of the wrapped iterator, must be <tt>T</tt> or extend <tt>T</tt>
* @see #predicateFunction
*/
public abstract class FilterIterator<T> implements Iterator<T> {
public abstract class FilterIterator<T, InnerT extends T> implements Iterator<T> {
private final Iterator<T> iterator;
private final Iterator<InnerT> iterator;
private T next = null;
private boolean nextIsSet = false;
/** returns true, if this element should be returned by {@link #next()}. */
protected abstract boolean predicateFunction(T object);
protected abstract boolean predicateFunction(InnerT object);
public FilterIterator(Iterator<T> baseIterator) {
public FilterIterator(Iterator<InnerT> baseIterator) {
this.iterator = baseIterator;
}
@ -60,7 +63,7 @@ public abstract class FilterIterator<T> implements Iterator<T> {
private boolean setNext() {
while (iterator.hasNext()) {
final T object = iterator.next();
final InnerT object = iterator.next();
if (predicateFunction(object)) {
next = object;
nextIsSet = true;

View File

@ -1568,7 +1568,7 @@ public class TestIndexWriterExceptions extends LuceneTestCase {
List<StorableField> storedList = new ArrayList<StorableField>();
@Override
public Iterable<? extends IndexableField> indexableFields() {
public Iterable<IndexableField> indexableFields() {
if (list.size() == 0) {
list.add(new IndexableField() {
@Override
@ -1596,7 +1596,7 @@ public class TestIndexWriterExceptions extends LuceneTestCase {
}
@Override
public Iterable<? extends StorableField> storableFields() {
public Iterable<StorableField> storableFields() {
return storedList;
}

View File

@ -185,7 +185,7 @@ public class TestIndexableField extends LuceneTestCase {
IndexDocument d = new IndexDocument() {
@Override
public Iterable<? extends IndexableField> indexableFields() {
public Iterable<IndexableField> indexableFields() {
return new Iterable<IndexableField>() {
@Override
public Iterator<IndexableField> iterator() {
@ -230,7 +230,7 @@ public class TestIndexableField extends LuceneTestCase {
}
@Override
public Iterable<? extends StorableField> storableFields() {
public Iterable<StorableField> storableFields() {
return new Iterable<StorableField>() {
@Override
public Iterator<StorableField> iterator() {

View File

@ -39,7 +39,7 @@ public class TestFilterIterator extends LuceneTestCase {
}
public void testEmpty() {
final Iterator<String> it = new FilterIterator<String>(set.iterator()) {
final Iterator<String> it = new FilterIterator<String, String>(set.iterator()) {
@Override
protected boolean predicateFunction(String s) {
return false;
@ -49,7 +49,7 @@ public class TestFilterIterator extends LuceneTestCase {
}
public void testA1() {
final Iterator<String> it = new FilterIterator<String>(set.iterator()) {
final Iterator<String> it = new FilterIterator<String, String>(set.iterator()) {
@Override
protected boolean predicateFunction(String s) {
return "a".equals(s);
@ -61,7 +61,7 @@ public class TestFilterIterator extends LuceneTestCase {
}
public void testA2() {
final Iterator<String> it = new FilterIterator<String>(set.iterator()) {
final Iterator<String> it = new FilterIterator<String, String>(set.iterator()) {
@Override
protected boolean predicateFunction(String s) {
return "a".equals(s);
@ -73,7 +73,7 @@ public class TestFilterIterator extends LuceneTestCase {
}
public void testB1() {
final Iterator<String> it = new FilterIterator<String>(set.iterator()) {
final Iterator<String> it = new FilterIterator<String, String>(set.iterator()) {
@Override
protected boolean predicateFunction(String s) {
return "b".equals(s);
@ -85,7 +85,7 @@ public class TestFilterIterator extends LuceneTestCase {
}
public void testB2() {
final Iterator<String> it = new FilterIterator<String>(set.iterator()) {
final Iterator<String> it = new FilterIterator<String, String>(set.iterator()) {
@Override
protected boolean predicateFunction(String s) {
return "b".equals(s);
@ -97,7 +97,7 @@ public class TestFilterIterator extends LuceneTestCase {
}
public void testAll1() {
final Iterator<String> it = new FilterIterator<String>(set.iterator()) {
final Iterator<String> it = new FilterIterator<String, String>(set.iterator()) {
@Override
protected boolean predicateFunction(String s) {
return true;
@ -113,7 +113,7 @@ public class TestFilterIterator extends LuceneTestCase {
}
public void testAll2() {
final Iterator<String> it = new FilterIterator<String>(set.iterator()) {
final Iterator<String> it = new FilterIterator<String, String>(set.iterator()) {
@Override
protected boolean predicateFunction(String s) {
return true;
@ -126,7 +126,7 @@ public class TestFilterIterator extends LuceneTestCase {
}
public void testUnmodifiable() {
final Iterator<String> it = new FilterIterator<String>(set.iterator()) {
final Iterator<String> it = new FilterIterator<String, String>(set.iterator()) {
@Override
protected boolean predicateFunction(String s) {
return true;

View File

@ -146,7 +146,7 @@ public final class FieldFilterAtomicReader extends FilterAtomicReader {
@Override
public Iterator<String> iterator() {
return new FilterIterator<String>(super.iterator()) {
return new FilterIterator<String, String>(super.iterator()) {
@Override
protected boolean predicateFunction(String field) {
return hasField(field);