Skip to content

Commit 823a70d

Browse files
committed
First use of JavaTemplate#compile
1 parent f9ddc84 commit 823a70d

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ dependencies {
1313
annotationProcessor("org.projectlombok:lombok:latest.release")
1414
testImplementation("org.projectlombok:lombok:latest.release")
1515

16+
annotationProcessor("org.openrewrite:rewrite-templating:latest.integration")
17+
1618
implementation(platform("org.openrewrite:rewrite-bom:${rewriteVersion}"))
1719
implementation("org.openrewrite:rewrite-java")
1820
implementation("org.openrewrite:rewrite-maven")

src/main/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
generated/

src/main/java/org/openrewrite/java/migrate/UseJavaUtilBase64.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import org.openrewrite.java.tree.J;
2424
import org.openrewrite.java.tree.JavaSourceFile;
2525

26+
import java.util.Base64;
27+
2628
public class UseJavaUtilBase64 extends Recipe {
2729
private final String sunPackage;
2830

@@ -64,9 +66,6 @@ protected JavaVisitor<ExecutionContext> getVisitor() {
6466
MethodMatcher newBase64Decoder = new MethodMatcher(sunPackage + ".BASE64Decoder <constructor>()");
6567

6668
return new JavaVisitor<ExecutionContext>() {
67-
final JavaTemplate getEncoderTemplate = JavaTemplate.builder(this::getCursor, "Base64.getEncoder()")
68-
.imports("java.util.Base64")
69-
.build();
7069
final JavaTemplate getDecoderTemplate = JavaTemplate.builder(this::getCursor, "Base64.getDecoder()")
7170
.imports("java.util.Base64")
7271
.build();
@@ -81,7 +80,6 @@ protected JavaVisitor<ExecutionContext> getVisitor() {
8180

8281
@Override
8382
public J visitMethodInvocation(J.MethodInvocation method, ExecutionContext executionContext) {
84-
8583
J.MethodInvocation m = (J.MethodInvocation) super.visitMethodInvocation(method, executionContext);
8684
if (base64EncodeMethod.matches(m) &&
8785
("encode".equals(method.getSimpleName()) || "encodeBuffer".equals(method.getSimpleName()))) {
@@ -118,7 +116,11 @@ public J visitJavaSourceFile(JavaSourceFile cu, ExecutionContext ctx) {
118116
public J visitNewClass(J.NewClass newClass, ExecutionContext ctx) {
119117
J.NewClass c = (J.NewClass) super.visitNewClass(newClass, ctx);
120118
if (newBase64Encoder.matches(c)) {
121-
return c.withTemplate(getEncoderTemplate, c.getCoordinates().replace());
119+
return c.withTemplate(
120+
JavaTemplate.compile(this, "getEncoder",
121+
() -> Base64.getEncoder()).build(),
122+
c.getCoordinates().replace()
123+
);
122124
}
123125
if (newBase64Decoder.matches(newClass)) {
124126
return c.withTemplate(getDecoderTemplate, c.getCoordinates().replace());

0 commit comments

Comments
 (0)