All Downloads are FREE. Search and download functionalities are using the official Maven repository.

name.remal.gradle_plugins.dsl.extensions.org.gradle.api.artifacts.ResolvedDependency.kt Maven / Gradle / Ivy

There is a newer version: 1.9.2
Show newest version
package name.remal.gradle_plugins.dsl.extensions

import name.remal.gradle_plugins.dsl.utils.DependencyNotation
import name.remal.gradle_plugins.dsl.utils.DependencyNotationMatcher
import name.remal.nullIf
import org.gradle.api.artifacts.DependencyArtifact
import org.gradle.api.artifacts.ResolvedDependency

val ResolvedDependency.classifier: String?
    get() {
        return moduleArtifacts.singleOrNull()?.classifier
    }

val ResolvedDependency.extension: String?
    get() {
        return moduleArtifacts.singleOrNull()?.extension
    }

val ResolvedDependency.notation
    get() = DependencyNotation(
        group = moduleGroup,
        module = moduleName,
        version = moduleVersion,
        classifier = classifier,
        extension = extension.nullIf { this == DependencyArtifact.DEFAULT_TYPE }
    )


private fun ResolvedDependency.collectAllChildren(collection: MutableSet) {
    children.forEach {
        if (collection.add(it)) {
            it.collectAllChildren(collection)
        }
    }
}

val ResolvedDependency.allChildren: Set get() = mutableSetOf().also { collectAllChildren(it) }


fun DependencyNotationMatcher.matches(dependency: ResolvedDependency) = matches(dependency.notation)
fun DependencyNotationMatcher.notMatches(dependency: ResolvedDependency) = !matches(dependency)




© 2015 - 2024 Weber Informatics LLC | Privacy Policy