diff options
author | Reinier Zwitserloot <reinier@zwitserloot.com> | 2013-05-23 12:50:59 +0200 |
---|---|---|
committer | Reinier Zwitserloot <reinier@zwitserloot.com> | 2013-06-16 13:20:53 +0200 |
commit | 4e521c558ed7355244dd1cb9c8d94bd5a9cb462d (patch) | |
tree | d3349b808f9b5aa07c0f5b27c484a98e2ce616d4 /src/core/lombok/javac/handlers | |
parent | bf43dc747791f9bbf953cfea8200fac478f62d80 (diff) | |
download | lombok-4e521c558ed7355244dd1cb9c8d94bd5a9cb462d.tar.gz lombok-4e521c558ed7355244dd1cb9c8d94bd5a9cb462d.tar.bz2 lombok-4e521c558ed7355244dd1cb9c8d94bd5a9cb462d.zip |
Added injectType methods to Eclipse/JavacHandlerUtil, which we'll need to inject the created $Builder type.
Inspired by Philipp Eichhorn's work in lombok-pg.
Diffstat (limited to 'src/core/lombok/javac/handlers')
-rw-r--r-- | src/core/lombok/javac/handlers/JavacHandlerUtil.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/core/lombok/javac/handlers/JavacHandlerUtil.java b/src/core/lombok/javac/handlers/JavacHandlerUtil.java index 7cbaa5ac..2577befb 100644 --- a/src/core/lombok/javac/handlers/JavacHandlerUtil.java +++ b/src/core/lombok/javac/handlers/JavacHandlerUtil.java @@ -801,6 +801,19 @@ public class JavacHandlerUtil { typeNode.add(method, Kind.METHOD); } + /** + * Adds an inner type (class, interface, enum) to the given type. Cannot inject top-level types. + * + * @param typeNode parent type to inject new type into + * @param type New type (class, interface, etc) to inject. + */ + public static void injectType(final JavacNode typeNode, final JCClassDecl type) { + JCClassDecl typeDecl = (JCClassDecl) typeNode.get(); + addSuppressWarningsAll(type.mods, typeNode, type.pos, getGeneratedBy(type)); + typeDecl.defs = typeDecl.defs.append(type); + typeNode.add(type, Kind.TYPE); + } + private static void addSuppressWarningsAll(JCModifiers mods, JavacNode node, int pos, JCTree source) { TreeMaker maker = node.getTreeMaker(); JCExpression suppressWarningsType = chainDots(node, "java", "lang", "SuppressWarnings"); |