Skip to content

Commit 623c666

Browse files
committed
manage EE9 type in method call expr
Signed-off-by: Olivier Lamy <[email protected]>
1 parent 34fab8c commit 623c666

File tree

1 file changed

+16
-13
lines changed

1 file changed

+16
-13
lines changed

src/main/java/org/eclipse/jetty/toolchain/modifysources/ModifyEE9ToEE8.java

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
1212
import com.github.javaparser.ast.body.ConstructorDeclaration;
1313
import com.github.javaparser.ast.body.FieldDeclaration;
14-
import com.github.javaparser.ast.body.MethodDeclaration;
1514
import com.github.javaparser.ast.body.VariableDeclarator;
1615
import com.github.javaparser.ast.comments.JavadocComment;
1716
import com.github.javaparser.ast.expr.CastExpr;
@@ -34,7 +33,6 @@
3433
import com.github.javaparser.ast.nodeTypes.NodeWithSimpleName;
3534
import com.github.javaparser.ast.nodeTypes.NodeWithType;
3635
import com.github.javaparser.ast.type.ClassOrInterfaceType;
37-
import com.github.javaparser.ast.type.TypeParameter;
3836
import com.github.javaparser.ast.visitor.ModifierVisitor;
3937
import com.github.javaparser.ast.visitor.Visitable;
4038
import com.github.javaparser.utils.SourceRoot;
@@ -259,23 +257,29 @@ public Visitable visit(MethodCallExpr n, Void arg) {
259257
}
260258

261259
if(StringUtils.startsWith(fullString, "EE9") && n.getScope().isPresent()) {
262-
// org.eclipse.jetty.ee9.nested.Response.unwrap(event.getSuppliedResponse())
263260
Expression expression = n.getScope().get();
264261
if(expression.isNameExpr()) {
265262
NameExpr nameExpr = n.getScope().get().asNameExpr();;
266263
String oldExp = nameExpr.getNameAsString();
267264
n.setScope(new NameExpr(oldExp.replaceFirst("EE9", "EE8")));
268265
}
269266
}
267+
replaceMethodCallExpr(n, "Jakarta", "Javax");
268+
replaceMethodCallExpr(n, "EE9", "EE8");
269+
return super.visit(n, arg);
270+
}
270271

271-
if(StringUtils.contains(fullString, "Jakarta") && n.getScope().isPresent()){
272+
273+
private void replaceMethodCallExpr(MethodCallExpr n, String contains, String replace) {
274+
String fullString = n.toString();
275+
if(StringUtils.contains(fullString, contains) && n.getScope().isPresent()){
272276

273277
n.getArguments().stream().filter(node -> node instanceof NodeWithSimpleName)
274278
.map(node -> (NodeWithSimpleName<?>)node)
275-
.filter(nameExpr -> nameExpr.getNameAsString().contains("Jakarta"))
279+
.filter(nameExpr -> nameExpr.getNameAsString().contains(contains))
276280
.forEach(nameExpr -> {
277281
String className = nameExpr.getNameAsString();
278-
nameExpr.setName(className.replace("Jakarta", "Javax"));
282+
nameExpr.setName(className.replace(contains, replace));
279283
});
280284

281285
n.getChildNodes().stream().filter(node -> node instanceof FieldAccessExpr)
@@ -284,28 +288,27 @@ public Visitable visit(MethodCallExpr n, Void arg) {
284288
.map(nameExpr -> (NameExpr)nameExpr.getScope())
285289
.forEach(nameExpr -> {
286290
String fullClassName = nameExpr.getNameAsString();
287-
if(fullClassName.contains("Jakarta")) {
288-
nameExpr.setName(fullClassName.replace("Jakarta", "Javax"));
291+
if(fullClassName.contains(contains)) {
292+
nameExpr.setName(fullClassName.replace(contains, replace));
289293
}
290294
});
291295

292296
n.getChildNodes().stream().filter(node -> node instanceof NameExpr)
293297
.map(node -> (NameExpr)node)
294-
.filter(nameExpr -> nameExpr.getNameAsString().contains("Jakarta"))
298+
.filter(nameExpr -> nameExpr.getNameAsString().contains(contains))
295299
.forEach(nameExpr -> {
296300
String className = nameExpr.getNameAsString();
297-
nameExpr.setName(className.replace("Jakarta", "Javax"));
301+
nameExpr.setName(className.replace(contains, replace));
298302
});
299303

300304
n.getChildNodes().stream().filter(node -> node instanceof ClassExpr)
301305
.map(node -> (ClassExpr)node)
302-
.filter(classExpr -> classExpr.getTypeAsString().contains("Jakarta"))
306+
.filter(classExpr -> classExpr.getTypeAsString().contains(contains))
303307
.forEach(classExpr -> {
304308
String className = classExpr.getTypeAsString();
305-
classExpr.setType(className.replace("Jakarta", "Javax"));
309+
classExpr.setType(className.replace(contains, replace));
306310
});
307311
}
308-
return super.visit(n, arg);
309312
}
310313

311314
@Override

0 commit comments

Comments
 (0)