You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jp...@apache.org on 2012/11/04 22:09:00 UTC

svn commit: r1405639 - in /lucene/dev/trunk/lucene: core/src/java/org/apache/lucene/document/ core/src/java/org/apache/lucene/index/ core/src/java/org/apache/lucene/util/ core/src/test/org/apache/lucene/index/ core/src/test/org/apache/lucene/util/ test...

Author: jpountz
Date: Sun Nov  4 21:08:59 2012
New Revision: 1405639

URL: http://svn.apache.org/viewvc?rev=1405639&view=rev
Log:
LUCENE-4519: remove generics wildcards from the return types of IndexDocument methods.

Modified:
    lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/document/Document.java
    lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexDocument.java
    lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/FilterIterator.java
    lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
    lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java
    lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestFilterIterator.java
    lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/FieldFilterAtomicReader.java

Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/document/Document.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/document/Document.java?rev=1405639&r1=1405638&r2=1405639&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/document/Document.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/document/Document.java Sun Nov  4 21:08:59 2012
@@ -138,9 +138,8 @@ public final class Document implements I
   */
   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 I
   * @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 I
    */
   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 I
    * 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 I
 
   /** 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 I
     };
   }
   
-  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();

Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexDocument.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexDocument.java?rev=1405639&r1=1405638&r2=1405639&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexDocument.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexDocument.java Sun Nov  4 21:08:59 2012
@@ -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();
 }

Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/FilterIterator.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/FilterIterator.java?rev=1405639&r1=1405638&r2=1405639&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/FilterIterator.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/FilterIterator.java Sun Nov  4 21:08:59 2012
@@ -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> 
   
   private boolean setNext() {
     while (iterator.hasNext()) {
-      final T object = iterator.next();
+      final InnerT object = iterator.next();
       if (predicateFunction(object)) {
         next = object;
         nextIsSet = true;

Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java?rev=1405639&r1=1405638&r2=1405639&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java Sun Nov  4 21:08:59 2012
@@ -1568,7 +1568,7 @@ public class TestIndexWriterExceptions e
         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 e
         }
 
         @Override
-        public Iterable<? extends StorableField> storableFields() {
+        public Iterable<StorableField> storableFields() {
           return storedList;
         }
         

Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java?rev=1405639&r1=1405638&r2=1405639&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java Sun Nov  4 21:08:59 2012
@@ -185,7 +185,7 @@ public class TestIndexableField extends 
 
       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 
         }
 
         @Override
-        public Iterable<? extends StorableField> storableFields() {
+        public Iterable<StorableField> storableFields() {
           return new Iterable<StorableField>() {
             @Override
             public Iterator<StorableField> iterator() {

Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestFilterIterator.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestFilterIterator.java?rev=1405639&r1=1405638&r2=1405639&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestFilterIterator.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/util/TestFilterIterator.java Sun Nov  4 21:08:59 2012
@@ -39,7 +39,7 @@ public class TestFilterIterator extends 
   }
 
   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 
   }
     
   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 
   }
     
   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 
   }
     
   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 
   }
     
   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 
   }
     
   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 
   }
     
   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 
   }
 
   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;

Modified: lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/FieldFilterAtomicReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/FieldFilterAtomicReader.java?rev=1405639&r1=1405638&r2=1405639&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/FieldFilterAtomicReader.java (original)
+++ lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/FieldFilterAtomicReader.java Sun Nov  4 21:08:59 2012
@@ -146,7 +146,7 @@ public final class FieldFilterAtomicRead
 
     @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);