name.remal.gradle_plugins.dsl.extensions.java.lang.Class.kt Maven / Gradle / Ivy
package name.remal.gradle_plugins.dsl.extensions
import groovy.lang.Closure
import groovy.lang.MetaClass
import name.remal.lambda.Function1
import name.remal.lambda.VoidFunction1
import name.remal.uncheckedCast
import org.codehaus.groovy.runtime.DefaultGroovyMethods
import org.gradle.api.Action
import org.gradle.api.internal.GeneratedSubclass
import java.util.function.Consumer
import java.util.function.Function as JFunction
import kotlin.Function1 as KFunction1
import kotlin.reflect.KFunction1 as KReflectFunction1
val Class<*>.groovyMetaClass: MetaClass get() = DefaultGroovyMethods.getMetaClass(this)
val Class<*>.canBeConfigurer: Boolean
get() = Action::class.java.isAssignableFrom(this)
|| Closure::class.java.isAssignableFrom(this)
|| Consumer::class.java.isAssignableFrom(this)
|| JFunction::class.java.isAssignableFrom(this)
|| KFunction1::class.java.isAssignableFrom(this)
|| KReflectFunction1::class.java.isAssignableFrom(this)
|| Function1::class.java.isAssignableFrom(this)
|| VoidFunction1::class.java.isAssignableFrom(this)
fun Class.unwrapGradleGenerated(): Class {
var clazz: Class<*> = this
while (GeneratedSubclass::class.java.isAssignableFrom(clazz)) {
clazz = clazz.superclass
}
return clazz.uncheckedCast()
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy