[Gradle] Implement IdeaKotlinProjectArtifactDependency.Resolver.composite

KT-55112
This commit is contained in:
Sebastian Sellmair
2022-11-25 12:54:56 +01:00
committed by Space Team
parent 273f8a8434
commit 2c55d2cea3
@@ -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?>): Resolver =
CompositeProjectArtifactDependencyResolver(resolvers.filterNotNull())
}
}
@@ -47,3 +54,11 @@ private class DefaultProjectArtifactDependencyResolver(
)
}
}
private class CompositeProjectArtifactDependencyResolver(
private val resolvers: List<IdeaKotlinProjectArtifactDependency.Resolver>
) : IdeaKotlinProjectArtifactDependency.Resolver {
override fun resolve(dependency: IdeaKotlinProjectArtifactDependency): IdeaKotlinSourceDependency? {
return resolvers.firstNotNullOfOrNull { resolver -> resolver.resolve(dependency) }
}
}