You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@uima.apache.org by "Marshall Schor (JIRA)" <de...@uima.apache.org> on 2015/03/22 23:58:11 UTC

[jira] [Commented] (UIMA-4299) improve generics for UIMA indexes and iterators

    [ https://issues.apache.org/jira/browse/UIMA-4299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14375209#comment-14375209 ] 

Marshall Schor commented on UIMA-4299:
--------------------------------------

The AnnotationIndex has a method, tree, which returns a tree of annotations.  If the AnnotationIndex is type restricted, then there's a design choice.  The design is such that all the children will come from the AnnotationIndex<T> where T is a subtype of Annotation.  However, the current design allows the "top most" Annotation at the root of the tree to be of any type that's a subtype of Annotation. 

In doing the generics, this shows up as having the argument for the top level annotation be of type <T> (the type of the restricted index) or of type AnnotationFS - which is the supertype of all Annotations.

This also affects the type of the returned tree - it either contains just things of T or its subtypes, or it contains that for all elements except the root, which could be of any AnnotationFS type or subtype.

I guess in the interest of backwards compatibility, I thinking of this approach:  allow AnnotationFS for the argument, and define the resulting tree to be of type AnnotationTree<T> where the T represents the type that subsumes all of the items in the tree **except** the root.



> improve generics for UIMA indexes and iterators
> -----------------------------------------------
>
>                 Key: UIMA-4299
>                 URL: https://issues.apache.org/jira/browse/UIMA-4299
>             Project: UIMA
>          Issue Type: Improvement
>          Components: Core Java Framework
>    Affects Versions: 2.7.0SDK
>            Reporter: Marshall Schor
>            Priority: Minor
>             Fix For: 2.7.1SDK
>
>
> When the JCas is being used, there are Java classes for UIMA types.  
> Each index definition is associated with a top-most type in the type hierarchy.
> Indexes are used to create iterators of various kinds; some of these iterators are defined within classes which implement Iterable.  
> Add generic mechanisms to the Indexes and iterators to support Iterables whose elements are JCas types. 
> Update the APIs that get indexes over particular types to allow specifying those types by the type class, and use this for generic typing, so casts are not necessary for user code.
> Make the generics work also when JCas is not in use.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)