: > There are a lot of containers which don't implement an interface which 
indicates this fact
: > (for pre-java-1.5 Lucene it could be Collection, for post-ajva-1.5 Lucene 
it could be more general Iterable)
: > 
: > Example:
: >  IndexSearcher: "int maxDoc()" and "doc(int i)"
: 
: This is not as simple as it sounds, I think. Like you said yourself, before
: Java 1.5, the "Iterable" interface did not exist. The Collection interface
: (of Java 1.4) is way too broad to be used in this context, because it has
: *writing* methods like add(), clear() - what are these supposed to do in the
: IndexReader class, for example? And what about the contains() method?
: remove()? toArray()? No, I would not like to see IndexReader (for example)
: implement Collection.
: 
: That being said, I would personally like to see Lucene move to Java 1.5

Just to clarify; even when we start using Java 1.5, it would make almost 
no sense what so ever for IndexSearcher to implement Interable.

just becuase there is a "thing" which may allow you to iterate over 
something, doesn't mean it should implement the Iterable interface.  A 
Reader essentially lets you iterate over characters, but it doesn't 
implement Iterable; an InputStream lets you iterate over bytes, but it 
isn't "Iterable"

You *could* iterate over every doc in an IndexSearcher -- but 
IndexSearcher doesn't have an iterator() method because it doesn't, for 
lack of less judgemental phrase "make any sense" ... it's not waht it's 
for, and it implies usage that it wasn't designed for.

There are better ways to use an IndexSearcher then by iterating over every 
doc, just as there are better ways to use a Reader then by poping a single 
character off at a time.

The Iterable interface describes it's utility quite well, and quite 
succinctly...

        Implementing this interface allows an object to be the target 
        of the "foreach" statement.

Suggesting that people might want to "foreach" over an IndexSearcher 
wouldn't help make the Lucene APIs any easier to understand.


-Hoss


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to