Thumb up for me :)
Rémi
On 05/19/2015 12:45 AM, Stuart Marks wrote:
On 5/18/15 3:20 AM, Paul Sandoz wrote:
I would like to suggest some tweaks to the specification to get
across this method is transitioning control of traversal from
enumeration to iterator. How about:
Returns an iterator that traverses the remaining elements covered
by this enumeration.
Traversal is undefined if this enumeration is operated on after
the call to {@code asIterator}.
OK, good. I tweaked it somewhat to say "if any method is called"
instead of "operated on" to make it absolutely clear that the
underlying Enumeration shouldn't be touched after the call to
asIterator(). (Yes, that includes hasMoreElements.)
I suspect the use of PermissionCollection in the apiNote is a little
too obscure and highlighting an area that i don't think deserves so
much attention :-)
Boy people really hate the java.security APIs. But perhaps not as much
as they hate CORBA. :-)
In your example i am not sure the source is IMMUTABLE, it's possible
to add permissions if the collection is not marked read-only. It's
not even clear whether ORDERED is relevant here, some implementations
are backed by a HashMap (see BasicPermissionCollection) and the
enumeration is derived from the map's values. Hence I am ambivalent
about exposing such a Stream example, it exposes too many details
that are tricky to get right.
ClassLoader.getResources would be better if it were not for IOException.
I would be inclined to go for Zip/JarFile.entries, and that would
also give us the opportunity to highlight the stream returning method
that could be used instead, therefore we can avoid mentioning about
constructing a stream from an enumeration/iterator and move
developers away from Enumeration altogether in this case.
OK, I went with JarFile, since the wildcard in ZipFile.entries() seems
to cause some trouble.
I also deleted the stream example. It's fairly complex and as you note
it's hard to get the details right.
I've posted an updated webrev here:
http://cr.openjdk.java.net/~smarks/reviews/8072726/webrev.1/
Changes include:
- updates to spec & examples per above
- converted NOTE in class doc to @apiNote
- Rémi's suggested simplifications
- additional tests for remove()
s'marks
A good stream-ification task would be to identify cases in the JDK
where only an Enumeration is returned and additionally provide
stream-returning methods, so perhaps PermissionCollection and
ClassLoader are good candidates.
Paul.
On May 16, 2015, at 2:37 AM, Stuart Marks <stuart.ma...@oracle.com>
wrote:
Hi all,
Please review this small API enhancement to add a default method
"asIterator()" to Enumeration that converts it into an Iterator.
Webrev:
http://cr.openjdk.java.net/~smarks/reviews/8072726/webrev.0/
Bug:
https://bugs.openjdk.java.net/browse/JDK-8072726
Thanks,
s'marks