[Gradle] ExternalTargetApi: Check-in/Document IdeDependencyTransformer
KT-55524
This commit is contained in:
committed by
Space Team
parent
6a38162b45
commit
6e6e2977f9
@@ -46,6 +46,17 @@ public final class org/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolverK
|
|||||||
public static final fun plus (Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver;Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver;)Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver;
|
public static final fun plus (Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver;Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver;)Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract interface class org/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyTransformer {
|
||||||
|
public abstract fun transform (Lorg/jetbrains/kotlin/gradle/plugin/KotlinSourceSet;Ljava/util/Set;)Ljava/util/Set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final class org/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyTransformerKt {
|
||||||
|
public static final fun IdeDependencyTransformer (Ljava/util/List;)Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyTransformer;
|
||||||
|
public static final fun IdeDependencyTransformer ([Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyTransformer;)Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyTransformer;
|
||||||
|
public static final fun plus (Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyTransformer;Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyTransformer;)Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyTransformer;
|
||||||
|
public static final fun withTransformer (Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver;Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyTransformer;)Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver;
|
||||||
|
}
|
||||||
|
|
||||||
public abstract interface class org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImport {
|
public abstract interface class org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImport {
|
||||||
public static final field Companion Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImport$Companion;
|
public static final field Companion Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImport$Companion;
|
||||||
public static fun instance (Lorg/gradle/api/Project;)Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImport;
|
public static fun instance (Lorg/gradle/api/Project;)Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImport;
|
||||||
|
|||||||
+25
-2
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.plugin.ide
|
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.idea.tcs.IdeaKotlinDependency
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||||
|
|
||||||
@@ -16,24 +17,46 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
|||||||
*
|
*
|
||||||
* Transformations can be scheduled in different phases see: [IdeMultiplatformImport.DependencyTransformationPhase]
|
* Transformations can be scheduled in different phases see: [IdeMultiplatformImport.DependencyTransformationPhase]
|
||||||
*/
|
*/
|
||||||
|
@ExternalKotlinTargetApi
|
||||||
fun interface IdeDependencyTransformer {
|
fun interface IdeDependencyTransformer {
|
||||||
fun transform(sourceSet: KotlinSourceSet, dependencies: Set<IdeaKotlinDependency>): Set<IdeaKotlinDependency>
|
fun transform(sourceSet: KotlinSourceSet, dependencies: Set<IdeaKotlinDependency>): Set<IdeaKotlinDependency>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a [IdeDependencyResolver] which will invoke the given [transformer] right after resolving the dependencies from the
|
||||||
|
* receiver.
|
||||||
|
*/
|
||||||
|
@ExternalKotlinTargetApi
|
||||||
fun IdeDependencyResolver.withTransformer(transformer: IdeDependencyTransformer) = IdeDependencyResolver { sourceSet ->
|
fun IdeDependencyResolver.withTransformer(transformer: IdeDependencyTransformer) = IdeDependencyResolver { sourceSet ->
|
||||||
transformer.transform(sourceSet, this@withTransformer.resolve(sourceSet))
|
transformer.transform(sourceSet, this@withTransformer.resolve(sourceSet))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a composite [IdeDependencyTransformer]
|
||||||
|
* `null` instances will just be ignored.
|
||||||
|
* The transformers will be invoked in the same order as specified to this function.
|
||||||
|
*/
|
||||||
|
@ExternalKotlinTargetApi
|
||||||
fun IdeDependencyTransformer(
|
fun IdeDependencyTransformer(
|
||||||
transformers: List<IdeDependencyTransformer?>
|
transformers: List<IdeDependencyTransformer?>
|
||||||
): IdeDependencyTransformer = IdeCompositeDependencyTransformer(transformers.filterNotNull())
|
): IdeDependencyTransformer = IdeCompositeDependencyTransformer(transformers.filterNotNull())
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a composite [IdeDependencyTransformer]
|
||||||
|
* `null` instances will just be ignored.
|
||||||
|
* The transformers will be invoked in the same order as specified to this function.
|
||||||
|
*/
|
||||||
|
@ExternalKotlinTargetApi
|
||||||
fun IdeDependencyTransformer(
|
fun IdeDependencyTransformer(
|
||||||
vararg transformers: IdeDependencyTransformer?
|
vararg transformers: IdeDependencyTransformer?
|
||||||
): IdeDependencyTransformer = IdeDependencyTransformer(transformers.toList())
|
): IdeDependencyTransformer = IdeDependencyTransformer(transformers.toList())
|
||||||
|
|
||||||
operator fun IdeDependencyTransformer.plus(other: IdeDependencyTransformer):
|
/**
|
||||||
IdeDependencyTransformer {
|
* Combines two [IdeDependencyResolver] into a single instance:
|
||||||
|
* This function will flatten the composite if either receiver or [other] transformer are already composite instances
|
||||||
|
*/
|
||||||
|
@ExternalKotlinTargetApi
|
||||||
|
operator fun IdeDependencyTransformer.plus(other: IdeDependencyTransformer): IdeDependencyTransformer {
|
||||||
if (this is IdeCompositeDependencyTransformer && other is IdeCompositeDependencyTransformer) {
|
if (this is IdeCompositeDependencyTransformer && other is IdeCompositeDependencyTransformer) {
|
||||||
return IdeCompositeDependencyTransformer(this.transformers + other.transformers)
|
return IdeCompositeDependencyTransformer(this.transformers + other.transformers)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user