Marshall Schor wrote: > > Thilo Goetz wrote: [...] >> I take that back. find() works anyway. The question with >> moveTo(fs) is simply what the behavior should be in case >> fs is not in the index. If it is in the index, the cursor >> will be positioned there, even for bag indexes. If it's >> not there, the cursor will currently be positioned at an >> arbitrary point. This is a left-over from the days when >> bag indexes were also sorted and simply a bug, to my mind. >> My intuition is that moveTo(fs) should make the iterator >> invalid if fs is not in the index. >> > > +1 for having the iterator "invalid" if the fs is not in the index. >> NB that the notion of equality here is FS identity. Not >> sure this is clear from the documentation. >> > > I'm not sure what FS identity means. I thought that (for Set indexes) > the comparison for equality was index-dependent, and used whatever keys > were declared in the index. Do you mean that the FS "address" in the > heap must be the same (by FS identity), and does this test apply just > for Bag indexes?
Yes, and yes. I use equality for the equivalence relation induced by the ordering relation on the index, and identity when I mean "same address". Even more confusingly, identity is what FeatureStructure.equals() tests for :-). Since bag indexes have no ordering relation, the only useful notion of equality is identity, in the sense above. > > -Marshall >> --Thilo >> >> >> >>