diff --git a/src/main/java/org/openrewrite/java/migrate/lombok/LombokValueToRecord.java b/src/main/java/org/openrewrite/java/migrate/lombok/LombokValueToRecord.java index f707a2a829..9b8a5e80a8 100644 --- a/src/main/java/org/openrewrite/java/migrate/lombok/LombokValueToRecord.java +++ b/src/main/java/org/openrewrite/java/migrate/lombok/LombokValueToRecord.java @@ -372,15 +372,21 @@ public J.ClassDeclaration visitClassDeclaration(J.ClassDeclaration cd, Execution classDeclaration = new RemoveAnnotationVisitor(LOMBOK_VALUE_MATCHER).visitClassDeclaration(classDeclaration, ctx); maybeRemoveImport("lombok.Value"); + List mappedModifiers = ListUtils.map(classDeclaration.getModifiers(), modifier -> { + J.Modifier.Type type = modifier.getType(); + if (type == J.Modifier.Type.Static || type == J.Modifier.Type.Final) { + return null; + } + return modifier; + }); + J.ClassDeclaration.Kind kind = classDeclaration.withKind(J.ClassDeclaration.Kind.Type.Record).getPadding().getKind(); + if (mappedModifiers.isEmpty()) { + kind = kind.withPrefix(kind.getPrefix().withWhitespace("")); + } + classDeclaration = classDeclaration - .withKind(J.ClassDeclaration.Kind.Type.Record) - .withModifiers(ListUtils.map(classDeclaration.getModifiers(), modifier -> { - J.Modifier.Type type = modifier.getType(); - if (type == J.Modifier.Type.Static || type == J.Modifier.Type.Final) { - return null; - } - return modifier; - })) + .getPadding().withKind(kind) + .withModifiers(mappedModifiers) .withType(buildRecordType(classDeclaration)) .withBody(classDeclaration.getBody() .withStatements(bodyStatements) diff --git a/src/test/java/org/openrewrite/java/migrate/lombok/LombokValueToRecordTest.java b/src/test/java/org/openrewrite/java/migrate/lombok/LombokValueToRecordTest.java index 01e9296967..7ea609785f 100644 --- a/src/test/java/org/openrewrite/java/migrate/lombok/LombokValueToRecordTest.java +++ b/src/test/java/org/openrewrite/java/migrate/lombok/LombokValueToRecordTest.java @@ -62,7 +62,7 @@ public class A { package example; public record A( - String test) { + String test) { } """ ), @@ -121,9 +121,9 @@ public class Test { """, """ public record Test( - String field1, + String field1, - String field2) { + String field2) { @Override public String toString() { return "Test(" + @@ -166,7 +166,7 @@ public class B { import lombok.Value; public record A( - String test) { + String test) { } @Value @@ -201,14 +201,12 @@ static class B { public class A { record B( - String test) { + String test) { } } """ ) ); - - } @Test @@ -233,7 +231,7 @@ public class A implements Serializable { import java.io.Serializable; public record A( - String test) implements Serializable { + String test) implements Serializable { } """ ) @@ -266,7 +264,7 @@ public class A implements Serializable { @Builder public record A( - String test) implements Serializable { + String test) implements Serializable { } """ ) @@ -289,7 +287,7 @@ public class Foo { """, """ public record Foo( - boolean bar) { + boolean bar) { }""" ), java( @@ -329,9 +327,9 @@ public class Config { """, """ public record Config( - boolean enabled, - Boolean active, - String name) { + boolean enabled, + Boolean active, + String name) { } """ ), @@ -384,7 +382,7 @@ Supplier usingMethodReference() { import java.util.function.Supplier; record A( - String test) { + String test) { } class Using {