Package-level declarations

Types

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

Metadata for an accessor property.

Link copied to clipboard
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
abstract class AnalyzeGraphTask : DefaultTask

Analyzes Metro dependency graphs and produces a comprehensive analysis report.

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

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

Link copied to clipboard
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
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
data class CentralityResult(val centralityScores: List<CentralityScore>)

Result of betweenness centrality analysis.

Link copied to clipboard
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
data class DependencyMetadata(val key: String, val hasDefault: Boolean, val wrapperType: String? = null)

Metadata for a dependency reference.

Link copied to clipboard
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
data class DominatorResult(val dominators: List<DominatorNode>)

Result of dominator analysis.

Link copied to clipboard

Metadata for an extension accessor.

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

Metadata for an extension factory accessor.

Link copied to clipboard
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
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
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
data class FullAnalysisReport(val projectPath: String, val graphs: List<GraphAnalysis>)

Combined analysis report for all graphs in a project.

Link copied to clipboard
abstract class GenerateGraphHtmlTask : DefaultTask

Generates interactive HTML visualizations of Metro dependency graphs using ECharts.

Link copied to clipboard
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

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

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

Metadata for a single dependency graph.

Link copied to clipboard
data class GraphOptimizationStatsMetadata(val bindingsPrunedByShrinking: Int = 0, val classConstructorDirectInvocations: Int = 0, val classConstructorNewInstanceCalls: Int = 0, val providerDirectInvocations: Int = 0, val providerNewInstanceCalls: Int = 0, val shardsGenerated: Int = 0, val shardedSupertypes: Int = 0, val shardedInitFunctions: Int = 0, val providerInlines: Int = 0)

Compiler-collected counters for graph/codegen optimizations.

Link copied to clipboard
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
data class GraphStatsMetadata(val providerFactories: Int = 0, val bindsCallables: Int = 0, val multibindsCallables: Int = 0, val optionalBindings: Int = 0, val accessors: Int = 0, val injectors: Int = 0, val graphExtensionAccessors: Int = 0, val graphExtensionFactories: Int = 0, val includedGraphs: Int = 0, val bindingContainers: Int = 0, val dynamicBindings: Int = 0, val graphPrivateKeys: Int = 0, val publishedBindsKeys: Int = 0, val populatedKeys: Int = 0, val validatedKeys: Int = 0, val reachableKeys: Int = 0, val deferredKeys: Int = 0, val unusedInputs: Int = 0, val providerProperties: Int = 0, val scopedProviderProperties: Int = 0, val shards: Int = 0, val optimizations: GraphOptimizationStatsMetadata = GraphOptimizationStatsMetadata())

Compiler-collected counters for a graph.

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

Metadata for an injector function.

Link copied to clipboard
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
data class MultibindingMetadata(val type: String, val allowEmpty: Boolean, val sources: List<String>)

Metadata for multibinding configuration.

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

Metadata for optional wrapper bindings.

Link copied to clipboard
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
data class RootsMetadata(val accessors: List<AccessorMetadata> = emptyList(), val injectors: List<InjectorMetadata> = emptyList())

Root entry points into the graph.