uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marshall Schor <...@schor.com>
Subject AnnotationIndex generification
Date Fri, 07 Aug 2009 14:10:06 GMT
A user had written this:

  public static <T extends Annotation> Iterator<T> annotationsIterator(
      JCas aJCas, int type) {
    return aJCas.getAnnotationIndex(type).iterator();  // fails, cannot
convert from FSIterator<AnnotationFS> to Iterator<T>

This compile-time error can be eliminated by changing the generification
of AnnotationIndex as follows:

Currently AnnotationIndex is defined:
  public interface AnnotationIndex extends FSIndex<AnnotationFS>

If the definition is changed to:
  public interface AnnotationIndex <T extends AnnotationBaseFS> extends
then the user's code above no longer gives a compile-time error.  (It
does give a warning though - an unchecked conversion is needed).

This change makes AnnotationIndex, itself, a generic type, with a type
parameter indicating the type the index is over.

Is this a correct improvement?


View raw message