diff options
author | Danny van Bruggen <hexagonaal@gmail.com> | 2017-09-16 19:52:57 +0200 |
---|---|---|
committer | Danny van Bruggen <hexagonaal@gmail.com> | 2017-09-16 19:52:57 +0200 |
commit | dce30139427f49ff912956053ec47ca21a7e59d7 (patch) | |
tree | 7d1a726fab6249ed70fbd81cc93274bfd2acec05 /javaparser-core-generators/src/main/java/com/github/javaparser/generator/core | |
parent | 73a95215130f3fbbbb817fe7a26d933b32058341 (diff) | |
download | javaparser-dce30139427f49ff912956053ec47ca21a7e59d7.tar.gz |
Generate -with-defaults visitors
Diffstat (limited to 'javaparser-core-generators/src/main/java/com/github/javaparser/generator/core')
3 files changed, 56 insertions, 0 deletions
diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/CoreGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/CoreGenerator.java index cf410a47a..64b5fd48f 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/CoreGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/CoreGenerator.java @@ -29,10 +29,12 @@ public class CoreGenerator { private void run(SourceRoot sourceRoot) throws Exception { new GenericListVisitorAdapterGenerator(sourceRoot).generate(); new GenericVisitorAdapterGenerator(sourceRoot).generate(); + new GenericVisitorWithDefaultsGenerator(sourceRoot).generate(); new EqualsVisitorGenerator(sourceRoot).generate(); new ObjectIdentityEqualsVisitorGenerator(sourceRoot).generate(); new VoidVisitorAdapterGenerator(sourceRoot).generate(); new VoidVisitorGenerator(sourceRoot).generate(); + new VoidVisitorWithDefaultsGenerator(sourceRoot).generate(); new GenericVisitorGenerator(sourceRoot).generate(); new HashCodeVisitorGenerator(sourceRoot).generate(); new ObjectIdentityHashCodeVisitorGenerator(sourceRoot).generate(); diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericVisitorWithDefaultsGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericVisitorWithDefaultsGenerator.java new file mode 100644 index 000000000..a6a215159 --- /dev/null +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/GenericVisitorWithDefaultsGenerator.java @@ -0,0 +1,27 @@ +package com.github.javaparser.generator.core.visitor; + +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.body.MethodDeclaration; +import com.github.javaparser.ast.stmt.BlockStmt; +import com.github.javaparser.generator.VisitorGenerator; +import com.github.javaparser.metamodel.BaseNodeMetaModel; +import com.github.javaparser.utils.SourceRoot; + +/** + * Generates JavaParser's GenericVisitorWithDefaults. + */ +public class GenericVisitorWithDefaultsGenerator extends VisitorGenerator { + public GenericVisitorWithDefaultsGenerator(SourceRoot sourceRoot) { + super(sourceRoot, "com.github.javaparser.ast.visitor", "GenericVisitorWithDefaults", "R", "A", true); + } + + @Override + protected void generateVisitMethodBody(BaseNodeMetaModel node, MethodDeclaration visitMethod, CompilationUnit compilationUnit) { + visitMethod.getParameters().forEach(p -> p.setFinal(true)); + + BlockStmt body = visitMethod.getBody().get(); + body.getStatements().clear(); + + body.addStatement("return defaultAction(n, arg);"); + } +} diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/VoidVisitorWithDefaultsGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/VoidVisitorWithDefaultsGenerator.java new file mode 100644 index 000000000..4089061b2 --- /dev/null +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/VoidVisitorWithDefaultsGenerator.java @@ -0,0 +1,27 @@ +package com.github.javaparser.generator.core.visitor; + +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.body.MethodDeclaration; +import com.github.javaparser.ast.stmt.BlockStmt; +import com.github.javaparser.generator.VisitorGenerator; +import com.github.javaparser.metamodel.BaseNodeMetaModel; +import com.github.javaparser.utils.SourceRoot; + +/** + * Generates JavaParser's VoidVisitorWithDefaults. + */ +public class VoidVisitorWithDefaultsGenerator extends VisitorGenerator { + public VoidVisitorWithDefaultsGenerator(SourceRoot sourceRoot) { + super(sourceRoot, "com.github.javaparser.ast.visitor", "VoidVisitorWithDefaults", "void", "A", true); + } + + @Override + protected void generateVisitMethodBody(BaseNodeMetaModel node, MethodDeclaration visitMethod, CompilationUnit compilationUnit) { + visitMethod.getParameters().forEach(p -> p.setFinal(true)); + + BlockStmt body = visitMethod.getBody().get(); + body.getStatements().clear(); + + body.addStatement("defaultAction(n, arg);"); + } +} |