[Gradle] ExternalTargetApi: Check-in/Document IdeDependencyEffect

KT-55524
This commit is contained in:
Sebastian Sellmair
2023-04-19 14:14:38 +02:00
committed by Space Team
parent 55cc2e5e42
commit 9978906f6f
2 changed files with 15 additions and 0 deletions
@@ -1,3 +1,11 @@
public abstract interface class org/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyEffect {
public abstract fun invoke (Lorg/jetbrains/kotlin/gradle/plugin/KotlinSourceSet;Ljava/util/Set;)V
}
public final class org/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyEffectKt {
public static final fun withEffect (Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver;Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyEffect;)Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver;
}
public abstract interface class org/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver {
public static final field Companion Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver$Companion;
public static final field DOCUMENTATION_BINARY_TYPE Ljava/lang/String;
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.gradle.plugin.ide
import org.jetbrains.kotlin.gradle.ExternalKotlinTargetApi
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinDependency
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
@@ -13,10 +14,16 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
* It is not intended/capable of changing the resolution result, but can trigger side-effects, being sure
* that the dependency resolution result is final.
*/
@ExternalKotlinTargetApi
fun interface IdeDependencyEffect {
operator fun invoke(sourceSet: KotlinSourceSet, dependencies: Set<IdeaKotlinDependency>)
}
/**
* Wraps the given [IdeDependencyResolver] with the specified [effect]
* The resulting resolver will first resolve the dependencies and then execute the effect on the result
*/
@ExternalKotlinTargetApi
fun IdeDependencyResolver.withEffect(effect: IdeDependencyEffect) = IdeDependencyResolver { sourceSet ->
this@withEffect.resolve(sourceSet).also { dependencies -> effect(sourceSet, dependencies) }
}