// WITH_STDLIB // FULL_JDK // FILE: User.java import lombok.Builder; import lombok.Data; import lombok.Singular; @Builder @Data public class User { @Singular private java.util.Map numbers; @Singular private java.util.List statuses; } // FILE: Other.java import lombok.Builder; import lombok.Data; import lombok.Singular; @Builder(setterPrefix = "with") @Data public class Other { @Singular("singleSome") private java.util.List some; @Singular private java.lang.Iterable names; } // FILE: test.kt fun box(): String { val userBuilder = User.builder() .status("wrong") .clearStatuses() .status("hello") .statuses(listOf("world", "!")) .number("1", 1) .numbers(mapOf("2" to 2, "3" to 3)) val user = userBuilder.build() val other = Other.builder() .withSingleSome(1) .withSome(listOf(2, 3)) .withName("John") .withNames(setOf("Peter")) .build() val expectedNumbers = mapOf("1" to 1, "2" to 2, "3" to 3) val expectedStatuses = listOf("hello", "world", "!") val expectedSome = listOf(1, 2, 3) val expectedNames = listOf("John", "Peter") return if ( user.numbers == expectedNumbers && user.statuses == expectedStatuses && other.some == expectedSome && other.names == expectedNames ) { "OK" } else { "Error: $user" } }