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
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)

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, val isAssisted: Boolean = false)

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.