[ https://issues.apache.org/jira/browse/UIMA-6153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16981895#comment-16981895 ]
Marshall Schor commented on UIMA-6153: -------------------------------------- one idea that might work, but seems messy, is to duplicate both the SelectFSs and SelectFSs_impl into SelectFSsAnnot and SelectFSsAnnot_impl, the only difference being the top bound of the generic parameter. Then, whenever a method in SelectFSs implies a restriction to Annotations (e.g. "covering", or "at", etc.), have it create a copy of the SelectFSs_impl -> a new instance of SelectFSsAnnot_impl, and return that. So that from then on, all the methods will be against the SelectFSsAnnot interface/class. This would be slightly inefficient (making an extra object, whenever an Annotation restriction happened). Do people think it would be worth it? Is there a better way? > select.covering should bind to AnnotationFS > ------------------------------------------- > > Key: UIMA-6153 > URL: https://issues.apache.org/jira/browse/UIMA-6153 > Project: UIMA > Issue Type: Improvement > Components: UIMA > Affects Versions: 3.1.1SDK > Reporter: Richard Eckart de Castilho > Priority: Major > > The following code does not compile because select.covering() uses TOP > instead of AnnotationFS as the generic type. Consequently, getBegin() and > getEnd() are not available on the "s" used in the filter expressions. But > since covering() only makes sense for annotations, binding the generic type > to TOP doesn't seem to make much sense: > {{return aCas.select(getType(aCas, Sentence.class)).covering(aBegin1, > aBegin1)}} > {{ .filter(s -> s.getBegin() <= aBegin1 && aBegin1 < s.getEnd())}} > {{ .filter(s -> s.getBegin() <= aBegin2 && aBegin2 < > s.getEnd()).findFirst()}} > {{ .isPresent();}} -- This message was sent by Atlassian Jira (v8.3.4#803005)