[Lombok K1] Support @Builder annotation

^KT-46959
This commit is contained in:
Dmitriy Novozhilov
2022-08-05 14:17:20 +03:00
parent 6fde784b55
commit b311f0b862
15 changed files with 338 additions and 7 deletions
@@ -0,0 +1,36 @@
// FIR_IDENTICAL
// FILE: User.java
import lombok.Builder;
import lombok.Data;
@Builder(
builderClassName = "SpecialUserBuilder",
buildMethodName = "execute",
builderMethodName = "createBuilder",
toBuilder = true,
access = AccessLevel.PACKAGE,
setterPrefix = "set"
)
@Data
public class User {
@Builder.Default private int created = 0;
private String name;
private int age;
}
// FILE: test.kt
fun test() {
val userBuilder: User.SpecialUserBuilder = User.createBuilder()
val user = userBuilder
.setCreated(10)
.setName("John")
.setAge(42)
.execute()
}
fun testToBuilder(user: User) {
val userBuilder: User.SpecialUserBuilder = user.toBuilder()
}
@@ -0,0 +1,25 @@
package
public fun </*0*/ T> assertEquals(/*0*/ a: T, /*1*/ b: T): kotlin.Unit
public fun test(): kotlin.Unit
public fun testToBuilder(/*0*/ user: User): kotlin.Unit
@lombok.Builder(access = AccessLevel.PACKAGE, buildMethodName = "execute", builderClassName = "SpecialUserBuilder", builderMethodName = "createBuilder", setterPrefix = "set", toBuilder = true) @lombok.Data public open class User {
public constructor User()
private final var age: kotlin.Int
@lombok.Builder.Default private final var created: kotlin.Int
private final var name: kotlin.String!
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open /*synthesized*/ fun getAge(): kotlin.Int
public open /*synthesized*/ fun getCreated(): kotlin.Int
public open /*synthesized*/ fun getName(): kotlin.String!
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open /*synthesized*/ fun setAge(/*0*/ age: kotlin.Int): kotlin.Unit
public open /*synthesized*/ fun setCreated(/*0*/ created: kotlin.Int): kotlin.Unit
public open /*synthesized*/ fun setName(/*0*/ name: kotlin.String!): kotlin.Unit
public/*package*/ final /*synthesized*/ fun toBuilder(): User.SpecialUserBuilder
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
// Static members
public/*package*/ final /*synthesized*/ fun createBuilder(): User.SpecialUserBuilder
}
+19
View File
@@ -0,0 +1,19 @@
// FILE: User.java
import lombok.Builder;
import lombok.Data;
@Builder
@Data
public class User {
private String name;
}
// FILE: test.kt
fun test() {
val userBuilder: User.SpecialUserBuilder = User.builder()
}
// FILE: lombok.config
lombok.builder.className=Special*Builder
+17
View File
@@ -0,0 +1,17 @@
package
public fun </*0*/ T> assertEquals(/*0*/ a: T, /*1*/ b: T): kotlin.Unit
public fun test(): kotlin.Unit
@lombok.Builder @lombok.Data public open class User {
public constructor User()
private final var name: kotlin.String!
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open /*synthesized*/ fun getName(): kotlin.String!
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open /*synthesized*/ fun setName(/*0*/ name: kotlin.String!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
// Static members
public final /*synthesized*/ fun builder(): User.SpecialUserBuilder
}