Sample
int-82a5326a64d3-I01
Remove line comments, block comments, and Javadoc
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.996 | 0–1; higher is more readable |
| Scalabrino | 0.799 | 0–1; higher is more readable |
| Dorn | 0.762 | 0–1; higher is more readable |
| Mi | 0.808 | 0–1; higher is more readable |
| LLOC | 27 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 17 | 0–20; mean of three runs |
| GPT-6.1 Sol | 17 | 0–20; mean of three runs |
| BTTF | 0.637 | 0–1; higher is more readable |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Source linesThe number of non-empty source lines. | 128 | +51.2 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 1427.996 | −47.124 |
| 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.993 | −7.489 |
Intercept 8.87 + feature contributions = 5.457 (log-odds).
Score = sigmoid(5.457) = 0.996.
| Score | 0.799 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Indentation frequencyHow rapidly indentation changes from line to line. | 128 | +3.69 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 123 | −3.319 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 127.781 | +1.376 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| 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. | 94.953 | −0.357 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.086 | +0.107 |
Intercept 0.07 + feature contributions = 1.162 (log-odds).
Score = sigmoid(1.162) = 0.762.
| Score | 0.808 |
|---|
| Score | 27 |
|---|
Run 1
The code demonstrates strong readability through a clear, logical structure with a simple class definition and well-organized fields. Nesting is completely flat with no conditional blocks. The intent is unambiguous—this is a straightforward defaults holder for bean definitions. Code length is appropriate and concise for the functionality provided. Action granularity follows the one-action-per-line principle in methods and assignments. Reading flow is natural with fields declared first followed by setters and getters. The only minor deductions come from the excessive blank lines between methods (some have 5+ empty lines), which slightly interrupts flow, and the lack of Javadoc comments explaining the purpose of each field. However, the method names are self-documenting, and the use of @Nullable annotations adds clarity. Overall, this is highly readable, idiomatic Spring framework code.
Run 2
The code is a simple Java bean with clear structure and purpose. Each method performs a single action, and the getters/setters follow a consistent, predictable pattern. Nesting is minimal, limited to a couple of ternary expressions. The use of blank lines between methods is excessive but does not harm readability. The code is concise for its purpose and uses appropriate nullability annotations, which enhance intent clarity. Minor deductions are for the excessive vertical spacing and slightly repetitive boilerplate, but overall the reading flow is natural and the code is easy to understand.
Run 3
The code is a straightforward JavaBean-style configuration class with a clear single responsibility. Fields are logically grouped near the top, and methods are organized as setter/getter pairs, which follows a familiar and predictable structure. Nesting is minimal—only simple ternary expressions, no deep blocks. Intent is evident from method and field names. The code is concise; each method performs one action and is short. Reading flow is natural: fields first, then setters and getters in matching order. The only minor issue is the excessive blank lines between members (often from generated code), which slightly disrupts flow and adds unnecessary length, but this does not significantly harm readability.
Run 1
Code Structure: Fields are grouped first, followed by logically paired setters and getters. Nesting: Methods are flat, with no nested control flow. Clarity of intent: Descriptive names, explicit defaults, and nullable annotations make the configuration role clear; the distinction between isLazyInit() and getLazyInit() is understandable but undocumented. Code length: Implementation is concise, but excessive blank lines unnecessarily inflate its visual length. Action granularity: Each statement performs a single assignment or return; conditional expressions remain simple. Reading flow: Consistent method patterns support natural reading, although irregular whitespace creates distracting gaps.
Run 2
Code Structure: Fields precede logically paired setters and getters, creating a straightforward organization. Nesting: Methods are flat, with no nested control flow. Clarity of intent: Descriptive names, explicit defaults, and nullable annotations make the configuration purpose clear; the distinction between isLazyInit() and getLazyInit() requires slight attention. Code length: Method bodies are concise, but excessive blank lines unnecessarily inflate the file. Action granularity: Each statement performs a single assignment or return, making individual operations easy to follow. Reading flow: Consistent accessor patterns support predictable reading, although large, irregular whitespace gaps interrupt scanning and separate related elements.
Run 3
Code Structure: Fields and corresponding accessors are logically organized, with consistent getter/setter grouping. Nesting: Methods are flat, with no nested control flow. Clarity of intent: Descriptive names, explicit defaults, and nullable annotations make the purpose clear; the distinction between isLazyInit() and getLazyInit() requires minor attention. Code length: Method bodies are concise, but excessive blank lines unnecessarily inflate the class. Action granularity: Each statement performs a single action, and string normalization remains straightforward. Reading flow: Consistent accessor patterns support predictable reading, though large whitespace gaps disrupt continuity and increase scrolling.