INNER CODE UNIT · Kotlin
container
iurysza/module-graph · plugin-build/modulegraph/src/main/kotlin/dev/iurysouza/modulegraph/ModuleType.kt:129
val container = getContainer.invoke(manager) as? Iterable<*> ?: return null
container.mapNotNull { plugin ->
if (plugin == null) return@mapNotNull null
val optional = findId.invoke(manager, plugin.javaClass) ?: return@mapNotNull null
val isPresent = optional.javaClass.getMethod("isPresent").invoke(optional) as Boolean
if (!isPresent) return@mapNotNull null
optional.javaClass.getMethod("get").invoke(optional)?.toString()
}.distinct()
} catch (_: ReflectiveOperationException) {
null
} catch (_: ClassCastException) {
null
}
/** @return the "group:name" coordinates of every external dependency declared in this project. */
internal fun Project.externalDependencyCoordinates(): List<String> = runCatching {
configurations.flatMap { configuration ->
configuration.dependencies.filterIsInstance<ExternalModuleDependency>()