diff options
author | Reinier Zwitserloot <reinier@tipit.to> | 2009-10-16 09:32:36 +0200 |
---|---|---|
committer | Reinier Zwitserloot <reinier@tipit.to> | 2009-10-16 09:32:36 +0200 |
commit | b5c8b725655d2ad8a715cfb1fbbdf25dbdcd4ceb (patch) | |
tree | 571d13cd7028a6b7d1ebfe84180a4328a20c42d7 /src/lombok/javac/handlers/HandleSneakyThrows.java | |
parent | 8629a651a66aa5fba9e0ada7df00803528b0e34f (diff) | |
download | lombok-b5c8b725655d2ad8a715cfb1fbbdf25dbdcd4ceb.tar.gz lombok-b5c8b725655d2ad8a715cfb1fbbdf25dbdcd4ceb.tar.bz2 lombok-b5c8b725655d2ad8a715cfb1fbbdf25dbdcd4ceb.zip |
Fixed issue #24 by refactoring the AST.Node class - taken it out, and in the process fixed a lot of type annoyance by adding more generics.
Also changed coding style from for/while/if/switch/catch/do ( expr ) {} to for (expr) {}, hence the changes _everywhere_.
Diffstat (limited to 'src/lombok/javac/handlers/HandleSneakyThrows.java')
-rw-r--r-- | src/lombok/javac/handlers/HandleSneakyThrows.java | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/src/lombok/javac/handlers/HandleSneakyThrows.java b/src/lombok/javac/handlers/HandleSneakyThrows.java index 4a4ab09b..3cbad7f6 100644 --- a/src/lombok/javac/handlers/HandleSneakyThrows.java +++ b/src/lombok/javac/handlers/HandleSneakyThrows.java @@ -29,7 +29,7 @@ import java.util.Collection; import lombok.SneakyThrows; import lombok.core.AnnotationValues; import lombok.javac.JavacAnnotationHandler; -import lombok.javac.JavacAST.Node; +import lombok.javac.JavacNode; import org.mangosdk.spi.ProviderFor; @@ -50,31 +50,31 @@ import com.sun.tools.javac.util.List; */ @ProviderFor(JavacAnnotationHandler.class) public class HandleSneakyThrows implements JavacAnnotationHandler<SneakyThrows> { - @Override public boolean handle(AnnotationValues<SneakyThrows> annotation, JCAnnotation ast, Node annotationNode) { + @Override public boolean handle(AnnotationValues<SneakyThrows> annotation, JCAnnotation ast, JavacNode annotationNode) { Collection<String> exceptionNames = annotation.getRawExpressions("value"); List<JCExpression> memberValuePairs = ast.getArguments(); - if ( memberValuePairs == null || memberValuePairs.size() == 0 ) return false; + if (memberValuePairs == null || memberValuePairs.size() == 0) return false; JCExpression arrayOrSingle = ((JCAssign)memberValuePairs.get(0)).rhs; final List<JCExpression> exceptionNameNodes; - if ( arrayOrSingle instanceof JCNewArray ) { + if (arrayOrSingle instanceof JCNewArray) { exceptionNameNodes = ((JCNewArray)arrayOrSingle).elems; } else exceptionNameNodes = List.of(arrayOrSingle); - if ( exceptionNames.size() != exceptionNameNodes.size() ) { + if (exceptionNames.size() != exceptionNameNodes.size()) { annotationNode.addError( "LOMBOK BUG: The number of exception classes in the annotation isn't the same pre- and post- guessing."); } java.util.List<String> exceptions = new ArrayList<String>(); - for ( String exception : exceptionNames ) { - if ( exception.endsWith(".class") ) exception = exception.substring(0, exception.length() - 6); + for (String exception : exceptionNames) { + if (exception.endsWith(".class")) exception = exception.substring(0, exception.length() - 6); exceptions.add(exception); } - Node owner = annotationNode.up(); - switch ( owner.getKind() ) { + JavacNode owner = annotationNode.up(); + switch (owner.getKind()) { case METHOD: return handleMethod(annotationNode, (JCMethodDecl)owner.get(), exceptions); default: @@ -83,19 +83,19 @@ public class HandleSneakyThrows implements JavacAnnotationHandler<SneakyThrows> } } - private boolean handleMethod(Node annotation, JCMethodDecl method, Collection<String> exceptions) { - Node methodNode = annotation.up(); + private boolean handleMethod(JavacNode annotation, JCMethodDecl method, Collection<String> exceptions) { + JavacNode methodNode = annotation.up(); - if ( (method.mods.flags & Flags.ABSTRACT) != 0 ) { + if ( (method.mods.flags & Flags.ABSTRACT) != 0) { annotation.addError("@SneakyThrows can only be used on concrete methods."); return true; } - if ( method.body == null ) return false; + if (method.body == null) return false; List<JCStatement> contents = method.body.stats; - for ( String exception : exceptions ) { + for (String exception : exceptions) { contents = List.of(buildTryCatchBlock(methodNode, contents, exception)); } @@ -105,7 +105,7 @@ public class HandleSneakyThrows implements JavacAnnotationHandler<SneakyThrows> return true; } - private JCStatement buildTryCatchBlock(Node node, List<JCStatement> contents, String exception) { + private JCStatement buildTryCatchBlock(JavacNode node, List<JCStatement> contents, String exception) { TreeMaker maker = node.getTreeMaker(); JCBlock tryBlock = maker.Block(0, contents); |