diff options
| author | Philippe Charles <charphi@users.noreply.github.com> | 2018-08-22 09:54:00 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-08-22 09:54:00 +0200 |
| commit | 3ffac6642456e2c7d32952c62df8a565e2d4728b (patch) | |
| tree | b0a28ac208dcb8af9add494c4caffe4f11bb287b /src/core/lombok/javac/apt | |
| parent | 35c7c6bda2e71da2e6e06cec5b0fb012c348f694 (diff) | |
| parent | 769185e123dfd4a073161eafb58ce50bb79d6201 (diff) | |
| download | lombok-3ffac6642456e2c7d32952c62df8a565e2d4728b.tar.gz lombok-3ffac6642456e2c7d32952c62df8a565e2d4728b.tar.bz2 lombok-3ffac6642456e2c7d32952c62df8a565e2d4728b.zip | |
Merge branch 'master' into master
Diffstat (limited to 'src/core/lombok/javac/apt')
| -rw-r--r-- | src/core/lombok/javac/apt/LombokProcessor.java | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/core/lombok/javac/apt/LombokProcessor.java b/src/core/lombok/javac/apt/LombokProcessor.java index 0e6880e4..247d0560 100644 --- a/src/core/lombok/javac/apt/LombokProcessor.java +++ b/src/core/lombok/javac/apt/LombokProcessor.java @@ -43,6 +43,7 @@ import javax.annotation.processing.RoundEnvironment; import javax.annotation.processing.SupportedAnnotationTypes; import javax.lang.model.SourceVersion; import javax.lang.model.element.Element; +import javax.lang.model.element.QualifiedNameable; import javax.lang.model.element.TypeElement; import javax.tools.Diagnostic.Kind; import javax.tools.JavaFileManager; @@ -166,13 +167,13 @@ public class LombokProcessor extends AbstractProcessor { if (!(originalFiler instanceof InterceptingJavaFileManager)) { final Messager messager = processingEnv.getMessager(); DiagnosticsReceiver receiver = new MessagerDiagnosticsReceiver(messager); - + JavaFileManager newFilerManager = new InterceptingJavaFileManager(originalFiler, receiver); ht.put(key, newFilerManager); Field filerFileManagerField = JavacFiler.class.getDeclaredField("fileManager"); filerFileManagerField.setAccessible(true); filerFileManagerField.set(javacFiler, newFilerManager); - + if (lombok.javac.Javac.getJavaCompilerVersion() > 8 && !lombok.javac.handlers.JavacHandlerUtil.inNetbeansCompileOnSave(context)) { replaceFileManagerJdk9(context, newFilerManager); @@ -383,10 +384,7 @@ public class LombokProcessor extends AbstractProcessor { private String getModuleNameFor(Element element) { while (element != null) { - if (element.getKind().name().equals("MODULE")) { - String n = element.getSimpleName().toString().trim(); - return n.isEmpty() ? null : n; - } + if (element.getKind().name().equals("MODULE")) return ModuleNameOracle.getModuleName(element); Element n = element.getEnclosingElement(); if (n == element) return null; element = n; @@ -394,6 +392,15 @@ public class LombokProcessor extends AbstractProcessor { return null; } + // QualifiedNameable is a java7 thing, so to remain compatible with java6, shove this into an inner class to avoid the ClassNotFoundError. + private static class ModuleNameOracle { + static String getModuleName(Element element) { + if (!(element instanceof QualifiedNameable)) return null; + String name = ((QualifiedNameable) element).getQualifiedName().toString().trim(); + return name.isEmpty() ? null : name; + } + } + private JCCompilationUnit toUnit(Element element) { TreePath path = trees == null ? null : trees.getPath(element); if (path == null) return null; @@ -432,7 +439,7 @@ public class LombokProcessor extends AbstractProcessor { } /** - * This class returns the given filer as a JavacFiler. In case the case that the filer is no + * This class returns the given filer as a JavacFiler. In case the filer is no * JavacFiler (e.g. the Gradle IncrementalFiler), its "delegate" field is used to get the JavacFiler * (directly or through a delegate field again) */ |
