main.name.remal.gradle_plugins.dsl.extensions.org.gradle.api.tasks.TaskInputs.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gradle-plugins-kotlin-dsl Show documentation
Show all versions of gradle-plugins-kotlin-dsl Show documentation
Remal Gradle plugins: gradle-plugins-kotlin-dsl
The newest version!
package name.remal.gradle_plugins.dsl.extensions
import name.remal.findDeclaredField
import name.remal.gradle_plugins.dsl.utils.getGradleLoggerForCurrentClass
import name.remal.hierarchy
import name.remal.uncheckedCast
import org.gradle.api.tasks.TaskInputs
operator fun TaskInputs.set(propertyName: String, propertyValue: Any?) {
property(propertyName, propertyValue)
}
private const val REGISTERED_FILE_PROPERTIES_FIELD_NAME = "registeredFileProperties"
fun TaskInputs.clearRegisteredFileProperties() {
var isFieldFound = false
javaClass.unwrapGradleGenerated().hierarchy.forEach { clazz ->
val field = clazz.findDeclaredField(REGISTERED_FILE_PROPERTIES_FIELD_NAME) ?: return@forEach
isFieldFound = true
val values = field.makeAccessible().get(this).uncheckedCast>().iterator()
while (values.hasNext()) {
values.next()
values.remove()
}
}
if (!isFieldFound) {
fileLogger.error("Field can't be found in class hierarchy: {}", REGISTERED_FILE_PROPERTIES_FIELD_NAME)
}
}
private val fileLogger = getGradleLoggerForCurrentClass()
© 2015 - 2025 Weber Informatics LLC | Privacy Policy