File Complexity Overall
  • There are 142 files with units, with 10,516 lines of code.
    • 0 very complex files (McCabe index sum 251+; 0 lines of code)
    • 0 complex files (McCabe index sum 126-250; 0 lines of code)
    • 5 medium complex files (McCabe index sum 51-125; 1,509 lines of code)
    • 19 slightly complex files (McCabe index sum 26-50; 3,396 lines of code)
    • 118 simple files (McCabe index sum 1-25; 5,611 lines of code)
  • 86 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system0% | 0% | 14% | 32% | 53%
Legend:
251+
126-250
51-125
26-50
1-25


explore: grouped by folders | grouped by complexity
File Complexity per Extension
251+
126-250
51-125
26-50
1-25
java0% | 0% | 14% | 32% | 53%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
governator-legacy0% | 0% | 21% | 31% | 47%
governator-core0% | 0% | 8% | 24% | 66%
governator-archaius0% | 0% | 0% | 100% | 0%
governator-jersey0% | 0% | 0% | 67% | 32%
governator-jetty0% | 0% | 0% | 58% | 41%
governator-commons-cli0% | 0% | 0% | 78% | 21%
governator-providers0% | 0% | 0% | 0% | 100%
governator-servlet0% | 0% | 0% | 0% | 100%
buildSrc0% | 0% | 0% | 0% | 100%
Most Complex Files (Top 50)

The McCabe index of a file grows with its size: per 100 lines tells a large but plain file from a dense one, and most complex unit whether the complexity sits in one unit or is spread over many.

