Sample

int-0f76385d78fc-I01

Remove line comments, block comments, and Javadoc

Matched original source

Lines64

Scores

MethodScoreScale
Posnett0.9970–1; higher is more readable
Scalabrino0.6420–1; higher is more readable
Dorn0.8590–1; higher is more readable
Mi0.5640–1; higher is more readable
LLOC9Logical lines; fewer is more readable
DeepSeek V4 Pro180–20; mean of three runs
GPT-6.1 Sol160–20; mean of three runs
BTTF0.5080–1; higher is more readable

Views

Source code

package org.apache.kafka.streams.processor.internals; import org.apache.kafka.common.TopicPartition; import org.apache.kafka.streams.processor.TaskId; import java.util.Map; import java.util.Set; public interface ChangelogReader extends ChangelogRegister { long restore(final Map<TaskId, Task> tasks); void enforceRestoreActive(); void transitToUpdateStandby(); boolean isRestoringActive(); Set<TopicPartition> completedChangelogs(); Map<TopicPartition, Long> logicalChangelogEndOffsets(); boolean allChangelogsCompleted(); void clear(); boolean isEmpty(); }

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(log-odds)
Source linesThe number of non-empty source lines.64+25.6
Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones.653.531−21.567
Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value.4.639−6.959

Intercept 8.87 + feature contributions = 5.945 (log-odds).
Score = sigmoid(5.945) = 0.997.

Score0.642

Feature contributions

FeatureValueContribution
(log-odds)
Indentation frequencyHow rapidly indentation changes from line to line.64+1.477
Identifier layout (horizontal)How rapidly the visual pattern of identifier characters changes from left to right. It measures spatial frequency, not the meaning of the names.59.938+1.126
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.54−0.876
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.0−0.804
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.63.738+0.481
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.104−0.067

Intercept 0.07 + feature contributions = 1.805 (log-odds).
Score = sigmoid(1.805) = 0.859.

Score0.564
Score9
Run 1

The code is highly readable. It defines a clear interface with well-named methods that clearly convey their purpose. The structure is logical, with imports at the top and a clean, flat method list below. There is no nesting or complex logic, which aligns perfectly with an interface definition. The code length is concise, containing no unnecessary methods or comments. Each method declaration has a single action per line, and the natural reading flow—from imports to interface declarations to methods—is straightforward. The only minor issues are the excessive blank lines between methods, which cause a slight visual disconnection, and the lack of Javadoc comments explaining edge cases or return value semantics for some methods. However, these do not significantly impact readability.

Run 2

The code is highly readable. It is a simple interface with a clear, logical structure—only imports and method declarations, no tangled logic. Nesting is non-existent. Each method has a clear, self-documenting name that conveys intent (e.g., 'isRestoringActive', 'allChangelogsCompleted'). Length is concise and appropriate for an interface contract. Each method declaration is on its own line or a few well-separated lines, maintaining clear action granularity. Reading flow is natural: imports first, then method declarations in a logical order. The only minor issue is the presence of unnecessary blank lines, but this does not significantly impact readability.

Run 3

The code is a clean, well-structured interface definition with clear method names and logical grouping. It has a flat structure with no nesting, and each method is declared on a single line with clear intent. The excessive blank lines between method signatures are unnecessary and slightly disrupt the reading flow, but they don't significantly harm readability. The import statements are minimal and appropriate. Method names like 'enforceRestoreActive', 'transitToUpdateStandby', and 'allChangelogsCompleted' clearly communicate their purpose without needing additional documentation. The interface has a single responsibility: managing changelog restoration. While the blank lines could be reduced for better visual flow, the code overall is highly readable, concise, and well-organized.

Run 1

Code Structure: A straightforward interface with related changelog-management methods, though grouping or documentation would improve organization. Nesting: No nesting, making the declarations easy to scan. Clarity of intent: Most method names communicate their purpose, but restore-mode transitions and logical end offsets require domain knowledge; transitToUpdateStandby is awkwardly named. Code length: The declarations are concise, but excessive blank lines unnecessarily lengthen the file. Action granularity: Each method declaration occupies its own line, maintaining clear separation. Reading flow: Consistent signatures support scanning, but irregular whitespace and the lack of spacing between the package and imports interrupt the flow.

Run 2

Code Structure: A straightforward interface with logically related method declarations, although excessive blank lines weaken organization. Nesting: Completely flat apart from the interface scope, making it easy to scan. Clarity of intent: Most method names communicate their purpose, but transitToUpdateStandby is awkward, and the distinction between restoration modes lacks documentation. Code length: Declarations are concise, but unnecessary whitespace substantially increases visual length. Action granularity: Each declaration occupies its own line, with no bundled operations. Reading flow: Consistent signatures and simple types support natural reading, while irregular spacing interrupts flow and separates related methods unnecessarily.

Run 3

Code Structure: A straightforward interface groups related changelog restoration operations logically, although excessive blank lines weaken visual organization. Nesting: No nested blocks, making declarations easy to scan. Clarity of intent: Most method names and return types communicate purpose, but transitToUpdateStandby is awkwardly phrased, and undocumented lifecycle semantics leave some ambiguity. Code length: Method declarations are concise, but unnecessary whitespace substantially inflates the listing. Action granularity: Each declaration occupies its own line, with no combined actions. Reading flow: The sequence moves reasonably from restoration controls to status queries and cleanup, though irregular spacing interrupts the flow.