aboutsummaryrefslogtreecommitdiff
path: root/src/lombok/eclipse/TransformEclipseAST.java
diff options
context:
space:
mode:
authorReinier Zwitserloot <reinier@tipit.to>2009-06-17 10:43:39 +0200
committerReinier Zwitserloot <reinier@tipit.to>2009-06-17 10:43:39 +0200
commit024d8ffa9801f463fecadd16f42d51bbed46dea7 (patch)
treeacb0b85f79eafb517e3472bd3d906235d1541ade /src/lombok/eclipse/TransformEclipseAST.java
parentaa6d2e262f3d6c43f6d89220cdc10c6954bb2bdd (diff)
downloadlombok-024d8ffa9801f463fecadd16f42d51bbed46dea7.tar.gz
lombok-024d8ffa9801f463fecadd16f42d51bbed46dea7.tar.bz2
lombok-024d8ffa9801f463fecadd16f42d51bbed46dea7.zip
Massive refactors. This list isn't complete, but should give you an idea:
A) many things in lombok.eclipse moved to lombok.core to enable reuse with lombok.javac. B) lombok.javac works now similarly to eclipse's model: We first make big ASTs that are bidirectionally traversable, then we walk through that for annotations. C) Instead of getting an annotation instance, you now get an object that is more flexible and can e.g. give you class values in an enum as a string instead of a Class object, which may fail if that class isn't on the classpath of lombok. D) sources to the internal sun classes for javac added to /contrib.
Diffstat (limited to 'src/lombok/eclipse/TransformEclipseAST.java')
-rw-r--r--src/lombok/eclipse/TransformEclipseAST.java15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/lombok/eclipse/TransformEclipseAST.java b/src/lombok/eclipse/TransformEclipseAST.java
index 55cdd822..f77639e1 100644
--- a/src/lombok/eclipse/TransformEclipseAST.java
+++ b/src/lombok/eclipse/TransformEclipseAST.java
@@ -6,6 +6,7 @@ import lombok.eclipse.EclipseAST.Node;
import org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration;
import org.eclipse.jdt.internal.compiler.ast.Annotation;
+import org.eclipse.jdt.internal.compiler.ast.Argument;
import org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration;
import org.eclipse.jdt.internal.compiler.ast.FieldDeclaration;
import org.eclipse.jdt.internal.compiler.ast.LocalDeclaration;
@@ -114,25 +115,31 @@ public class TransformEclipseAST {
private static class AnnotationVisitor extends EclipseASTAdapter {
@Override public void visitAnnotationOnField(FieldDeclaration field, Node annotationNode, Annotation annotation) {
if ( annotationNode.isHandled() ) return;
- handlers.handle((CompilationUnitDeclaration) annotationNode.top().node, annotationNode, annotation);
+ handlers.handle((CompilationUnitDeclaration) annotationNode.top().get(), annotationNode, annotation);
+ annotationNode.setHandled();
+ }
+
+ @Override public void visitAnnotationOnMethodArgument(Argument arg, AbstractMethodDeclaration method, Node annotationNode, Annotation annotation) {
+ if ( annotationNode.isHandled() ) return;
+ handlers.handle((CompilationUnitDeclaration) annotationNode.top().get(), annotationNode, annotation);
annotationNode.setHandled();
}
@Override public void visitAnnotationOnLocal(LocalDeclaration local, Node annotationNode, Annotation annotation) {
if ( annotationNode.isHandled() ) return;
- handlers.handle((CompilationUnitDeclaration) annotationNode.top().node, annotationNode, annotation);
+ handlers.handle((CompilationUnitDeclaration) annotationNode.top().get(), annotationNode, annotation);
annotationNode.setHandled();
}
@Override public void visitAnnotationOnMethod(AbstractMethodDeclaration method, Node annotationNode, Annotation annotation) {
if ( annotationNode.isHandled() ) return;
- handlers.handle((CompilationUnitDeclaration) annotationNode.top().node, annotationNode, annotation);
+ handlers.handle((CompilationUnitDeclaration) annotationNode.top().get(), annotationNode, annotation);
annotationNode.setHandled();
}
@Override public void visitAnnotationOnType(TypeDeclaration type, Node annotationNode, Annotation annotation) {
if ( annotationNode.isHandled() ) return;
- handlers.handle((CompilationUnitDeclaration) annotationNode.top().node, annotationNode, annotation);
+ handlers.handle((CompilationUnitDeclaration) annotationNode.top().get(), annotationNode, annotation);
annotationNode.setHandled();
}
}