[Gradle] Implement IdeaKotlinProjectArtifactDependency.Resolver
KT-55112
This commit is contained in:
committed by
Space Team
parent
0aad848757
commit
273f8a8434
+29
@@ -14,7 +14,36 @@ data class IdeaKotlinProjectArtifactDependency(
|
|||||||
override val extras: MutableExtras = mutableExtrasOf()
|
override val extras: MutableExtras = mutableExtrasOf()
|
||||||
) : IdeaKotlinDependency {
|
) : IdeaKotlinDependency {
|
||||||
|
|
||||||
|
fun interface Resolver {
|
||||||
|
fun resolve(dependency: IdeaKotlinProjectArtifactDependency): IdeaKotlinSourceDependency?
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
fun byName(resolveSourceSetName: (IdeaKotlinProjectArtifactDependency) -> String?): Resolver {
|
||||||
|
return DefaultProjectArtifactDependencyResolver(resolveSourceSetName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
internal companion object {
|
internal companion object {
|
||||||
const val serialVersionUID = 0L
|
const val serialVersionUID = 0L
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun IdeaKotlinProjectArtifactDependency.resolved(resolver: IdeaKotlinProjectArtifactDependency.Resolver): IdeaKotlinSourceDependency? {
|
||||||
|
return resolver.resolve(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
private class DefaultProjectArtifactDependencyResolver(
|
||||||
|
private val resolveSourceSetName: (IdeaKotlinProjectArtifactDependency) -> String?
|
||||||
|
) : IdeaKotlinProjectArtifactDependency.Resolver {
|
||||||
|
override fun resolve(dependency: IdeaKotlinProjectArtifactDependency): IdeaKotlinSourceDependency? {
|
||||||
|
return IdeaKotlinSourceDependency(
|
||||||
|
type = dependency.type,
|
||||||
|
coordinates = IdeaKotlinSourceCoordinates(
|
||||||
|
project = dependency.coordinates.project,
|
||||||
|
sourceSetName = resolveSourceSetName(dependency) ?: return null
|
||||||
|
),
|
||||||
|
extras = dependency.extras
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user