Hi Stuart,

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}.


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 
:-) 

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.

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

Reply via email to