[ https://issues.apache.org/jira/browse/LUCENE-2109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12786145#action_12786145 ]
Paul Elschot commented on LUCENE-2109: -------------------------------------- Vielen Dank für diese Gründlichkeit. > Make DocsEnum subclass of DocIdSetIterator > ------------------------------------------ > > Key: LUCENE-2109 > URL: https://issues.apache.org/jira/browse/LUCENE-2109 > Project: Lucene - Java > Issue Type: Improvement > Components: Index > Affects Versions: Flex Branch > Reporter: Uwe Schindler > Assignee: Uwe Schindler > Fix For: Flex Branch > > Attachments: LUCENE-2109.patch, LUCENE-2109.patch, LUCENE-2109.patch, > LUCENE-2109.patch > > > Spinoff from LUCENE-1458: > One thing I came along long time ago, but now with a new API it get's > interesting again: > DocsEnum should extend DocIdSetIterator, that would make it simplier to use > and implement e.g. in MatchAllDocQuery.Scorer, FieldCacheRangeFilter and so > on. You could e.g. write a filter for all documents that simply returns the > docs enumeration from IndexReader. > So it should be an abstract class that extends DocIdSetIterator. It has the > same methods, only some methods must be a little bit renamed. The problem is, > because java does not support multiple inheritace, we cannot also extends > attributesource Would DocIdSetIterator be an interface it would work (this > is one of the cases where interfaces for really simple patterns can be used, > like iterators). > The problem with multiple inheritance could be solved by an additional method > attributes() that creates a new AttributeSource on first access then (because > constructing an AttributeSource is costly). The same applies for the other > *Enums, it should be separated for lazy init. > DocsEnum could look like this: > {code} > public abstract class DocsEnum extends DocIdSetIterator { > private AttributeSource atts = null; > public int freq() > public DontKnowClassName positions() > public final AttributeSource attributes() { > if (atts==null) atts=new AttributeSource(); > return atts; > } > ...default impl of the bulk access using the abstract methods from > DocIdSetIterator > } > {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org