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