[Lombok K1] Support @Singular annotation

^KT-46959
This commit is contained in:
Dmitriy Novozhilov
2022-08-05 16:51:33 +03:00
parent b311f0b862
commit b32f9dcac2
12 changed files with 374 additions and 3 deletions
@@ -20,6 +20,7 @@ object LombokNames {
val ALL_ARGS_CONSTRUCTOR = FqName("lombok.AllArgsConstructor")
val REQUIRED_ARGS_CONSTRUCTOR = FqName("lombok.RequiredArgsConstructor")
val BUILDER = FqName("lombok.Builder")
val SINGULAR = FqName("lombok.Singular")
val ACCESSORS_ID = ClassId.topLevel(ACCESSORS)
@@ -49,4 +50,67 @@ object LombokNames {
"org.springframework.lang.NonNull"
).map { FqName(it) }.toSet()
private val SUPPORTED_JAVA_COLLECTIONS = setOf(
"java.util.Iterable",
"java.util.Collection",
"java.util.List",
"java.util.Set",
"java.util.SortedSet",
"java.util.NavigableSet",
)
private val SUPPORTED_JAVA_MAPS = setOf(
"java.util.Map",
"java.util.SortedMap",
"java.util.NavigableMap",
)
private val SUPPORTED_KOTLIN_COLLECTIONS = setOf(
"kotlin.collections.Iterable",
"kotlin.collections.MutableIterable",
"kotlin.collections.Collection",
"kotlin.collections.MutableCollection",
"kotlin.collections.List",
"kotlin.collections.MutableList",
"kotlin.collections.Set",
"kotlin.collections.MutableSet",
)
private val SUPPORTED_KOTLIN_MAPS = setOf(
"kotlin.collections.Map",
"kotlin.collections.MutableMap",
)
private val SUPPORTED_COLLECTIONS = SUPPORTED_JAVA_COLLECTIONS + SUPPORTED_KOTLIN_COLLECTIONS
private val SUPPORTED_MAPS = SUPPORTED_JAVA_MAPS + SUPPORTED_KOTLIN_MAPS
private val SUPPORTED_COLLECTIONS_WITH_GUAVA = SUPPORTED_COLLECTIONS + setOf(
"com.google.common.collect.ImmutableCollection",
"com.google.common.collect.ImmutableList",
"com.google.common.collect.ImmutableSet",
"com.google.common.collect.ImmutableSortedSet",
)
private val SUPPORTED_MAPS_WITH_GUAVA = SUPPORTED_MAPS + setOf(
"com.google.common.collect.ImmutableMap",
"com.google.common.collect.ImmutableBiMap",
"com.google.common.collect.ImmutableSortedMap",
"com.google.common.collect.ImmutableTable",
)
fun getSupportedCollectionsForSingular(includeGuava: Boolean): Set<String> {
return if (includeGuava) {
SUPPORTED_COLLECTIONS_WITH_GUAVA
} else {
SUPPORTED_COLLECTIONS
}
}
fun getSupportedMapsForSingular(includeGuava: Boolean): Set<String> {
return if (includeGuava) {
SUPPORTED_MAPS_WITH_GUAVA
} else {
SUPPORTED_MAPS
}
}
}