Package-level declarations

Types

Link copied to clipboard
@Serializable
data class AccessorMetadata(val key: String, val isDeferrable: Boolean = false)

Metadata for an accessor property.

Link copied to clipboard
@Serializable
data class AggregatedGraphMetadata(val projectPath: String, val graphCount: Int, val graphs: List<GraphMetadata>)

Aggregated graph metadata for a project, as produced by GenerateGraphMetadataTask.

Link copied to clipboard
@CacheableTask
abstract class AnalyzeGraphTask : DefaultTask

Analyzes Metro dependency graphs and produces a comprehensive analysis report.

Link copied to clipboard
@Serializable
data class AssistedParameterMetadata(val key: String, val name: String)

Metadata for an assisted parameter (injected at call time).

Link copied to clipboard
@Serializable
data class AssistedTargetMetadata(val key: String, val bindingKind: String, val scope: String? = null, val isScoped: Boolean = false, val nameHint: String, val dependencies: List<DependencyMetadata>, val origin: String? = null, val declaration: String? = null, val multibinding: MultibindingMetadata? = null, val optionalWrapper: OptionalWrapperMetadata? = null, val isSynthetic: Boolean = false, val assistedParameters: List<AssistedParameterMetadata> = emptyList())

Metadata for an assisted-inject target binding encapsulated within an Assisted factory. Since assisted-inject targets are not in the main binding graph, their information is exposed through this nested structure on the factory binding.

Link copied to clipboard
Betweenness centrality.
Link copied to clipboard
Link copied to clipboard
@Serializable
data class BindingMetadata(val key: String, val bindingKind: String, val scope: String? = null, val isScoped: Boolean, val nameHint: String, val dependencies: List<DependencyMetadata>, val origin: String? = null, val declaration: String? = null, val multibinding: MultibindingMetadata? = null, val optionalWrapper: OptionalWrapperMetadata? = null, val aliasTarget: String? = null, val isSynthetic: Boolean = false, val assistedTarget: AssistedTargetMetadata? = null)

Metadata for a single binding within a graph.

Link copied to clipboard
@Serializable
data class CentralityResult(val centralityScores: List<CentralityScore>)

Result of betweenness centrality analysis.

Link copied to clipboard
@Serializable
data class CentralityScore(val key: String, val bindingKind: String, val betweennessCentrality: Double, val normalizedCentrality: Double)

Centrality score for a single binding.

Link copied to clipboard
@Serializable
data class DependencyMetadata(val key: String, val hasDefault: Boolean, val wrapperType: String? = null)

Metadata for a dependency reference.

Link copied to clipboard
@Serializable
data class DominatorNode(val key: String, val bindingKind: String, val dominatedCount: Int, val dominatedKeys: List<String>)

A node in the dominator tree with its dominated nodes.

Link copied to clipboard
@Serializable
data class DominatorResult(val dominators: List<DominatorNode>)

Result of dominator analysis.

Link copied to clipboard
@Serializable
data class ExtensionAccessorMetadata(val key: String)

Metadata for an extension accessor.

Link copied to clipboard
@Serializable
data class ExtensionFactoryAccessorMetadata(val key: String, val isSAM: Boolean = false)

Metadata for an extension factory accessor.

Link copied to clipboard
@Serializable
data class ExtensionsMetadata(val accessors: List<ExtensionAccessorMetadata> = emptyList(), val factoryAccessors: List<ExtensionFactoryAccessorMetadata> = emptyList(), val factoriesImplemented: List<String> = emptyList())

Graph extension information.

Link copied to clipboard
@Serializable
data class FanAnalysisResult(val bindings: List<FanScore>, val highFanIn: List<FanScore>, val highFanOut: List<FanScore>, val averageFanIn: Double, val averageFanOut: Double)

Result of fan-in/fan-out analysis.

Link copied to clipboard
@Serializable
data class FanScore(val key: String, val bindingKind: String, val fanIn: Int, val fanOut: Int, val dependents: List<String>, val dependencies: List<String>)

Fan-in and fan-out scores for a single binding.

Link copied to clipboard
@Serializable
data class FullAnalysisReport(val projectPath: String, val graphs: List<GraphAnalysis>)

Combined analysis report for all graphs in a project.

Link copied to clipboard
@CacheableTask
abstract class GenerateGraphHtmlTask : DefaultTask

Generates interactive HTML visualizations of Metro dependency graphs using ECharts.

Link copied to clipboard
@Serializable
data class GraphAnalysis(val graphName: String, val statistics: GraphStatistics, val longestPath: LongestPathResult, val dominator: DominatorResult, val centrality: CentralityResult, val fanAnalysis: FanAnalysisResult, val pathsToRoot: PathsToRootResult = PathsToRootResult("", emptyMap()))

Complete analysis for a single dependency graph.

Link copied to clipboard
class GraphAnalyzer(bindingGraph: BindingGraph)

Performs various graph analysis algorithms on a BindingGraph using Guava graphs.

Link copied to clipboard
@Serializable
data class GraphMetadata(val graph: String, val scopes: List<String>, val aggregationScopes: List<String>, val roots: RootsMetadata? = null, val extensions: ExtensionsMetadata? = null, val bindings: List<BindingMetadata>)

Metadata for a single dependency graph.

Link copied to clipboard
@Serializable
data class GraphStatistics(val totalBindings: Int, val scopedBindings: Int, val unscopedBindings: Int, val bindingsByKind: Map<String, Int>, val averageDependencies: Double, val maxDependencies: Int, val maxDependenciesBinding: String?, val rootBindings: Int, val leafBindings: Int, val multibindingCount: Int, val aliasCount: Int)

Statistics about a dependency graph.

Link copied to clipboard
@Serializable
data class InjectorMetadata(val key: String)

Metadata for an injector function.

Link copied to clipboard
@Serializable
data class LongestPathResult(val longestPathLength: Int, val longestPaths: List<List<String>>, val averagePathLength: Double, val pathLengthDistribution: Map<Int, Int>)

Result of longest path analysis.

Link copied to clipboard
@Serializable
data class MultibindingMetadata(val type: String, val allowEmpty: Boolean, val sources: List<String>)

Metadata for multibinding configuration.

Link copied to clipboard
@Serializable
data class OptionalWrapperMetadata(val wrappedType: String, val allowsAbsent: Boolean, val wrapperKey: String)

Metadata for optional wrapper bindings.

Link copied to clipboard
@Serializable
data class PathsToRootResult(val rootKey: String, val paths: Map<String, List<String>>)

Result of paths-to-root analysis. Contains shortest paths from each node to the graph root.

Link copied to clipboard
@Serializable
data class RootsMetadata(val accessors: List<AccessorMetadata> = emptyList(), val injectors: List<InjectorMetadata> = emptyList())

Root entry points into the graph.