diff options
author | Eugene Susla <eugenesusla@google.com> | 2019-07-31 15:12:54 -0700 |
---|---|---|
committer | Eugene Susla <eugenesusla@google.com> | 2019-07-31 15:12:54 -0700 |
commit | 1410e008c8ea196afec98d7766e6dca5c9d555b4 (patch) | |
tree | 68586f4fd910c3b08a9608d7be5e186c9df572c6 /javaparser-core-generators | |
parent | 1b2211eaf2fa78358abe0b16f82ccf0b689aa56a (diff) | |
download | javaparser-1410e008c8ea196afec98d7766e6dca5c9d555b4.tar.gz |
Pull commits from upstream for java 11 compatibility!
Change-Id: I27826ba60af5c54848e2eae40930d8fb8a302919
Diffstat (limited to 'javaparser-core-generators')
22 files changed, 138 insertions, 155 deletions
diff --git a/javaparser-core-generators/javaparser-core-generators.iml b/javaparser-core-generators/javaparser-core-generators.iml deleted file mode 100644 index 7843639b2..000000000 --- a/javaparser-core-generators/javaparser-core-generators.iml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> - <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8"> - <output url="file://$MODULE_DIR$/target/classes" /> - <output-test url="file://$MODULE_DIR$/target/test-classes" /> - <content url="file://$MODULE_DIR$"> - <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> - <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> - <excludeFolder url="file://$MODULE_DIR$/target" /> - </content> - <orderEntry type="inheritedJdk" /> - <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="module" module-name="javaparser-core" /> - </component> -</module>
\ No newline at end of file diff --git a/javaparser-core-generators/pom.xml b/javaparser-core-generators/pom.xml index 58eecf870..739b64b80 100644 --- a/javaparser-core-generators/pom.xml +++ b/javaparser-core-generators/pom.xml @@ -3,7 +3,7 @@ <parent> <artifactId>javaparser-parent</artifactId> <groupId>com.github.javaparser</groupId> - <version>3.5.16-SNAPSHOT</version> + <version>3.14.10-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> @@ -20,7 +20,7 @@ <profiles> <profile> - <id>run-core-generators</id> + <id>run-generators</id> <build> <plugins> <plugin> 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 f7860b04b..54d723afe 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 @@ -7,9 +7,9 @@ import com.github.javaparser.ast.body.MethodDeclaration; 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.ast.Generated; import com.github.javaparser.utils.SourceRoot; -import javax.annotation.Generated; import java.util.List; import static com.github.javaparser.ast.NodeList.toNodeList; diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/NodeGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/NodeGenerator.java index 18ab60d99..2900edd64 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/NodeGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/NodeGenerator.java @@ -1,7 +1,6 @@ package com.github.javaparser.generator; import com.github.javaparser.ast.CompilationUnit; -import com.github.javaparser.ast.body.CallableDeclaration; import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; import com.github.javaparser.metamodel.BaseNodeMetaModel; import com.github.javaparser.metamodel.JavaParserMetaModel; @@ -9,11 +8,6 @@ import com.github.javaparser.utils.Log; import com.github.javaparser.utils.Pair; import com.github.javaparser.utils.SourceRoot; -import java.io.IOException; -import java.util.List; - -import static com.github.javaparser.utils.CodeGenerationUtils.f; - /** * Makes it easier to generate code in the core AST nodes. The generateNode method will get every node type passed to * it, ready for modification. @@ -24,7 +18,7 @@ public abstract class NodeGenerator extends Generator { } public final void generate() throws Exception { - Log.info("Running %s", getClass().getSimpleName()); + Log.info("Running %s", () -> getClass().getSimpleName()); for (BaseNodeMetaModel nodeMetaModel : JavaParserMetaModel.getNodeMetaModels()) { Pair<CompilationUnit, ClassOrInterfaceDeclaration> result = parseNode(nodeMetaModel); generateNode(nodeMetaModel, result.a, result.b); diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/VisitorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/VisitorGenerator.java index 16b5ef4f8..49f21dae6 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/VisitorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/VisitorGenerator.java @@ -12,7 +12,7 @@ import com.github.javaparser.utils.SourceRoot; import java.util.Optional; -import static com.github.javaparser.ast.Modifier.PUBLIC; +import static com.github.javaparser.ast.Modifier.Keyword.PUBLIC; /** * Makes it easier to generate visitor classes. @@ -36,7 +36,7 @@ public abstract class VisitorGenerator extends Generator { } public final void generate() throws Exception { - Log.info("Running %s", getClass().getSimpleName()); + Log.info("Running %s", () -> getClass().getSimpleName()); final CompilationUnit compilationUnit = sourceRoot.tryToParse(pkg, visitorClassName + ".java").getResult().get(); 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 c1aa5f9fb..73acac13d 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 @@ -1,6 +1,7 @@ package com.github.javaparser.generator.core; import com.github.javaparser.ParserConfiguration; +import com.github.javaparser.StaticJavaParser; import com.github.javaparser.generator.core.node.*; import com.github.javaparser.generator.core.other.TokenKindGenerator; import com.github.javaparser.generator.core.visitor.*; @@ -10,6 +11,8 @@ import com.github.javaparser.utils.SourceRoot; import java.nio.file.Path; import java.nio.file.Paths; +import static com.github.javaparser.ParserConfiguration.LanguageLevel.RAW; + /** * Generates all generated visitors in the javaparser-core module. * Suggested usage is by running the run_core_generators.sh script. @@ -17,6 +20,7 @@ import java.nio.file.Paths; */ public class CoreGenerator { private static final ParserConfiguration parserConfiguration = new ParserConfiguration() + .setLanguageLevel(RAW) // .setStoreTokens(false) // .setAttributeComments(false) // .setLexicalPreservationEnabled(true) @@ -31,6 +35,7 @@ public class CoreGenerator { final SourceRoot sourceRoot = new SourceRoot(root, parserConfiguration) // .setPrinter(LexicalPreservingPrinter::print) ; + StaticJavaParser.setConfiguration(parserConfiguration); final Path generatedJavaCcRoot = Paths.get(args[0], "..", "javaparser-core", "target", "generated-sources", "javacc"); final SourceRoot generatedJavaCcSourceRoot = new SourceRoot(generatedJavaCcRoot, parserConfiguration) @@ -66,7 +71,7 @@ public class CoreGenerator { new CloneGenerator(sourceRoot).generate(); new GetMetaModelGenerator(sourceRoot).generate(); new MainConstructorGenerator(sourceRoot).generate(); - new FinalGenerator(sourceRoot).generate(); + new NodeModifierGenerator(sourceRoot).generate(); new AcceptGenerator(sourceRoot).generate(); new TokenKindGenerator(sourceRoot, generatedJavaCcSourceRoot).generate(); } diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/AcceptGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/AcceptGenerator.java index 9ab2bf32e..83df46784 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/AcceptGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/AcceptGenerator.java @@ -9,7 +9,7 @@ import com.github.javaparser.generator.NodeGenerator; import com.github.javaparser.metamodel.BaseNodeMetaModel; import com.github.javaparser.utils.SourceRoot; -import static com.github.javaparser.JavaParser.parseBodyDeclaration; +import static com.github.javaparser.StaticJavaParser.parseBodyDeclaration; public class AcceptGenerator extends NodeGenerator { private final MethodDeclaration genericAccept; diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/CloneGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/CloneGenerator.java index 6a788b47b..8aa112880 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/CloneGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/CloneGenerator.java @@ -8,7 +8,7 @@ import com.github.javaparser.generator.NodeGenerator; import com.github.javaparser.metamodel.BaseNodeMetaModel; import com.github.javaparser.utils.SourceRoot; -import static com.github.javaparser.JavaParser.parseBodyDeclaration; +import static com.github.javaparser.StaticJavaParser.parseBodyDeclaration; import static com.github.javaparser.utils.CodeGenerationUtils.f; public class CloneGenerator extends NodeGenerator { diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/GetMetaModelGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/GetMetaModelGenerator.java index 750c52b0c..187cec310 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/GetMetaModelGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/GetMetaModelGenerator.java @@ -8,7 +8,7 @@ import com.github.javaparser.metamodel.BaseNodeMetaModel; import com.github.javaparser.metamodel.JavaParserMetaModel; import com.github.javaparser.utils.SourceRoot; -import static com.github.javaparser.JavaParser.parseBodyDeclaration; +import static com.github.javaparser.StaticJavaParser.parseBodyDeclaration; import static com.github.javaparser.utils.CodeGenerationUtils.f; public class GetMetaModelGenerator extends NodeGenerator { diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/MainConstructorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/MainConstructorGenerator.java index 8f7158924..849352151 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/MainConstructorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/MainConstructorGenerator.java @@ -12,7 +12,7 @@ import com.github.javaparser.metamodel.PropertyMetaModel; import com.github.javaparser.utils.SeparatedItemStringBuilder; import com.github.javaparser.utils.SourceRoot; -import static com.github.javaparser.JavaParser.parseExplicitConstructorInvocationStmt; +import static com.github.javaparser.StaticJavaParser.parseExplicitConstructorInvocationStmt; import static com.github.javaparser.utils.CodeGenerationUtils.f; public class MainConstructorGenerator extends NodeGenerator { diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/FinalGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/NodeModifierGenerator.java index 8e8cef2d0..b2a320fdb 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/FinalGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/NodeModifierGenerator.java @@ -6,13 +6,15 @@ import com.github.javaparser.generator.NodeGenerator; import com.github.javaparser.metamodel.BaseNodeMetaModel; import com.github.javaparser.utils.SourceRoot; -public class FinalGenerator extends NodeGenerator { - public FinalGenerator(SourceRoot sourceRoot) { +public class NodeModifierGenerator extends NodeGenerator { + public NodeModifierGenerator(SourceRoot sourceRoot) { super(sourceRoot); } @Override protected void generateNode(BaseNodeMetaModel nodeMetaModel, CompilationUnit nodeCu, ClassOrInterfaceDeclaration nodeCoid) { - nodeCoid.setFinal(!nodeMetaModel.isAbstract()); + nodeCoid + .setFinal(false) + .setPublic(true); } } diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/PropertyGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/PropertyGenerator.java index 9ac69edc9..6d34bfd34 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/PropertyGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/PropertyGenerator.java @@ -13,11 +13,15 @@ import com.github.javaparser.metamodel.JavaParserMetaModel; import com.github.javaparser.metamodel.PropertyMetaModel; import com.github.javaparser.utils.SourceRoot; -import java.util.*; - -import static com.github.javaparser.JavaParser.parseType; -import static com.github.javaparser.ast.Modifier.FINAL; -import static com.github.javaparser.ast.Modifier.PUBLIC; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +import static com.github.javaparser.StaticJavaParser.parseType; +import static com.github.javaparser.ast.Modifier.Keyword.FINAL; +import static com.github.javaparser.ast.Modifier.Keyword.PUBLIC; +import static com.github.javaparser.ast.Modifier.createModifierList; import static com.github.javaparser.utils.CodeGenerationUtils.f; import static com.github.javaparser.utils.Utils.camelCaseToScreaming; @@ -50,7 +54,7 @@ public class PropertyGenerator extends NodeGenerator { return; } - final MethodDeclaration setter = new MethodDeclaration(EnumSet.of(PUBLIC), parseType(property.getContainingNodeMetaModel().getTypeNameGenerified()), property.getSetterMethodName()); + final MethodDeclaration setter = new MethodDeclaration(createModifierList(PUBLIC), parseType(property.getContainingNodeMetaModel().getTypeNameGenerified()), property.getSetterMethodName()); if (property.getContainingNodeMetaModel().hasWildcard()) { setter.setType(parseType("T")); } @@ -90,7 +94,7 @@ public class PropertyGenerator extends NodeGenerator { } private void generateGetter(BaseNodeMetaModel nodeMetaModel, ClassOrInterfaceDeclaration nodeCoid, PropertyMetaModel property) { - final MethodDeclaration getter = new MethodDeclaration(EnumSet.of(PUBLIC), parseType(property.getTypeNameForGetter()), property.getGetterMethodName()); + final MethodDeclaration getter = new MethodDeclaration(createModifierList(PUBLIC), parseType(property.getTypeNameForGetter()), property.getGetterMethodName()); final BlockStmt body = getter.getBody().get(); body.getStatements().clear(); if (property.isOptional()) { @@ -107,11 +111,7 @@ public class PropertyGenerator extends NodeGenerator { String constantName = camelCaseToScreaming(name.startsWith("is") ? name.substring(2) : name); EnumConstantDeclaration enumConstantDeclaration = observablePropertyEnum.addEnumConstant(constantName); if (isAttribute) { - if (property.isEnumSet()) { - enumConstantDeclaration.addArgument("Type.MULTIPLE_ATTRIBUTE"); - } else { - enumConstantDeclaration.addArgument("Type.SINGLE_ATTRIBUTE"); - } + enumConstantDeclaration.addArgument("Type.SINGLE_ATTRIBUTE"); } else { if (property.isNodeList()) { enumConstantDeclaration.addArgument("Type.MULTIPLE_REFERENCE"); diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/RemoveMethodGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/RemoveMethodGenerator.java index 64d5898b1..d650d492f 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/RemoveMethodGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/RemoveMethodGenerator.java @@ -10,7 +10,7 @@ import com.github.javaparser.utils.SourceRoot; import com.github.javaparser.metamodel.BaseNodeMetaModel; import com.github.javaparser.metamodel.PropertyMetaModel; -import static com.github.javaparser.JavaParser.*; +import static com.github.javaparser.StaticJavaParser.parseBodyDeclaration; import static com.github.javaparser.utils.CodeGenerationUtils.f; import static com.github.javaparser.utils.Utils.capitalize; diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/ReplaceMethodGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/ReplaceMethodGenerator.java index f1f9d3fce..918fd8823 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/ReplaceMethodGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/ReplaceMethodGenerator.java @@ -10,9 +10,8 @@ import com.github.javaparser.metamodel.BaseNodeMetaModel; import com.github.javaparser.metamodel.PropertyMetaModel; import com.github.javaparser.utils.SourceRoot; -import static com.github.javaparser.JavaParser.parseBodyDeclaration; +import static com.github.javaparser.StaticJavaParser.parseBodyDeclaration; import static com.github.javaparser.utils.CodeGenerationUtils.f; -import static com.github.javaparser.utils.Utils.capitalize; public class ReplaceMethodGenerator extends NodeGenerator { public ReplaceMethodGenerator(SourceRoot sourceRoot) { diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/TypeCastingGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/TypeCastingGenerator.java index 3a611f4c5..05d65cdf7 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/TypeCastingGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/TypeCastingGenerator.java @@ -13,7 +13,7 @@ import java.util.Optional; import java.util.Set; import java.util.function.Consumer; -import static com.github.javaparser.JavaParser.parseBodyDeclaration; +import static com.github.javaparser.StaticJavaParser.parseBodyDeclaration; import static com.github.javaparser.utils.CodeGenerationUtils.f; import static com.github.javaparser.utils.Utils.set; @@ -22,7 +22,7 @@ public class TypeCastingGenerator extends NodeGenerator { JavaParserMetaModel.statementMetaModel, JavaParserMetaModel.expressionMetaModel, JavaParserMetaModel.typeMetaModel, - JavaParserMetaModel.moduleStmtMetaModel, + JavaParserMetaModel.moduleDirectiveMetaModel, JavaParserMetaModel.bodyDeclarationMetaModel, JavaParserMetaModel.commentMetaModel ); diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/GrammarLetterGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/GrammarLetterGenerator.java index 9d50bc676..8916fc504 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/GrammarLetterGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/GrammarLetterGenerator.java @@ -44,6 +44,7 @@ public class GrammarLetterGenerator { } // Too lazy to remove the final illegal comma. System.out.println("]"); + System.out.println(" | <UNICODE_ESCAPE>"); System.out.println(" >"); } diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/TokenKindGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/TokenKindGenerator.java index 5088bc353..d83c32292 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/TokenKindGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/other/TokenKindGenerator.java @@ -9,7 +9,7 @@ import com.github.javaparser.ast.body.EnumConstantDeclaration; import com.github.javaparser.ast.body.EnumDeclaration; import com.github.javaparser.ast.expr.IntegerLiteralExpr; import com.github.javaparser.ast.stmt.ReturnStmt; -import com.github.javaparser.ast.stmt.SwitchEntryStmt; +import com.github.javaparser.ast.stmt.SwitchEntry; import com.github.javaparser.ast.stmt.SwitchStmt; import com.github.javaparser.generator.Generator; import com.github.javaparser.utils.Log; @@ -28,7 +28,7 @@ public class TokenKindGenerator extends Generator { @Override public void generate() { - Log.info("Running %s", getClass().getSimpleName()); + Log.info("Running %s", () -> getClass().getSimpleName()); final CompilationUnit javaTokenCu = sourceRoot.parse("com.github.javaparser", "JavaToken.java"); final ClassOrInterfaceDeclaration javaToken = javaTokenCu.getClassByName("JavaToken").orElseThrow(() -> new AssertionError("Can't find class in java file.")); @@ -38,7 +38,7 @@ public class TokenKindGenerator extends Generator { annotateGenerated(kindEnum); final SwitchStmt valueOfSwitch = kindEnum.findFirst(SwitchStmt.class).orElseThrow(() -> new AssertionError("Can't find valueOf switch.")); - valueOfSwitch.findAll(SwitchEntryStmt.class).stream().filter(e -> e.getLabel().isPresent()).forEach(Node::remove); + valueOfSwitch.findAll(SwitchEntry.class).stream().filter(e -> e.getLabels().isNonEmpty()).forEach(Node::remove); final CompilationUnit constantsCu = generatedJavaCcSourceRoot.parse("com.github.javaparser", "GeneratedJavaParserConstants.java"); final ClassOrInterfaceDeclaration constants = constantsCu.getInterfaceByName("GeneratedJavaParserConstants").orElseThrow(() -> new AssertionError("Can't find class in java file.")); @@ -59,7 +59,7 @@ public class TokenKindGenerator extends Generator { } private void generateValueOfEntry(SwitchStmt valueOfSwitch, String name, IntegerLiteralExpr kind) { - final SwitchEntryStmt entry = new SwitchEntryStmt(kind, new NodeList<>(new ReturnStmt(name))); + final SwitchEntry entry = new SwitchEntry(new NodeList<>(kind), SwitchEntry.Type.STATEMENT_GROUP, new NodeList<>(new ReturnStmt(name))); valueOfSwitch.getEntries().addFirst(entry); } diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/CloneVisitorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/CloneVisitorGenerator.java index 44a7e9f6f..c121bc35d 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/CloneVisitorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/CloneVisitorGenerator.java @@ -4,6 +4,7 @@ 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.CompilationUnitMetaModel; import com.github.javaparser.utils.SeparatedItemStringBuilder; import com.github.javaparser.utils.SourceRoot; import com.github.javaparser.metamodel.BaseNodeMetaModel; @@ -53,7 +54,12 @@ public class CloneVisitorGenerator extends VisitorGenerator { } body.addStatement(builder.toString()); + if(node instanceof CompilationUnitMetaModel) { + body.addStatement("n.getStorage().ifPresent(s -> r.setStorage(s.getPath(), s.getEncoding()));"); + } body.addStatement("r.setComment(comment);"); + body.addStatement("n.getOrphanComments().stream().map(Comment::clone).forEach(r::addOrphanComment);"); + body.addStatement("copyData(n, r);"); body.addStatement("return r;"); } } diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/HashCodeVisitorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/HashCodeVisitorGenerator.java index 554dc8d9d..36556e928 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/HashCodeVisitorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/HashCodeVisitorGenerator.java @@ -11,7 +11,7 @@ import com.github.javaparser.metamodel.PropertyMetaModel; import java.util.List; -import static com.github.javaparser.JavaParser.parseStatement; +import static com.github.javaparser.StaticJavaParser.parseStatement; /** * Generates JavaParser's HashCodeVisitor. diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/NoCommentHashCodeVisitorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/NoCommentHashCodeVisitorGenerator.java index b36d25934..e8a97291b 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/NoCommentHashCodeVisitorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/NoCommentHashCodeVisitorGenerator.java @@ -1,89 +1,89 @@ -/*
- * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
- * Copyright (C) 2011, 2013-2016 The JavaParser Team.
- *
- * This file is part of JavaParser.
- *
- * JavaParser can be used either under the terms of
- * a) the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * b) the terms of the Apache License
- *
- * You should have received a copy of both licenses in LICENCE.LGPL and
- * LICENCE.APACHE. Please refer to those files for details.
- *
- * JavaParser is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- */
-
-package com.github.javaparser.generator.core.visitor;
-
-import static com.github.javaparser.JavaParser.parseStatement;
-
-import java.util.List;
-
-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.metamodel.JavaParserMetaModel;
-import com.github.javaparser.metamodel.PropertyMetaModel;
-import com.github.javaparser.utils.SeparatedItemStringBuilder;
-import com.github.javaparser.utils.SourceRoot;
-
-public class NoCommentHashCodeVisitorGenerator extends VisitorGenerator {
-
- public NoCommentHashCodeVisitorGenerator(SourceRoot sourceRoot) {
- super(sourceRoot, "com.github.javaparser.ast.visitor", "NoCommentHashCodeVisitor", "Integer", "Void", true);
- }
-
- @Override
- protected void generateVisitMethodBody(BaseNodeMetaModel node, MethodDeclaration visitMethod,
- CompilationUnit compilationUnit) {
- visitMethod.getParameters().forEach(p -> p.setFinal(true));
-
- final BlockStmt body = visitMethod.getBody().get();
- body.getStatements().clear();
-
- final SeparatedItemStringBuilder builder = new SeparatedItemStringBuilder("return ", "* 31 +", ";");
- final List<PropertyMetaModel> propertyMetaModels = node.getAllPropertyMetaModels();
- if (node.equals(JavaParserMetaModel.lineCommentMetaModel)
- || node.equals(JavaParserMetaModel.blockCommentMetaModel)
- || node.equals(JavaParserMetaModel.javadocCommentMetaModel) || propertyMetaModels.isEmpty()) {
- builder.append("0");
- } else {
- for (PropertyMetaModel field : propertyMetaModels) {
- final String getter = field.getGetterMethodName() + "()";
- if (field.equals(JavaParserMetaModel.nodeMetaModel.commentPropertyMetaModel)) {
- if (propertyMetaModels.size() == 1) {
- builder.append("0");
- break;
- } else
- continue;
- }
- // Is this field another AST node? Visit it.
- if (field.getNodeReference().isPresent()) {
- if (field.isOptional()) {
- builder.append("(n.%s.isPresent()? n.%s.get().accept(this, arg):0)", getter, getter);
- } else {
- builder.append("(n.%s.accept(this, arg))", getter);
- }
- } else {
- Class<?> type = field.getType();
- if (type.equals(boolean.class)) {
- builder.append("(n.%s?1:0)", getter);
- } else if (type.equals(int.class)) {
- builder.append("n.%s", getter);
- } else {
- builder.append("(n.%s.hashCode())", getter);
- }
- }
- }
- }
- body.addStatement(parseStatement(builder.toString()));
- }
-}
+/* + * Copyright (C) 2007-2010 Júlio Vilmar Gesser. + * Copyright (C) 2011, 2013-2016 The JavaParser Team. + * + * This file is part of JavaParser. + * + * JavaParser can be used either under the terms of + * a) the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * b) the terms of the Apache License + * + * You should have received a copy of both licenses in LICENCE.LGPL and + * LICENCE.APACHE. Please refer to those files for details. + * + * JavaParser is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + */ + +package com.github.javaparser.generator.core.visitor; + +import java.util.List; + +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.metamodel.JavaParserMetaModel; +import com.github.javaparser.metamodel.PropertyMetaModel; +import com.github.javaparser.utils.SeparatedItemStringBuilder; +import com.github.javaparser.utils.SourceRoot; + +import static com.github.javaparser.StaticJavaParser.parseStatement; + +public class NoCommentHashCodeVisitorGenerator extends VisitorGenerator { + + public NoCommentHashCodeVisitorGenerator(SourceRoot sourceRoot) { + super(sourceRoot, "com.github.javaparser.ast.visitor", "NoCommentHashCodeVisitor", "Integer", "Void", true); + } + + @Override + protected void generateVisitMethodBody(BaseNodeMetaModel node, MethodDeclaration visitMethod, + CompilationUnit compilationUnit) { + visitMethod.getParameters().forEach(p -> p.setFinal(true)); + + final BlockStmt body = visitMethod.getBody().get(); + body.getStatements().clear(); + + final SeparatedItemStringBuilder builder = new SeparatedItemStringBuilder("return ", "* 31 +", ";"); + final List<PropertyMetaModel> propertyMetaModels = node.getAllPropertyMetaModels(); + if (node.equals(JavaParserMetaModel.lineCommentMetaModel) + || node.equals(JavaParserMetaModel.blockCommentMetaModel) + || node.equals(JavaParserMetaModel.javadocCommentMetaModel) || propertyMetaModels.isEmpty()) { + builder.append("0"); + } else { + for (PropertyMetaModel field : propertyMetaModels) { + final String getter = field.getGetterMethodName() + "()"; + if (field.equals(JavaParserMetaModel.nodeMetaModel.commentPropertyMetaModel)) { + if (propertyMetaModels.size() == 1) { + builder.append("0"); + break; + } else + continue; + } + // Is this field another AST node? Visit it. + if (field.getNodeReference().isPresent()) { + if (field.isOptional()) { + builder.append("(n.%s.isPresent()? n.%s.get().accept(this, arg):0)", getter, getter); + } else { + builder.append("(n.%s.accept(this, arg))", getter); + } + } else { + Class<?> type = field.getType(); + if (type.equals(boolean.class)) { + builder.append("(n.%s?1:0)", getter); + } else if (type.equals(int.class)) { + builder.append("n.%s", getter); + } else { + builder.append("(n.%s.hashCode())", getter); + } + } + } + } + body.addStatement(parseStatement(builder.toString())); + } +} diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ObjectIdentityEqualsVisitorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ObjectIdentityEqualsVisitorGenerator.java index 3c182fc68..053fd44a0 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ObjectIdentityEqualsVisitorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ObjectIdentityEqualsVisitorGenerator.java @@ -5,11 +5,8 @@ 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.metamodel.PropertyMetaModel; import com.github.javaparser.utils.SourceRoot; -import static com.github.javaparser.utils.CodeGenerationUtils.f; - /** * Generates JavaParser's ObjectIdentityEqualsVisitor. */ diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ObjectIdentityHashCodeVisitorGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ObjectIdentityHashCodeVisitorGenerator.java index 88eb3e739..8e320d3af 100644 --- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ObjectIdentityHashCodeVisitorGenerator.java +++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/visitor/ObjectIdentityHashCodeVisitorGenerator.java @@ -5,14 +5,8 @@ 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.metamodel.PropertyMetaModel; -import com.github.javaparser.utils.SeparatedItemStringBuilder; import com.github.javaparser.utils.SourceRoot; -import java.util.List; - -import static com.github.javaparser.JavaParser.parseStatement; - /** * Generates JavaParser's ObjectIdentityHashCodeVisitor. */ |