jctools/0001-Javaparser-API.patch
2020-07-28 10:55:00 +01:00

326 lines
16 KiB
Diff

From 19806373f6ac4babbbb3929870f8b5089e851773 Mon Sep 17 00:00:00 2001
From: Mat Booth <mat.booth@redhat.com>
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 @@
<dependency>
<groupId>com.github.javaparser</groupId>
<artifactId>javaparser-core</artifactId>
- <version>3.3.0</version>
+ <version>3.14.2</version>
</dependency>
</dependencies>
</project>
\ 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<Modifier> 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<Modifier> 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<Void> {
}
@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<Void> {
}
@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<Void> {
}
@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<Void> {
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