From 21ea5eeca8448c8880a3f2d975dee3107e3175b3 Mon Sep 17 00:00:00 2001 From: Reinier Zwitserloot Date: Wed, 23 Sep 2009 07:43:43 +0200 Subject: Slight tweak to SpiLoadUtil: It now returns iterables instead of iterators. --- src/lombok/eclipse/HandlerLibrary.java | 44 +++++++++++++--------------------- 1 file changed, 17 insertions(+), 27 deletions(-) (limited to 'src/lombok/eclipse/HandlerLibrary.java') diff --git a/src/lombok/eclipse/HandlerLibrary.java b/src/lombok/eclipse/HandlerLibrary.java index 1b9ed545..ed8196f7 100644 --- a/src/lombok/eclipse/HandlerLibrary.java +++ b/src/lombok/eclipse/HandlerLibrary.java @@ -23,11 +23,11 @@ package lombok.eclipse; import static lombok.eclipse.Eclipse.toQualifiedName; +import java.io.IOException; import java.lang.annotation.Annotation; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; -import java.util.Iterator; import java.util.Map; import lombok.Lombok; @@ -96,44 +96,34 @@ public class HandlerLibrary { /** Uses SPI Discovery to find implementations of {@link EclipseAnnotationHandler}. */ @SuppressWarnings("unchecked") private static void loadAnnotationHandlers(HandlerLibrary lib) { - Iterator it; try { - it = SpiLoadUtil.findServices(EclipseAnnotationHandler.class); - } catch ( Throwable t ) { - throw Lombok.sneakyThrow(t); - } - - while ( it.hasNext() ) { - try { - EclipseAnnotationHandler handler = it.next(); - Class annotationClass = - SpiLoadUtil.findAnnotationClass(handler.getClass(), EclipseAnnotationHandler.class); - AnnotationHandlerContainer container = new AnnotationHandlerContainer(handler, annotationClass); - if ( lib.annotationHandlers.put(container.annotationClass.getName(), container) != null ) { - Eclipse.error(null, "Duplicate handlers for annotation type: " + container.annotationClass.getName()); + for (EclipseAnnotationHandler handler : SpiLoadUtil.findServices(EclipseAnnotationHandler.class)) { + try { + Class annotationClass = + SpiLoadUtil.findAnnotationClass(handler.getClass(), EclipseAnnotationHandler.class); + AnnotationHandlerContainer container = new AnnotationHandlerContainer(handler, annotationClass); + if (lib.annotationHandlers.put(container.annotationClass.getName(), container) != null) { + Eclipse.error(null, "Duplicate handlers for annotation type: " + container.annotationClass.getName()); + } + lib.typeLibrary.addType(container.annotationClass.getName()); + } catch (Throwable t) { + Eclipse.error(null, "Can't load Lombok annotation handler for Eclipse: ", t); } - lib.typeLibrary.addType(container.annotationClass.getName()); - } catch ( Throwable t ) { - Eclipse.error(null, "Can't load Lombok annotation handler for Eclipse: ", t); } + } catch ( IOException e ) { + Lombok.sneakyThrow(e); } } /** Uses SPI Discovery to find implementations of {@link EclipseASTVisitor}. */ private static void loadVisitorHandlers(HandlerLibrary lib) { - Iterator it; try { - it = SpiLoadUtil.findServices(EclipseASTVisitor.class); + for (EclipseASTVisitor visitor : SpiLoadUtil.findServices(EclipseASTVisitor.class)) { + lib.visitorHandlers.add(visitor); + } } catch ( Throwable t ) { throw Lombok.sneakyThrow(t); } - while ( it.hasNext() ) { - try { - lib.visitorHandlers.add(it.next()); - } catch ( Throwable t ) { - Eclipse.error(null, "Can't load Lombok visitor handler for Eclipse: ", t); - } - } } /** -- cgit