uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marshall Schor <...@schor.com>
Subject Re: AnnotationIndex generification
Date Fri, 07 Aug 2009 17:05:12 GMT


Jörn Kottmann wrote:
> Marshall Schor wrote:
>> 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
>> FSIndex<T>
>> 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?
>>   
> In my opinion it must be
>
> public interface AnnotationIndex <T extends AnnotationFS> extends
> FSIndex<T>

Yes, +1  -Marshall
>
> because the AnnotationIndex interface promises to only contain
> uima.tcas.Annotations and if T extends AnnotationBaseFS it could
> be somthing else, right ?
>
> Jörn
>
>  
>
>
>

Mime
View raw message