commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Carlson <joncrl...@yahoo.com>
Subject Re: [collections] LoopingIterator
Date Thu, 21 Nov 2002 19:58:51 GMT
This was my take on it:

Since it uses the iterator provided by the collection, I
felt it would be wasteful to try to provide any greater
protection than that already provided by the collection's
own iterator (other than the stated benefit of allowing one
to continually loop over the collection).

That seems so reasonable to me that I'm almost afraid I
might be missing your point.  If I am, please let me know.

Also, I can put the proper license text on it, but I didn't
do it originally because I thought it would most likely be
an inner class of IteratorUtils or CollectionUtils.

Let me know what you want me to do.

Thanks!

Jonathan



--- Jeff Varszegi <jvarszegi@yahoo.com> wrote:
> I don't see how to implement this without being horribly
> wasteful (checking every value in the
> collection backing the Iterator every time something is
> returned, getting a new Iterator every
> time through the loop, etc.).  The thing is, you can't
> even depend on the implementation of
> hashCode() when you're dealing with generic collections,
> the use of which would be wasteful
> anyway.  Jonathan, did you find a solution to this
> problem?
> 
> I was going to implement a RandomIterator, but didn't
> figure a way around the concurrent-mod
> problem for an externally created Iterator.  I think for
> situations like this it's acceptable to
> just notify users of the class that there are no
> guarantees in the face of concurrent
> modification.  It's a shame that Sun didn't include a
> mod-check hook in the Collection interface,
> or even the chance to use Observer, at least as
> optionally supported.  I mean, I can understand
> the absence of observers, because checking for them would
> slow things down a little bit, but every
> single collection I've seen that came outta Sun keeps an
> incremental count of changes to itself.
> 
> Jeff
> 
> --- Stephen Colebourne <scolebourne@btopenworld.com>
> wrote:
> > Jonathan,
> > I was going to include your files in the CVS. However,
> I discovered that
> > they do not cope with the situation where the
> collection being wrapped is
> > altered. ie. hasNext() always returns the initially
> cached value, even if
> > the list is clear()ed or it.remove() is called. Can you
> sort this?
> > 
> > Also, if resubmitting could you place the code in the
> correct package and
> > with an Apache licence (from another collections file)
> to confirm that this
> > is an official donation of code :-)
> > 
> > Thanks
> > Stephen
> > 
> > ----- Original Message -----
> > From: "Jonathan Carlson" <joncrlsn2@yahoo.com>
> > > It is attached with updated unit tests.  It was so
> easy
> > > that I'm surprised I didn't implement the remove() in
> the
> > > first place.
> > >
> > > Thanks!
> > >
> > > Jonathan Carlson
> > > Minneapolis, Minnesota
> > >
> > >
> > > --- Stephen Colebourne <scolebourne@btopenworld.com>
> wrote:
> > > > From: "Jonathan Carlson" <joncrlsn2@yahoo.com>
> > > > > I can add a remove method and test cases unless
> it's
> > > > easier
> > > > > for you to just add it.  I think it would just
> use the
> > > > > remove method on the Collection.  If the iterator
> > > > returned
> > > > > by the Collection implementer doesn't support it
> then
> > > > this
> > > > > won't either.
> > > >
> > > > If you could submit the revised code and test case,
> I
> > > > think that I'm willing
> > > > to commit it to collections.
> > > >
> > > > Stephen
> > > >
> > > >
> > > > > As for a use-case, I am using it for a displaying
> a
> > > > number
> > > > > of our banner ads on our e-commerce site.  The
> > > > round-robin
> > > > > task dispatcher mentioned earlier is another one.
> > > > >
> > > > > Jonathan Carlson
> > > > >
> > > > >
> > > > >
> > > > > --- Stephen Colebourne <scolebourne@joda.org>
> wrote:
> > > > > > [Jonathan, I have sent back to commons-dev
> mailing
> > > > list
> > > > > > which is the
> > > > > > appropriate place for design/code discussions.]
> > > > > >
> > > > > > I took a quick look, and I believe that the
> code in
> > > > the
> > > > > > zip will work.
> > > > > > However, my main concern is why this would be
> needed.
> > > > Is
> > > > > > there a use case
> > > > > > for an iterator that never ends?
> > > > > >
> > > > > > I would also like to see the remove method
> > > > implemented.
> > > > > > It should be
> > > > > > possible.
> > > > > >
> > > > > > Stephen
> > > > > >
> > > > > > ----- Original Message -----
> > > > > > From: "Jonathan Carlson" <joncrlsn2@yahoo.com>
> > > > > > To: <scolebourne@joda.org>
> > > > > > Sent: Friday, October 18, 2002 3:53 PM
> > > > > > Subject: LoopingIterator
> > > > > >
> > > > > >
> > > > > > > Hi Stephen,
> > > > > > >
> > > > > > > Thanks for your work on the IteratorUtils.  I
> > > > thought
> > > > > > this
> > > > > > > might be a good addition if it hasn't been
> added
> > > > > > already.
> > > > > > > It's an iterator that loops continually.
> > > > > > Unfortunately, it
> > > > > > > can't just decorate another iterator but has
> to
> > > > wrap a
> > > > > > > collection due to the fact that iterators
> cannot be
> > > > > > reset
> > > > > > > to the beginning of the collection.
> > > > > > >
> > > > > > > Included is a jUnit test case that shows it
> works
> > > > "as
> > > > > > > advertised".  Hope this helps.
> > > > > > >
> > > > > > > Jonathan Carlson
> > > > > > > Minneapolis, Minnesota
> > > > > > >
> > > > > > >
> > > > > > > =====
> > > > > > > Jonathan Carlson
> > > > > > > joncrlsn@users.sf.net
> > > > > > > Minneapolis, Minnesota
> > > > > > >
> > > > > > >
> __________________________________________________
> > > > > > > Do you Yahoo!?
> > > > > > > Faith Hill - Exclusive Performances, Videos &
> More
> > > > > > > http://faith.yahoo.com
> > > > > >
> > > > >
> > > > > > ATTACHMENT part 2 application/x-zip-compressed
> > > > > name=LoopingIterator.zip
> > > > >
> > > > >
> > > > >
> > > > > =====
> > > > > Jonathan Carlson
> > > > > joncrlsn@users.sf.net
> > > > > Minneapolis, Minnesota
> > > > >
> > > > >
> __________________________________________________
> > > > > Do you Yahoo!?
> > > > > HotJobs - Search new jobs daily now
> > > > > http://hotjobs.yahoo.com/
> > > > >
> > > > > --
> > > > > To unsubscribe, e-mail:
> > > > <mailto:commons-dev-unsubscribe@jakarta.apache.org>
> > > > > For additional commands, e-mail:
> > > > <mailto:commons-dev-help@jakarta.apache.org>
> > > > >
> > > >
> > >
> > >
> > >
> > > =====
> > > Jonathan Carlson
> > > joncrlsn@users.sf.net
> > > Minneapolis, Minnesota
> > >
> > > __________________________________________________
> 
=== message truncated ===


=====
Jonathan Carlson
joncrlsn@users.sf.net
Minneapolis, Minnesota

__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus  Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>


Mime
View raw message