File Complexity Overall
  • There are 445 files with units, with 43,124 lines of code.
    • 2 very complex files (McCabe index sum 251+; 2,200 lines of code)
    • 3 complex files (McCabe index sum 126-250; 3,060 lines of code)
    • 23 medium complex files (McCabe index sum 51-125; 8,467 lines of code)
    • 33 slightly complex files (McCabe index sum 26-50; 9,730 lines of code)
    • 384 simple files (McCabe index sum 1-25; 19,667 lines of code)
  • 235 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system5% | 7% | 19% | 22% | 45%
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
java5% | 7% | 19% | 22% | 45%
groovy0% | 0% | 0% | 0% | 100%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
metacat-common-server24% | 0% | 11% | 2% | 61%
metacat-thrift0% | 66% | 17% | 0% | 16%
metacat-metadata-mysql0% | 45% | 18% | 28% | 7%
metacat-main0% | 7% | 15% | 42% | 33%
metacat-connector-hive0% | 0% | 37% | 36% | 26%
metacat-common0% | 0% | 22% | 6% | 70%
metacat-connector-polaris0% | 0% | 13% | 6% | 79%
metacat-connector-s30% | 0% | 16% | 29% | 53%
metacat-connector-postgresql0% | 0% | 63% | 0% | 36%
metacat-connector-cassandra0% | 0% | 26% | 26% | 46%
metacat-connector-mysql0% | 0% | 44% | 0% | 55%
metacat-connector-snowflake0% | 0% | 35% | 0% | 64%
metacat-connector-redshift0% | 0% | 51% | 0% | 48%
metacat-connector-jdbc0% | 0% | 0% | 72% | 27%
metacat-client0% | 0% | 0% | 28% | 71%
metacat-connector-druid0% | 0% | 0% | 0% | 100%
metacat-iceberg-dto0% | 0% | 0% | 0% | 100%
metacat-connector-pig0% | 0% | 0% | 0% | 100%
metacat-metadata0% | 0% | 0% | 0% | 100%
metacat-war0% | 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
PartitionParserTokenManager.java
in metacat-common-server/src/main/java/com/netflix/metacat/common/server/partition/parser
1063 28 368 35 179
PartitionParser.java
in metacat-common-server/src/main/java/com/netflix/metacat/common/server/partition/parser
1137 53 254 22 31
CatalogThriftHiveMetastore.java
in metacat-thrift/src/main/java/com/netflix/metacat/thrift
1342 140 212 16 12
TableServiceImpl.java
in metacat-main/src/main/java/com/netflix/metacat/main/services/impl
820 41 179 22 28
MysqlUserMetadataService.java
in metacat-metadata-mysql/src/main/java/com/netflix/metacat/metadata/mysql
898 37 147 16 26
QualifiedName.java
in metacat-common/src/main/java/com/netflix/metacat/common
436 37 114 26 10
DirectSqlGetPartition.java
in metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive/sql
913 22 111 12 18
PostgreSqlTypeConverter.java
in metacat-connector-postgresql/src/main/java/com/netflix/metacat/connector/postgresql
228 3 108 47 74
HiveConnectorTableService.java
in metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive
417 15 97 23 27
ElasticSearchUtilImpl.java
in metacat-main/src/main/java/com/netflix/metacat/main/services/search
561 36 93 17 10
PartitionFilterGenerator.java
in metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive/util
340 25 90 26 33
DefaultConfigImpl.java
in metacat-common-server/src/main/java/com/netflix/metacat/common/server/properties
414 89 89 21 1
HiveConnectorPartitionService.java
in metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive
411 14 84 20 19
MetacatHMSHandler.java
in metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive/metastore
380 26 84 22 12
HiveConnectorInfoConverter.java
in metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive/converters
377 17 72 19 15
MySqlTypeConverter.java
in metacat-connector-mysql/src/main/java/com/netflix/metacat/connector/mysql
170 2 70 41 35
SnowflakeTypeConverter.java
in metacat-connector-snowflake/src/main/java/com/netflix/metacat/connector/snowflake
146 3 67 46 36
PartitionServiceImpl.java
in metacat-main/src/main/java/com/netflix/metacat/main/services/impl
477 22 66 14 16
SimpleCharStream.java
in metacat-common-server/src/main/java/com/netflix/metacat/common/server/partition/parser
355 33 65 18 10
CassandraTypeConverter.java
in metacat-connector-cassandra/src/main/java/com/netflix/metacat/connector/cassandra
198 3 63 32 30
PolarisConnectorTableService.java
in metacat-connector-polaris/src/main/java/com/netflix/metacat/connector/polaris
403 12 63 16 15
ElasticSearchRefresh.java
in metacat-main/src/main/java/com/netflix/metacat/main/services/search
593 24 63 11 12
HiveConvertersImpl.java
in metacat-thrift/src/main/java/com/netflix/metacat/thrift
346 14 62 18 14
PartitionParserEval.java
in metacat-common-server/src/main/java/com/netflix/metacat/common/server/partition/visitor
252 29 62 25 11
RedshiftTypeConverter.java
in metacat-connector-redshift/src/main/java/com/netflix/metacat/connector/redshift
140 3 61 44 30
S3ConnectorPartitionService.java
in metacat-connector-s3/src/main/java/com/netflix/metacat/connector/s3
354 20 56 16 12
MySqlTagService.java
in metacat-metadata-mysql/src/main/java/com/netflix/metacat/metadata/mysql
371 19 56 15 7
TypeSignature.java
in metacat-common/src/main/java/com/netflix/metacat/common/type
185 6 51 28 31
HiveConnectorFastPartitionService.java
in metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive/sql
263 13 49 19 10
MViewServiceImpl.java
in metacat-main/src/main/java/com/netflix/metacat/main/services/impl
396 23 49 12 9
PartitionController.java
in metacat-main/src/main/java/com/netflix/metacat/main/api/v1
1155 24 48 4 5
S3ConnectorInfoConverter.java
in metacat-connector-s3/src/main/java/com/netflix/metacat/connector/s3
283 24 47 17 4
MySqlParentChildRelMetaDataService.java
in metacat-metadata-mysql/src/main/java/com/netflix/metacat/metadata/mysql
388 24 47 12 7
IcebergFilterGenerator.java
in metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive/util
163 17 42 26 7
HiveTypeConverter.java
in metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive/converters
203 7 40 20 17
DirectSqlTable.java
in metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive/sql
387 12 40 10 10
DirectSqlSavePartition.java
in metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive/sql
381 14 40 10 8
EmbeddedHiveClient.java
in metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive/client/embedded
257 26 39 15 5
IcebergTableHandler.java
in metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive/iceberg
312 14 38 12 10
ConnectorManager.java
in metacat-main/src/main/java/com/netflix/metacat/main/manager
227 22 38 17 7
HiveConnectorDatabaseService.java
in metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive
163 8 37 23 8
JdbcConnectorTableService.java
in metacat-connector-jdbc/src/main/java/com/netflix/metacat/connector/jdbc/services
301 14 37 12 8
SNSNotificationServiceImpl.java
in metacat-main/src/main/java/com/netflix/metacat/main/services/notifications/sns
391 14 37 9 6
MetacatHiveClient.java
in metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive/client/thrift
301 26 36 12 3
S3ConnectorTableService.java
in metacat-connector-s3/src/main/java/com/netflix/metacat/connector/s3
221 9 36 16 19
TableDto.java
in metacat-common/src/main/java/com/netflix/metacat/common/dto
170 14 35 21 5
RequestWrapper.java
in metacat-main/src/main/java/com/netflix/metacat/main/api
218 7 35 16 20
PolarisConnectorDatabaseService.java
in metacat-connector-polaris/src/main/java/com/netflix/metacat/connector/polaris
191 8 32 17 11
MetacatController.java
in metacat-main/src/main/java/com/netflix/metacat/main/api/v1
1013 24 32 3 3
HiveMetastoreClientFactory.java
in metacat-connector-hive/src/main/java/com/netflix/metacat/connector/hive/client/thrift
163 19 31 19 5
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...