name.remal.gradle_plugins.dsl.reflective_project_plugin.info.ActionMethodInfo.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
package name.remal.gradle_plugins.dsl.reflective_project_plugin.info
import name.remal.gradle_plugins.dsl.PluginId
import name.remal.gradle_plugins.dsl.ProjectPluginClass
import org.gradle.util.GradleVersion
import java.lang.reflect.Method
import kotlin.reflect.KFunction
import kotlin.reflect.jvm.javaMethod
data class ActionMethodInfo(
val method: Method,
val isHidden: Boolean = false,
override val order: Int = 0,
override val description: String = "",
override val minGradleVersion: GradleVersion? = null,
override val maxGradleVersion: GradleVersion? = null,
override val requirePluginIds: Set = setOf(),
override val applyPluginIds: Set = setOf(),
override val applyOptionalPluginIds: Set = setOf(),
override val applyPluginClasses: Set = setOf(),
override val applyPluginIdsAtTheEnd: Set = setOf(),
override val applyOptionalPluginIdsAtTheEnd: Set = setOf(),
override val applyPluginClassesAtTheEnd: Set = setOf(),
val createExtensionInfo: CreateExtensionInfo? = null,
val isAfterProjectEvaluation: Boolean = false
) : ActionInfo, Comparable {
constructor(
kFunction: KFunction<*>,
isHidden: Boolean = false,
order: Int = 0,
description: String = "",
minGradleVersion: GradleVersion? = null,
maxGradleVersion: GradleVersion? = null,
requirePluginIds: Set = setOf(),
applyPluginIds: Set = setOf(),
applyOptionalPluginIds: Set = setOf(),
applyPluginClasses: Set = setOf(),
applyPluginIdsAtTheEnd: Set = setOf(),
applyOptionalPluginIdsAtTheEnd: Set = setOf(),
applyPluginClassesAtTheEnd: Set = setOf(),
createExtensionInfo: CreateExtensionInfo? = null,
isAfterProjectEvaluation: Boolean = false
) : this(
method = kFunction.javaMethod ?: throw IllegalArgumentException("$kFunction can't be represented by Java method"),
isHidden = isHidden,
order = order,
description = description,
minGradleVersion = minGradleVersion,
maxGradleVersion = maxGradleVersion,
requirePluginIds = requirePluginIds,
applyPluginIds = applyPluginIds,
applyOptionalPluginIds = applyOptionalPluginIds,
applyPluginClasses = applyPluginClasses,
applyPluginIdsAtTheEnd = applyPluginIdsAtTheEnd,
applyOptionalPluginIdsAtTheEnd = applyOptionalPluginIdsAtTheEnd,
applyPluginClassesAtTheEnd = applyPluginClassesAtTheEnd,
createExtensionInfo = createExtensionInfo,
isAfterProjectEvaluation = isAfterProjectEvaluation
)
override fun compareTo(other: ActionMethodInfo): Int {
super.compareTo(other).let { if (it != 0) return it }
method.declaringClass.name.compareTo(other.method.declaringClass.name).let { if (it != 0) return it }
method.name.compareTo(other.method.name).let { if (it != 0) return it }
method.toString().compareTo(other.method.toString()).let { if (it != 0) return it }
return 0
}
}