File# lines# unitsMcCabe index
(sum)
per 100
lines
most complex
unit
LifecycleMethods.java
in governator-legacy/src/main/java/com/netflix/governator/lifecycle
308 16 60 19 12
BootstrapBinder.java
in governator-legacy/src/main/java/com/netflix/governator/guice
295 52 57 19 4
PreDestroyMonitor.java
in governator-core/src/main/java/com/netflix/governator/internal
305 28 56 18 6
LifecycleInjectorBuilderImpl.java
in governator-legacy/src/main/java/com/netflix/governator/guice
310 42 54 17 3
InternalAutoBindModule.java
in governator-legacy/src/main/java/com/netflix/governator/guice
291 14 52 18 10
ScanningModuleBuilder.java
in governator-core/src/main/java/com/netflix/governator
165 13 40 24 11
GovernatorComponentProviderFactory.java
in governator-jersey/src/main/java/com/netflix/governator/guice/jersey
198 19 40 20 6
AnnotationFinder.java
in governator-legacy/src/main/java/com/netflix/governator/lifecycle
186 14 40 22 18
ModuleListBuilder.java
in governator-legacy/src/main/java/com/netflix/governator/guice
213 13 39 18 11
LifecycleManager.java
in governator-legacy/src/main/java/com/netflix/governator/lifecycle
248 19 39 16 9
LifecycleInjector.java
in governator-legacy/src/main/java/com/netflix/governator/guice
315 14 38 12 12
Governator.java
in governator-core/src/main/java/com/netflix/governator
157 24 34 22 2
DelegatingLifecycleInjectorBuilder.java
in governator-legacy/src/main/java/com/netflix/governator/guice
192 33 33 17 1
AutoBindSingletonAnnotatedClassScanner.java
in governator-core/src/main/java/com/netflix/governator
150 8 32 21 10
ArchaiusConfigurationProvider.java
in governator-archaius/src/main/java/com/netflix/governator/configuration
206 22 32 16 10
ClasspathScanner.java
in governator-legacy/src/main/java/com/netflix/governator/lifecycle
157 8 32 20 14
JettyModule.java
in governator-jetty/src/main/java/com/netflix/governator/guice/jetty
195 11 30 15 13
LifecycleModule.java
in governator-core/src/main/java/com/netflix/governator
156 11 30 19 10
ConfigurationProcessor.java
in governator-legacy/src/main/java/com/netflix/governator/lifecycle
180 4 30 17 16
OptionsModule.java
in governator-commons-cli/src/main/java/com/netflix/governator/commons_cli/modules
187 24 29 16 4
ResourceMapper.java
in governator-legacy/src/main/java/com/netflix/governator/lifecycle
147 9 29 20 11
LifecycleManager.java
in governator-core/src/main/java/com/netflix/governator
121 10 27 22 5
JSR250LifecycleAction.java
in governator-core/src/main/java/com/netflix/governator/internal
101 5 27 27 13
CompositeConfigurationProvider.java
in governator-legacy/src/main/java/com/netflix/governator/configuration
122 11 27 22 3
ServiceLoaderModule.java
in governator-legacy/src/main/java/com/netflix/governator/guice/serviceloader
168 14 23 14 7
InjectorBuilder.java
in governator-core/src/main/java/com/netflix/governator
107 20 22 21 3
ApplicationEventModule.java
in governator-core/src/main/java/com/netflix/governator/event
93 9 21 23 9
ElementsEx.java
in governator-core/src/main/java/com/netflix/governator/internal
188 7 20 11 7
ColumnPrinter.java
in governator-legacy/src/main/java/com/netflix/governator/configuration
127 10 20 16 6
ConcurrentProviders.java
in governator-legacy/src/main/java/com/netflix/governator/guice/concurrent
171 1 20 12 20
PreDestroyLifecycleFeature.java
in governator-core/src/main/java/com/netflix/governator/internal
93 10 19 20 7
FineGrainedLazySingletonScopeImpl.java
in governator-core/src/main/java/com/netflix/governator/guice/lazy
112 6 18 16 9
GuavaApplicationEventModule.java
in governator-core/src/main/java/com/netflix/governator/event/guava
107 13 18 17 3
SafeLifecycleListener.java
in governator-core/src/main/java/com/netflix/governator
76 8 17 22 6
DefaultJettyConfig.java
in governator-jetty/src/main/java/com/netflix/governator/guice/jetty
77 16 16 21 1
LifecycleInjectorCreator.java
in governator-core/src/main/java/com/netflix/governator
132 12 16 12 4
SimpleProvisionMetrics.java
in governator-core/src/main/java/com/netflix/governator
83 13 16 19 2
SystemConfigurationProvider.java
in governator-legacy/src/main/java/com/netflix/governator/configuration
124 11 16 13 2
PropertiesConfigurationProvider.java
in governator-legacy/src/main/java/com/netflix/governator/configuration
128 11 16 13 2
StandaloneRunnerModule.java
in governator-legacy/src/main/java/com/netflix/governator/guice/runner/standalone
125 10 16 13 4
Grapher.java
in governator-legacy/src/main/java/com/netflix/governator/guice
94 10 16 17 5
DelegatingInjector.java
in governator-core/src/main/java/com/netflix/governator
92 15 15 16 1
PostConstructLifecycleFeature.java
in governator-core/src/main/java/com/netflix/governator/internal
72 8 14 19 7
DirectoryClassFilter.java
in governator-core/src/main/java/com/netflix/governator/internal/scanner
60 4 14 23 5
BindingReport.java
in governator-legacy/src/main/java/com/netflix/governator/guice/actions
121 5 14 12 8
LifecycleManagerArguments.java
in governator-legacy/src/main/java/com/netflix/governator/lifecycle
88 14 14 16 1
TypeInspector.java
in governator-core/src/main/java/com/netflix/governator/internal
44 2 13 30 9
ClasspathUrlDecoder.java
in governator-core/src/main/java/com/netflix/governator/internal/scanner
52 2 13 25 9
AdvisedProvider.java
in governator-providers/src/main/java/com/netflix/governator/providers
86 6 12 14 6
AdviceElementImpl.java
in governator-providers/src/main/java/com/netflix/governator/providers
53 9 12 23 4
About This Analysis
  • File complexity is the sum of the McCabe indexes (conditional complexity) of the units (methods, functions...) in a file.
  • Files are classified in five categories based on that sum: 1-25 (simple files), 26-50 (slightly complex files), 51-125 (medium complex files), 126-250 (complex files), 251+ (very complex files). The default bands are five times the unit complexity bands, as a file is a group of units.
  • Only main code files with units are classified. Files without units (languages without unit analysis, or files without functions) have no complexity to measure and are left out rather than counted as simple.
  • A very complex file holds many decisions, which often means it has too many responsibilities: a candidate to split, and a place where changes need more testing.
Learn more...