From 2c55d2cea3c7e770eeeeafd07966fec113c070e3 Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Fri, 25 Nov 2022 12:54:56 +0100 Subject: [PATCH] [Gradle] Implement IdeaKotlinProjectArtifactDependency.Resolver.composite KT-55112 --- .../tcs/IdeaKotlinProjectArtifactDependency.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactDependency.kt b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactDependency.kt index 5bf93baf096..f2b248a2d31 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactDependency.kt +++ b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinProjectArtifactDependency.kt @@ -21,6 +21,13 @@ data class IdeaKotlinProjectArtifactDependency( fun byName(resolveSourceSetName: (IdeaKotlinProjectArtifactDependency) -> String?): Resolver { return DefaultProjectArtifactDependencyResolver(resolveSourceSetName) } + + fun composite(vararg resolver: Resolver?) = + composite(resolver.toList()) + + fun composite(resolvers: Iterable): Resolver = + CompositeProjectArtifactDependencyResolver(resolvers.filterNotNull()) + } } @@ -47,3 +54,11 @@ private class DefaultProjectArtifactDependencyResolver( ) } } + +private class CompositeProjectArtifactDependencyResolver( + private val resolvers: List +) : IdeaKotlinProjectArtifactDependency.Resolver { + override fun resolve(dependency: IdeaKotlinProjectArtifactDependency): IdeaKotlinSourceDependency? { + return resolvers.firstNotNullOfOrNull { resolver -> resolver.resolve(dependency) } + } +}