File Complexity Overall
  • There are 55 files with units, with 4,365 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)
    • 2 medium complex files (McCabe index sum 51-125; 518 lines of code)
    • 10 slightly complex files (McCabe index sum 26-50; 1,757 lines of code)
    • 43 simple files (McCabe index sum 1-25; 2,090 lines of code)
  • 17 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system0% | 0% | 11% | 40% | 47%
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% | 12% | 41% | 46%
js0% | 0% | 0% | 0% | 100%
groovy0% | 0% | 0% | 0% | 100%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
nicobar-core0% | 0% | 17% | 49% | 32%
nicobar-cassandra0% | 0% | 0% | 41% | 58%
nicobar-manager0% | 0% | 0% | 0% | 100%
nicobar-groovy20% | 0% | 0% | 0% | 100%
nicobar-example0% | 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
ScriptModuleSpec.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/archive
201 27 57 28 7
ScriptModuleLoader.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/module
317 21 56 18 19
CassandraArchiveRepository.java
in nicobar-cassandra/src/main/java/com/netflix/nicobar/cassandra
287 18 45 16 11
ScriptCompilerPluginSpec.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/plugin
147 19 39 27 9
JBossModuleLoader.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/module/jboss
179 17 38 21 7
JarScriptArchive.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/archive
175 17 37 21 10
PathScriptArchive.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/archive
147 16 35 24 10
JarArchiveRepository.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/persistence
208 19 35 17 5
JBossModuleUtils.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/module/jboss
183 12 32 17 9
PathArchiveRepository.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/persistence
195 18 32 16 5
ClassPathUtils.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/utils
138 13 29 21 9
GraphUtils.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/module
98 9 26 27 4
SingleFileScriptArchive.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/archive
97 13 24 25 8
ArchiveRepositoryPoller.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/persistence
139 9 23 17 9
ModuleId.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/archive
82 9 22 27 6
__JDKPaths.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/utils
85 6 22 26 8
Groovy2CompilerHelper.java
in nicobar-groovy2/src/main/java/com/netflix/nicobar/groovy2/internal/compile
90 6 18 20 10
ArchiveRepositoryResource.java
in nicobar-manager/src/main/java/com/netflix/nicobar/manager/explorer/resources
110 7 17 15 7
BasicCassandraRepositoryConfig.java
in nicobar-cassandra/src/main/java/com/netflix/nicobar/cassandra
99 15 17 17 3
ScriptModuleUtils.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/module
111 4 15 14 8
HystrixScriptModuleExecutor.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/execution
87 7 14 16 4
HystrixCassandraPut.java
in nicobar-cassandra/src/main/java/com/netflix/nicobar/cassandra/internal
61 3 14 23 11
JBossModuleClassLoader.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/module/jboss
67 7 11 16 3
CassandraGatewayImpl.java
in nicobar-cassandra/src/main/java/com/netflix/nicobar/cassandra
64 11 11 17 1
Groovy2Compiler.java
in nicobar-groovy2/src/main/java/com/netflix/nicobar/groovy2/internal/compile
70 4 10 14 5
GsonScriptModuleSpecSerializer.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/archive
65 9 10 15 2
GsonMessageBodyHandler.java
in nicobar-manager/src/main/java/com/netflix/nicobar/manager/rest
75 6 9 12 2
ArchiveRepositoriesResource.java
in nicobar-manager/src/main/java/com/netflix/nicobar/manager/explorer/resources
71 5 7 10 2
JBossScriptModule.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/module/jboss
49 6 6 12 1
AbstractCassandraHystrixCommand.java
in nicobar-cassandra/src/main/java/com/netflix/nicobar/cassandra/internal
28 3 6 21 4
RepositorySummary.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/persistence
25 5 5 20 1
ArchiveSummary.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/persistence
30 5 5 17 1
repository_view.js
in nicobar-manager/src/main/resources/scriptmanager
42 5 5 12 1
HystrixCassandraGetRow.java
in nicobar-cassandra/src/main/java/com/netflix/nicobar/cassandra/internal
35 4 5 14 2
HystrixCassandraGetRowsByKeys.java
in nicobar-cassandra/src/main/java/com/netflix/nicobar/cassandra/internal
31 3 4 13 2
ExampleResourceLocator.java
in nicobar-example/src/main/java/com/netflix/nicobar/example/groovy2
22 2 4 18 2
Groovy2PluginUtils.java
in nicobar-groovy2/src/main/java/com/netflix/nicobar/groovy2/utils
26 1 3 12 3
BytecodeLoader.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/internal/compile
42 1 3 7 3
repository_list.js
in nicobar-manager/src/main/resources/scriptmanager
32 3 3 9 1
HystrixCassandraGetRowsByQuery.java
in nicobar-cassandra/src/main/java/com/netflix/nicobar/cassandra/internal
28 3 3 11 1
HystrixCassandraDeleteColumns.java
in nicobar-cassandra/src/main/java/com/netflix/nicobar/cassandra/internal
30 2 3 10 2
HystrixCassandraDeleteRow.java
in nicobar-cassandra/src/main/java/com/netflix/nicobar/cassandra/internal
27 3 3 11 1
GroovyModuleLoaderExample.java
in nicobar-example/src/main/java/com/netflix/nicobar/example/groovy2
73 3 3 4 1
Groovy2CompilerPlugin.java
in nicobar-groovy2/src/main/java/com/netflix/nicobar/groovy2/plugin
16 2 2 13 1
BaseScriptModuleListener.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/module
11 2 2 18 1
ScriptCompilationException.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/compile
10 2 2 20 1
ScriptModuleExecutionCommand.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/execution
24 2 2 8 1
ScriptManagerExplorer.java
in nicobar-manager/src/main/java/com/netflix/nicobar/manager/explorer
20 2 2 10 1
BytecodeLoadingPlugin.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/plugin
13 1 1 8 1
TestCompilerPlugin.java
in nicobar-core/src/main/java/com/netflix/nicobar/core/plugin
13 1 1 8 1
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...