diff options
Diffstat (limited to 'javaparser-core-generators/src/main/java/com/github/javaparser/generator/Generator.java')
-rw-r--r-- | javaparser-core-generators/src/main/java/com/github/javaparser/generator/Generator.java | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/Generator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/Generator.java index 60ebd3d13..321ae33b2 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/Generator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/Generator.java @@ -1,6 +1,8 @@ package com.github.javaparser.generator; import com.github.javaparser.ast.Node; +import com.github.javaparser.ast.expr.Expression; +import com.github.javaparser.ast.expr.StringLiteralExpr; import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations; import com.github.javaparser.utils.SourceRoot; @@ -21,12 +23,23 @@ public abstract class Generator { public abstract void generate() throws Exception; - protected <T extends Node & NodeWithAnnotations<T>> void markGenerated(T node) { + protected <T extends Node & NodeWithAnnotations<T>> void annotateGenerated(T node) { + annotate(node, Generated.class, new StringLiteralExpr(getClass().getName())); + } + + protected <T extends Node & NodeWithAnnotations<T>> void annotateSuppressWarnings(T node) { + annotate(node, SuppressWarnings.class, new StringLiteralExpr("unchecked")); + } + + private <T extends Node & NodeWithAnnotations<T>> void annotate(T node, Class<?> annotation, Expression content) { node.setAnnotations( node.getAnnotations().stream() - .filter(a -> !a.getNameAsString().equals("Generated")) + .filter(a -> !a.getNameAsString().equals(annotation.getSimpleName())) .collect(toNodeList())); - node.addSingleMemberAnnotation(Generated.class, f("\"%s\"", getClass().getName())); - node.tryAddImportToParentCompilationUnit(Generated.class); + + node.addSingleMemberAnnotation(annotation.getSimpleName(), content); + node.tryAddImportToParentCompilationUnit(annotation); } + + } |