blob: 60ebd3d13d197b9ebf84fa805517d7c0fe8ddcae (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
package com.github.javaparser.generator;
import com.github.javaparser.ast.Node;
import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
import com.github.javaparser.utils.SourceRoot;
import javax.annotation.Generated;
import static com.github.javaparser.ast.NodeList.toNodeList;
import static com.github.javaparser.utils.CodeGenerationUtils.f;
/**
* A general pattern that the generators in this module will follow.
*/
public abstract class Generator {
protected final SourceRoot sourceRoot;
protected Generator(SourceRoot sourceRoot) {
this.sourceRoot = sourceRoot;
}
public abstract void generate() throws Exception;
protected <T extends Node & NodeWithAnnotations<T>> void markGenerated(T node) {
node.setAnnotations(
node.getAnnotations().stream()
.filter(a -> !a.getNameAsString().equals("Generated"))
.collect(toNodeList()));
node.addSingleMemberAnnotation(Generated.class, f("\"%s\"", getClass().getName()));
node.tryAddImportToParentCompilationUnit(Generated.class);
}
}
|