aboutsummaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorReinier Zwitserloot <reinier@zwitserloot.com>2013-05-31 01:03:38 +0200
committerReinier Zwitserloot <reinier@zwitserloot.com>2013-05-31 01:03:38 +0200
commit5a3e9bd8049469169410107011ad0e26b3b629e3 (patch)
treea299ccfa863901639679e165f29cc775cb14abd0 /src/utils
parent7bbb7cf3ca25cb8727a6ec226de1ed1fc5bf47e9 (diff)
downloadlombok-5a3e9bd8049469169410107011ad0e26b3b629e3.tar.gz
lombok-5a3e9bd8049469169410107011ad0e26b3b629e3.tar.bz2
lombok-5a3e9bd8049469169410107011ad0e26b3b629e3.zip
Added @NonNull on parameters feature (issue 514),
including docs and changelog.
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/lombok/javac/Javac.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/utils/lombok/javac/Javac.java b/src/utils/lombok/javac/Javac.java
index b4e58b8f..08c7c957 100644
--- a/src/utils/lombok/javac/Javac.java
+++ b/src/utils/lombok/javac/Javac.java
@@ -21,6 +21,8 @@
*/
package lombok.javac;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -129,4 +131,34 @@ public class Javac {
throw new RuntimeException(e);
}
}
+
+ private static final Field JCTREE_TAG;
+ private static final Method JCTREE_GETTAG;
+ static {
+ Field f = null;
+ try {
+ f = JCTree.class.getDeclaredField("tag");
+ } catch (NoSuchFieldException e) {}
+ JCTREE_TAG = f;
+
+ Method m = null;
+ try {
+ m = JCTree.class.getDeclaredMethod("getTag");
+ } catch (NoSuchMethodException e) {}
+ JCTREE_GETTAG = m;
+ }
+
+ public static int getTag(JCTree node) {
+ if (JCTREE_GETTAG != null) {
+ try {
+ return (Integer) JCTREE_GETTAG.invoke(node);
+ } catch (Exception e) {}
+ }
+ try {
+ return (Integer) JCTREE_TAG.get(node);
+ } catch (Exception e) {
+ throw new IllegalStateException("Can't get node tag");
+ }
+ }
+
}