Is there a way to combine a defined set of extensi...
# plugin-development
t
Is there a way to combine a defined set of extension properties into
ListProperty
ignoring non-configured `Provider`s? So far
ListProperty
complains that provider does not have value configured. Example of what I want to do:
Copy code
val listOfString = objects.listProperty<String>()
val firstProvider = objects.property<String>()
val secondProvider = objects.property<String>().convention("two")
listOfString.add(firstProvider)
listOfString.add(secondProvider)

logger.warn("ZZZ: ${listOfString.get()}")
So far I've come up with hacky way of having two
ListProperty
where for first one empty providers will return some object via
.orElse(EMPTY)
which will be filtered in the second
ListProperty
. But maybe there is a better way 🤔
j
logger is running in config phase?
m
Gradle 8.7 provides append/appendAll methods: https://docs.gradle.org/current/release-notes.html#build-authoring-improvements. Before that you can do something like
listProperty.addAll(firstProvider.map { listOf(it) }.orElse(emptyList()))
🤔 1