aboutsummaryrefslogtreecommitdiff
path: root/src/core/lombok/eclipse
diff options
context:
space:
mode:
authorReinier Zwitserloot <reinier@zwitserloot.com>2010-11-09 21:32:40 +0100
committerReinier Zwitserloot <reinier@zwitserloot.com>2010-11-09 21:32:40 +0100
commitc88ae3af7432513987eafaf13c178baa77cb0667 (patch)
treeb45fee768d8f27fcfcf535e6dfa6500bdbef6cd6 /src/core/lombok/eclipse
parent0951ea38fe11189cdc4c2778fdad9e9e3ad6a6ae (diff)
parent16f992c5adea8ed8ad183d27c247901d61b0635d (diff)
downloadlombok-c88ae3af7432513987eafaf13c178baa77cb0667.tar.gz
lombok-c88ae3af7432513987eafaf13c178baa77cb0667.tar.bz2
lombok-c88ae3af7432513987eafaf13c178baa77cb0667.zip
Merge branch 'master' into javaChickenAndEgg
Conflicts: src/core/lombok/javac/handlers/HandleCleanup.java
Diffstat (limited to 'src/core/lombok/eclipse')
-rw-r--r--src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java17
-rw-r--r--src/core/lombok/eclipse/handlers/HandleCleanup.java19
-rw-r--r--src/core/lombok/eclipse/handlers/HandleEqualsAndHashCode.java2
-rw-r--r--src/core/lombok/eclipse/handlers/HandleLog.java19
4 files changed, 35 insertions, 22 deletions
diff --git a/src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java b/src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java
index 019ae637..0db0085f 100644
--- a/src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java
+++ b/src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java
@@ -1,5 +1,5 @@
/*
- * Copyright © 2009-2010 Reinier Zwitserloot and Roel Spilker.
+ * Copyright © 2009-2010 Reinier Zwitserloot, Roel Spilker and Robbert Jan Grootjans.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -610,4 +610,19 @@ public class EclipseHandlerUtil {
return problematic;
}
+
+ static NameReference createNameReference(String name, Annotation source) {
+ int pS = source.sourceStart, pE = source.sourceEnd;
+ long p = (long)pS << 32 | pE;
+
+ char[][] nameTokens = fromQualifiedName(name);
+ long[] pos = new long[nameTokens.length];
+ Arrays.fill(pos, p);
+
+ QualifiedNameReference nameReference = new QualifiedNameReference(nameTokens, pos, pS, pE);
+ nameReference.statementEnd = pE;
+
+ Eclipse.setGeneratedBy(nameReference, source);
+ return nameReference;
+ }
}
diff --git a/src/core/lombok/eclipse/handlers/HandleCleanup.java b/src/core/lombok/eclipse/handlers/HandleCleanup.java
index 33ab7fb9..964653bc 100644
--- a/src/core/lombok/eclipse/handlers/HandleCleanup.java
+++ b/src/core/lombok/eclipse/handlers/HandleCleanup.java
@@ -1,5 +1,5 @@
/*
- * Copyright © 2009 Reinier Zwitserloot and Roel Spilker.
+ * Copyright © 2009-2010 Reinier Zwitserloot, Roel Spilker and Robbert Jan Grootjans.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -21,6 +21,8 @@
*/
package lombok.eclipse.handlers;
+import static lombok.eclipse.handlers.EclipseHandlerUtil.createNameReference;
+
import java.util.Arrays;
import lombok.Cleanup;
@@ -38,6 +40,7 @@ import org.eclipse.jdt.internal.compiler.ast.Block;
import org.eclipse.jdt.internal.compiler.ast.CaseStatement;
import org.eclipse.jdt.internal.compiler.ast.CastExpression;
import org.eclipse.jdt.internal.compiler.ast.EqualExpression;
+import org.eclipse.jdt.internal.compiler.ast.Expression;
import org.eclipse.jdt.internal.compiler.ast.IfStatement;
import org.eclipse.jdt.internal.compiler.ast.LocalDeclaration;
import org.eclipse.jdt.internal.compiler.ast.MemberValuePair;
@@ -170,7 +173,19 @@ public class HandleCleanup implements EclipseAnnotationHandler<Cleanup> {
Eclipse.setGeneratedBy(varName, ast);
NullLiteral nullLiteral = new NullLiteral(pS, pE);
Eclipse.setGeneratedBy(nullLiteral, ast);
- EqualExpression equalExpression = new EqualExpression(varName, nullLiteral, OperatorIds.NOT_EQUAL);
+
+ MessageSend preventNullAnalysis = new MessageSend();
+ Eclipse.setGeneratedBy(preventNullAnalysis, ast);
+
+ preventNullAnalysis.receiver = createNameReference("lombok.Lombok", ast);
+ preventNullAnalysis.selector = "preventNullAnalysis".toCharArray();
+
+ preventNullAnalysis.arguments = new Expression[] { varName };
+ preventNullAnalysis.nameSourcePosition = p;
+ preventNullAnalysis.sourceStart = pS;
+ preventNullAnalysis.sourceEnd = preventNullAnalysis.statementEnd = pE;
+
+ EqualExpression equalExpression = new EqualExpression(preventNullAnalysis, nullLiteral, OperatorIds.NOT_EQUAL);
equalExpression.sourceStart = pS; equalExpression.sourceEnd = pE;
Eclipse.setGeneratedBy(equalExpression, ast);
diff --git a/src/core/lombok/eclipse/handlers/HandleEqualsAndHashCode.java b/src/core/lombok/eclipse/handlers/HandleEqualsAndHashCode.java
index ed13fd1b..23d24fb0 100644
--- a/src/core/lombok/eclipse/handlers/HandleEqualsAndHashCode.java
+++ b/src/core/lombok/eclipse/handlers/HandleEqualsAndHashCode.java
@@ -1,5 +1,5 @@
/*
- * Copyright © 2009-2010 Reinier Zwitserloot and Roel Spilker.
+ * Copyright © 2009-2010 Reinier Zwitserloot, Roel Spilker and Robbert Jan Grootjans.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
diff --git a/src/core/lombok/eclipse/handlers/HandleLog.java b/src/core/lombok/eclipse/handlers/HandleLog.java
index 736e6e43..1df33e89 100644
--- a/src/core/lombok/eclipse/handlers/HandleLog.java
+++ b/src/core/lombok/eclipse/handlers/HandleLog.java
@@ -1,5 +1,5 @@
/*
- * Copyright © 2009 Reinier Zwitserloot, Roel Spilker and Robbert Jan Grootjans.
+ * Copyright © 2010 Reinier Zwitserloot, Roel Spilker and Robbert Jan Grootjans.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -38,8 +38,6 @@ import org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess;
import org.eclipse.jdt.internal.compiler.ast.Expression;
import org.eclipse.jdt.internal.compiler.ast.FieldDeclaration;
import org.eclipse.jdt.internal.compiler.ast.MessageSend;
-import org.eclipse.jdt.internal.compiler.ast.NameReference;
-import org.eclipse.jdt.internal.compiler.ast.QualifiedNameReference;
import org.eclipse.jdt.internal.compiler.ast.QualifiedTypeReference;
import org.eclipse.jdt.internal.compiler.ast.SingleTypeReference;
import org.eclipse.jdt.internal.compiler.ast.TypeDeclaration;
@@ -159,21 +157,6 @@ public class HandleLog {
return typeReference;
}
- private static NameReference createNameReference(String name, Annotation source) {
- int pS = source.sourceStart, pE = source.sourceEnd;
- long p = (long)pS << 32 | pE;
-
- char[][] nameTokens = fromQualifiedName(name);
- long[] pos = new long[nameTokens.length];
- Arrays.fill(pos, p);
-
- QualifiedNameReference nameReference = new QualifiedNameReference(nameTokens, pos, pS, pE);
- nameReference.statementEnd = pE;
-
- Eclipse.setGeneratedBy(nameReference, source);
- return nameReference;
- }
-
/**
* Handles the {@link lombok.extern.apachecommons.Log} annotation for Eclipse.
*/