File Complexity Overall
  • There are 60 files with units, with 4,404 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)
    • 0 medium complex files (McCabe index sum 51-125; 0 lines of code)
    • 4 slightly complex files (McCabe index sum 26-50; 1,037 lines of code)
    • 56 simple files (McCabe index sum 1-25; 3,367 lines of code)
  • 12 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system0% | 0% | 0% | 23% | 76%
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% | 0% | 23% | 76%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
mantis-connector-kafka0% | 0% | 0% | 28% | 71%
mantis-connector-iceberg0% | 0% | 0% | 30% | 69%
mantis-connector-job0% | 0% | 0% | 24% | 75%
mantis-connector-publish0% | 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
MantisKafkaConsumer.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source
250 27 46 18 9
IcebergWriterStage.java
in mantis-connector-iceberg/src/main/java/io/mantisrx/connector/iceberg/sink/writer
275 20 36 13 11
KafkaSource.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source
299 5 28 9 21
ServerSentEventsSink.java
in mantis-connector-job/src/main/java/io/mantisrx/connector/job/sink
213 20 26 12 3
JobSource.java
in mantis-connector-job/src/main/java/io/mantisrx/connector/job/source
232 16 25 11 7
MantisSourceJobConnector.java
in mantis-connector-job/src/main/java/io/mantisrx/connector/job/core
151 11 23 15 9
TopicPartitionStateManager.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source
97 8 21 22 8
KafkaData.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka
95 12 21 22 10
MultiSinkConnectionStatusObserver.java
in mantis-connector-job/src/main/java/io/mantisrx/connector/job/core
91 11 20 22 4
ConsumerMetrics.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source/metrics
131 17 20 15 3
MantisKafkaSourceConfig.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source
127 13 19 15 6
WriterMetrics.java
in mantis-connector-iceberg/src/main/java/io/mantisrx/connector/iceberg/sink/writer/metrics
105 4 18 17 7
DefaultIcebergWriter.java
in mantis-connector-iceberg/src/main/java/io/mantisrx/connector/iceberg/sink/writer
115 11 17 15 3
FileBasedOffsetCheckpointStrategy.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source/checkpoint/strategy
112 8 17 15 4
QueryRegistry.java
in mantis-connector-publish/src/main/java/io/mantisrx/connector/publish/core
77 10 15 19 4
QueryMap.java
in mantis-connector-publish/src/main/java/io/mantisrx/connector/publish/core
100 12 15 15 3
DefaultSinkConnectionStatusObserver.java
in mantis-connector-job/src/main/java/io/mantisrx/connector/job/core
64 9 15 23 6
EventFilter.java
in mantis-connector-publish/src/main/java/io/mantisrx/connector/publish/core
64 4 13 20 5
CommitterMetrics.java
in mantis-connector-iceberg/src/main/java/io/mantisrx/connector/iceberg/sink/committer/metrics
78 4 13 17 5
MantisKafkaConsumerConfig.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source
123 7 13 11 4
KafkaDataNotification.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka
51 12 12 24 1
NettySourceHttpServer.java
in mantis-connector-publish/src/main/java/io/mantisrx/connector/publish/source/http
65 4 10 15 3
HttpSourceServerHandler.java
in mantis-connector-publish/src/main/java/io/mantisrx/connector/publish/source/http
116 3 10 9 8
KafkaOffsetCheckpointStrategy.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source/checkpoint/strategy
68 6 10 15 5
NettyExceptionHandler.java
in mantis-connector-publish/src/main/java/io/mantisrx/connector/publish/source/http
85 5 9 11 4
AbstractSourceJobSource.java
in mantis-connector-job/src/main/java/io/mantisrx/connector/job/core
57 7 9 16 3
StaticPartitionAssignorImpl.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source/assignor
44 1 9 20 9
MantisKafkaProducerConfig.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/sink
85 6 9 11 3
AbstractJobSource.java
in mantis-connector-job/src/main/java/io/mantisrx/connector/job/core
59 2 8 14 7
CountingCheckpointTrigger.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source/checkpoint/trigger
50 6 8 16 2
IcebergCodecs.java
in mantis-connector-iceberg/src/main/java/io/mantisrx/connector/iceberg/sink/codecs
65 5 7 11 2
CheckpointingDisabledTrigger.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source/checkpoint/trigger
28 6 7 25 2
ParserType.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source/serde
30 5 7 23 2
ObjectUtils.java
in mantis-connector-publish/src/main/java/io/mantisrx/connector/publish/core
18 3 6 33 3
WriterConfig.java
in mantis-connector-iceberg/src/main/java/io/mantisrx/connector/iceberg/sink/writer/config
39 6 6 15 1
KafkaConsumerRebalanceListener.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source
51 3 6 12 4
KafkaAckable.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka
35 6 6 17 1
CheckpointTriggerFactory.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source/checkpoint/trigger
16 2 5 31 4
NoopCheckpointStrategy.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source/checkpoint/strategy
32 5 5 16 1
CheckpointStrategyFactory.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source/checkpoint/strategy
29 2 5 17 4
MapDeserializerBase.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source/serde
19 3 5 26 3
SinkConfig.java
in mantis-connector-iceberg/src/main/java/io/mantisrx/connector/iceberg/sink/config
26 4 4 15 1
IcebergCommitterStage.java
in mantis-connector-iceberg/src/main/java/io/mantisrx/connector/iceberg/sink/committer
120 4 4 3 1
SourceSink.java
in mantis-connector-publish/src/main/java/io/mantisrx/connector/publish/source/http
41 3 3 7 1
PushHttpSource.java
in mantis-connector-publish/src/main/java/io/mantisrx/connector/publish/source/http
87 2 3 3 2
IcebergCommitter.java
in mantis-connector-iceberg/src/main/java/io/mantisrx/connector/iceberg/sink/committer
19 2 3 16 2
ParseException.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source/serde
13 3 3 23 1
SimpleJsonDeserializer.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source/serde
26 2 3 12 2
KafkaSink.java
in mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/sink
70 2 3 4 2
HttpServerInitializer.java
in mantis-connector-publish/src/main/java/io/mantisrx/connector/publish/source/http
30 2 2 7 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...