From 19806373f6ac4babbbb3929870f8b5089e851773 Mon Sep 17 00:00:00 2001 From: Mat Booth Date: Tue, 28 Jul 2020 10:42:10 +0100 Subject: [PATCH] Javaparser API --- jctools-build/pom.xml | 2 +- .../JavaParsingAtomicArrayQueueGenerator.java | 18 +++++------ ...JavaParsingAtomicLinkedQueueGenerator.java | 28 ++++++++-------- .../jctools/queues/atomic/TraceVisitor.java | 32 +++++++++---------- 4 files changed, 40 insertions(+), 40 deletions(-) diff --git a/jctools-build/pom.xml b/jctools-build/pom.xml index fac435c..8b1d820 100644 --- a/jctools-build/pom.xml +++ b/jctools-build/pom.xml @@ -17,7 +17,7 @@ com.github.javaparser javaparser-core - 3.3.0 + 3.14.2 \ No newline at end of file diff --git a/jctools-build/src/main/java/org/jctools/queues/atomic/JavaParsingAtomicArrayQueueGenerator.java b/jctools-build/src/main/java/org/jctools/queues/atomic/JavaParsingAtomicArrayQueueGenerator.java index 3708b8a..9602eca 100644 --- a/jctools-build/src/main/java/org/jctools/queues/atomic/JavaParsingAtomicArrayQueueGenerator.java +++ b/jctools-build/src/main/java/org/jctools/queues/atomic/JavaParsingAtomicArrayQueueGenerator.java @@ -12,6 +12,7 @@ import com.github.javaparser.JavaParser; import com.github.javaparser.ast.CompilationUnit; import com.github.javaparser.ast.ImportDeclaration; import com.github.javaparser.ast.Modifier; +import com.github.javaparser.ast.Modifier.Keyword; import com.github.javaparser.ast.Node; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.PackageDeclaration; @@ -87,7 +88,7 @@ public final class JavaParsingAtomicArrayQueueGenerator extends VoidVisitorAdapt } if (!node.getMethodsByName("failFastOffer").isEmpty()) { - MethodDeclaration deprecatedMethodRedirect = node.addMethod("weakOffer", Modifier.PUBLIC); + MethodDeclaration deprecatedMethodRedirect = node.addMethod("weakOffer", Keyword.PUBLIC); patchMethodAsDepreciatedRedirector(deprecatedMethodRedirect, "failFastOffer", PrimitiveType.intType(), new Parameter(classType("E"), "e")); } @@ -147,7 +148,7 @@ public final class JavaParsingAtomicArrayQueueGenerator extends VoidVisitorAdapt // Remove all static fields for (FieldDeclaration field : node.getFields()) { - if (field.getModifiers().contains(Modifier.STATIC)) { + if (field.getModifiers().contains(Modifier.staticModifier())) { field.remove(); continue; } @@ -221,7 +222,7 @@ public final class JavaParsingAtomicArrayQueueGenerator extends VoidVisitorAdapt String className = n.getNameAsString(); for (FieldDeclaration field : n.getFields()) { - if (field.getModifiers().contains(Modifier.STATIC)) { + if (field.getModifiers().contains(Keyword.STATIC)) { // Ignore statics continue; } @@ -266,7 +267,7 @@ public final class JavaParsingAtomicArrayQueueGenerator extends VoidVisitorAdapt } if (usesFieldUpdater) { - field.addModifier(Modifier.VOLATILE); + field.addModifier(Keyword.VOLATILE); } } } @@ -346,12 +347,11 @@ public final class JavaParsingAtomicArrayQueueGenerator extends VoidVisitorAdapt * @return */ private static FieldDeclaration fieldDeclarationWithInitialiser(Type type, String name, Expression initializer, - Modifier... modifiers) { + Keyword... modifiers) { FieldDeclaration fieldDeclaration = new FieldDeclaration(); VariableDeclarator variable = new VariableDeclarator(type, name, initializer); fieldDeclaration.getVariables().add(variable); - EnumSet modifierSet = EnumSet.copyOf(Arrays.asList(modifiers)); - fieldDeclaration.setModifiers(modifierSet); + fieldDeclaration.setModifiers(modifiers); return fieldDeclaration; } @@ -368,7 +368,7 @@ public final class JavaParsingAtomicArrayQueueGenerator extends VoidVisitorAdapt ClassOrInterfaceType type = simpleParametricType("AtomicLongFieldUpdater", className); FieldDeclaration newField = fieldDeclarationWithInitialiser(type, fieldUpdaterFieldName(variableName), - initializer, Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL); + initializer, Keyword.PRIVATE, Keyword.STATIC, Keyword.FINAL); return newField; } @@ -536,7 +536,7 @@ public final class JavaParsingAtomicArrayQueueGenerator extends VoidVisitorAdapt for (int i = 1; i < args.length; i++) { File file = new File(args[i]); System.out.println("Processing " + file); - CompilationUnit cu = JavaParser.parse(file); + CompilationUnit cu = new JavaParser().parse(file).getResult().get(); new JavaParsingAtomicArrayQueueGenerator(file.getName()).visit(cu, null); organiseImports(cu); diff --git a/jctools-build/src/main/java/org/jctools/queues/atomic/JavaParsingAtomicLinkedQueueGenerator.java b/jctools-build/src/main/java/org/jctools/queues/atomic/JavaParsingAtomicLinkedQueueGenerator.java index 1a195b4..77fab49 100644 --- a/jctools-build/src/main/java/org/jctools/queues/atomic/JavaParsingAtomicLinkedQueueGenerator.java +++ b/jctools-build/src/main/java/org/jctools/queues/atomic/JavaParsingAtomicLinkedQueueGenerator.java @@ -12,6 +12,7 @@ import com.github.javaparser.JavaParser; import com.github.javaparser.ast.CompilationUnit; import com.github.javaparser.ast.ImportDeclaration; import com.github.javaparser.ast.Modifier; +import com.github.javaparser.ast.Modifier.Keyword; import com.github.javaparser.ast.Node; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.PackageDeclaration; @@ -88,8 +89,8 @@ public final class JavaParsingAtomicLinkedQueueGenerator extends VoidVisitorAdap /* * Special case for MPSC */ - node.removeModifier(Modifier.ABSTRACT); - node.addModifier(Modifier.FINAL); + node.removeModifier(Keyword.ABSTRACT); + node.addModifier(Keyword.FINAL); } if (isCommentPresent(node, GEN_DIRECTIVE_CLASS_CONTAINS_ORDERED_FIELD_ACCESSORS)) { @@ -118,8 +119,8 @@ public final class JavaParsingAtomicLinkedQueueGenerator extends VoidVisitorAdap n.setName(translateQueueName(n.getNameAsString())); if (MPSC_LINKED_ATOMIC_QUEUE_NAME.equals(n.getNameAsString())) { // Special case for MPSC because the Unsafe variant has a static factory method and a protected constructor. - n.setModifier(Modifier.PROTECTED, false); - n.setModifier(Modifier.PUBLIC, true); + n.setModifier(Keyword.PROTECTED, false); + n.setModifier(Keyword.PUBLIC, true); } } @@ -177,7 +178,7 @@ public final class JavaParsingAtomicLinkedQueueGenerator extends VoidVisitorAdap // Remove all static fields for (FieldDeclaration field : node.getFields()) { - if (field.getModifiers().contains(Modifier.STATIC)) { + if (field.getModifiers().contains(Modifier.staticModifier())) { field.remove(); continue; } @@ -222,7 +223,7 @@ public final class JavaParsingAtomicLinkedQueueGenerator extends VoidVisitorAdap String className = n.getNameAsString(); for (FieldDeclaration field : n.getFields()) { - if (field.getModifiers().contains(Modifier.STATIC)) { + if (field.getModifiers().contains(Keyword.STATIC)) { // Ignore statics continue; } @@ -269,7 +270,7 @@ public final class JavaParsingAtomicLinkedQueueGenerator extends VoidVisitorAdap usesFieldUpdater = true; String fieldUpdaterFieldName = fieldUpdaterFieldName(variableName); - MethodDeclaration method = n.addMethod("xchgProducerNode", Modifier.PROTECTED, Modifier.FINAL); + MethodDeclaration method = n.addMethod("xchgProducerNode", Keyword.PROTECTED, Keyword.FINAL); method.setType(simpleParametricType("LinkedQueueAtomicNode", "E")); method.addParameter(simpleParametricType("LinkedQueueAtomicNode", "E"), "newValue"); method.setBody(fieldUpdaterGetAndSet(fieldUpdaterFieldName, "newValue")); @@ -285,7 +286,7 @@ public final class JavaParsingAtomicLinkedQueueGenerator extends VoidVisitorAdap } if (usesFieldUpdater) { - field.addModifier(Modifier.VOLATILE); + field.addModifier(Keyword.VOLATILE); } } } @@ -380,12 +381,11 @@ public final class JavaParsingAtomicLinkedQueueGenerator extends VoidVisitorAdap * @return */ private static FieldDeclaration fieldDeclarationWithInitialiser(Type type, String name, Expression initializer, - Modifier... modifiers) { + Keyword... modifiers) { FieldDeclaration fieldDeclaration = new FieldDeclaration(); VariableDeclarator variable = new VariableDeclarator(type, name, initializer); fieldDeclaration.getVariables().add(variable); - EnumSet modifierSet = EnumSet.copyOf(Arrays.asList(modifiers)); - fieldDeclaration.setModifiers(modifierSet); + fieldDeclaration.setModifiers(modifiers); return fieldDeclaration; } @@ -403,7 +403,7 @@ public final class JavaParsingAtomicLinkedQueueGenerator extends VoidVisitorAdap ClassOrInterfaceType type = simpleParametricType("AtomicReferenceFieldUpdater", className, "LinkedQueueAtomicNode"); FieldDeclaration newField = fieldDeclarationWithInitialiser(type, fieldUpdaterFieldName(variableName), - initializer, Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL); + initializer, Keyword.PRIVATE, Keyword.STATIC, Keyword.FINAL); return newField; } @@ -425,7 +425,7 @@ public final class JavaParsingAtomicLinkedQueueGenerator extends VoidVisitorAdap ClassOrInterfaceType type = simpleParametricType("AtomicLongFieldUpdater", className); FieldDeclaration newField = fieldDeclarationWithInitialiser(type, fieldUpdaterFieldName(variableName), - initializer, Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL); + initializer, Keyword.PRIVATE, Keyword.STATIC, Keyword.FINAL); return newField; } @@ -621,7 +621,7 @@ public final class JavaParsingAtomicLinkedQueueGenerator extends VoidVisitorAdap for (int i = 1; i < args.length; i++) { File file = new File(args[i]); System.out.println("Processing " + file); - CompilationUnit cu = JavaParser.parse(file); + CompilationUnit cu = new JavaParser().parse(file).getResult().get(); new JavaParsingAtomicLinkedQueueGenerator(file.getName()).visit(cu, null); organiseImports(cu); diff --git a/jctools-build/src/main/java/org/jctools/queues/atomic/TraceVisitor.java b/jctools-build/src/main/java/org/jctools/queues/atomic/TraceVisitor.java index 7ff87f4..e64cf74 100644 --- a/jctools-build/src/main/java/org/jctools/queues/atomic/TraceVisitor.java +++ b/jctools-build/src/main/java/org/jctools/queues/atomic/TraceVisitor.java @@ -58,11 +58,11 @@ import com.github.javaparser.ast.expr.TypeExpr; import com.github.javaparser.ast.expr.UnaryExpr; import com.github.javaparser.ast.expr.VariableDeclarationExpr; import com.github.javaparser.ast.modules.ModuleDeclaration; -import com.github.javaparser.ast.modules.ModuleExportsStmt; -import com.github.javaparser.ast.modules.ModuleOpensStmt; -import com.github.javaparser.ast.modules.ModuleProvidesStmt; -import com.github.javaparser.ast.modules.ModuleRequiresStmt; -import com.github.javaparser.ast.modules.ModuleUsesStmt; +import com.github.javaparser.ast.modules.ModuleExportsDirective; +import com.github.javaparser.ast.modules.ModuleOpensDirective; +import com.github.javaparser.ast.modules.ModuleProvidesDirective; +import com.github.javaparser.ast.modules.ModuleRequiresDirective; +import com.github.javaparser.ast.modules.ModuleUsesDirective; import com.github.javaparser.ast.stmt.AssertStmt; import com.github.javaparser.ast.stmt.BlockStmt; import com.github.javaparser.ast.stmt.BreakStmt; @@ -72,13 +72,13 @@ import com.github.javaparser.ast.stmt.DoStmt; import com.github.javaparser.ast.stmt.EmptyStmt; import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt; import com.github.javaparser.ast.stmt.ExpressionStmt; +import com.github.javaparser.ast.stmt.ForEachStmt; import com.github.javaparser.ast.stmt.ForStmt; -import com.github.javaparser.ast.stmt.ForeachStmt; import com.github.javaparser.ast.stmt.IfStmt; import com.github.javaparser.ast.stmt.LabeledStmt; import com.github.javaparser.ast.stmt.LocalClassDeclarationStmt; 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.ast.stmt.SynchronizedStmt; import com.github.javaparser.ast.stmt.ThrowStmt; @@ -317,8 +317,8 @@ public final class TraceVisitor extends VoidVisitorAdapter { } @Override - public void visit(ForeachStmt n, Void arg) { - out.println("ForeachStmt: " + (extended ? n : "")); + public void visit(ForEachStmt n, Void arg) { + out.println("ForEachStmt: " + (extended ? n : "")); super.visit(n, arg); } @@ -445,31 +445,31 @@ public final class TraceVisitor extends VoidVisitorAdapter { } @Override - public void visit(ModuleExportsStmt n, Void arg) { + public void visit(ModuleExportsDirective n, Void arg) { out.println("ModuleExportsStmt: " + (extended ? n : "")); super.visit(n, arg); } @Override - public void visit(ModuleOpensStmt n, Void arg) { + public void visit(ModuleOpensDirective n, Void arg) { out.println("ModuleOpensStmt: " + (extended ? n : "")); super.visit(n, arg); } @Override - public void visit(ModuleProvidesStmt n, Void arg) { + public void visit(ModuleProvidesDirective n, Void arg) { out.println("ModuleProvidesStmt: " + (extended ? n : "")); super.visit(n, arg); } @Override - public void visit(ModuleRequiresStmt n, Void arg) { + public void visit(ModuleRequiresDirective n, Void arg) { out.println("ModuleRequiresStmt: " + (extended ? n : "")); super.visit(n, arg); } @Override - public void visit(ModuleUsesStmt n, Void arg) { + public void visit(ModuleUsesDirective n, Void arg) { out.println("ModuleUsesStmt: " + (extended ? n : "")); super.visit(n, arg); } @@ -559,7 +559,7 @@ public final class TraceVisitor extends VoidVisitorAdapter { } @Override - public void visit(SwitchEntryStmt n, Void arg) { + public void visit(SwitchEntry n, Void arg) { out.println("SwitchEntryStmt: " + (extended ? n : "")); super.visit(n, arg); } @@ -665,7 +665,7 @@ public final class TraceVisitor extends VoidVisitorAdapter { public static void main(String[] args) throws Exception { for (String file : args) { System.out.println("Opening " + file); - CompilationUnit cu = JavaParser.parse(new File(file)); + CompilationUnit cu = new JavaParser().parse(new File(file)).getResult().get(); new TraceVisitor(System.out, false).visit(cu, null); System.out.println(); System.out.println(); -- 2.26.2