Sample
int-9f0f35f4dda4-I04
Replace method, parameter, and local names with deterministic ProGuard-style short identifiers
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 1 | 0–1; higher is more readable |
| Scalabrino | 0.997 | 0–1; higher is more readable |
| Dorn | 0.834 | 0–1; higher is more readable |
| Mi | 0.818 | 0–1; higher is more readable |
| LLOC | 9 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 5 | 0–20; mean of three runs |
| GPT-6.1 Sol | 16 | 0–20; mean of three runs |
| BTTF | 0.389 | 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. | 49 | +19.6 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 280.461 | −9.255 |
| 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.793 | −7.19 |
Intercept 8.87 + feature contributions = 12.025 (log-odds).
Score = sigmoid(12.025) = 1.
| Score | 0.997 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 46 | −0.592 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.037 | +0.58 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 82.94 | +0.534 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 48.619 | +0.27 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 27 | +0.197 |
| 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. | 82.88 | +0.155 |
Intercept 0.07 + feature contributions = 1.611 (log-odds).
Score = sigmoid(1.611) = 0.834.
| Score | 0.818 |
|---|
| Score | 9 |
|---|
Run 1
The code shows reasonable structure with clear package and interface declaration, but method names 'a', 'b', 'c', 'd' are completely unreadable and fail to convey intent. Each method has good Javadoc explaining what it should do, creating a disconnect between documentation and implementation. The nesting is minimal and flat, which is positive. Code length is concise, and action granularity is good with one action per line. However, the reading flow is disrupted by having to constantly refer to documentation to understand what each cryptic method name means. The interface itself is well-organized, but the naming choices severely undermine readability. Clear, descriptive method names like 'onRefresh', 'onRestart', 'onPause', 'onClose' would make this significantly more readable and self-documenting.
Run 2
The code is structurally simple but fails badly on 'clarity of intent'. Method names like 'a', 'b', 'c', and 'd' are meaningless and give no indication of their purpose (refresh, restart, pause, close). Although the comments above each method describe the intended behavior, the names themselves are a major readability failure. Additionally, the methods are extremely sparse, each containing only one or two method calls, making the interface feel disjointed. The code is flat and short, which helps slightly, but the bizarre method naming undermines any natural reading flow. Action granularity is okay (one action per line), and structure is not tangled, but the lack of descriptive identifiers overrides these positives. Overall, the code reads like an obfuscated snippet rather than a maintainable Spring interface.
Run 3
The code structure is simple and flat, with one interface and no nesting, but it is severely undermined by ambiguous naming. Methods are named 'a', 'b', 'c', and 'd', which completely obscures their purpose despite descriptive Javadoc. The original method names (onRefresh, onRestart, onPause, onClose) have been replaced with meaningless placeholders, making the code unreadable and forcing developers to rely entirely on comments. Action granularity and reading flow are okay, but clarity of intent is nearly zero. Overall structure is logical, yet the poor naming destroys readability.
Run 1
Code Structure: The interface is logically organized into separate lifecycle callbacks with consistent documentation. Nesting: Methods are flat and contain no nested control flow. Clarity of intent: The interface name, comments, and start()/stop() calls convey purpose, but method names a(), b(), c(), and d() are opaque and require consulting documentation. Code length: The implementation is concise; documentation adds useful context rather than unnecessary bulk. Action granularity: Each statement performs one action, and the restart callback clearly separates stopping and starting. Reading flow: Consistent formatting and the refresh, restart, pause, and close sequence make the code easy to follow, although non-descriptive callback names weaken readability at call sites.
Run 2
Code Structure: A well-organized interface groups related lifecycle callbacks, with consistent documentation. Nesting: Flat method bodies contain no conditional or looping complexity. Clarity of intent: Documentation and start()/stop() calls explain behavior, but names a(), b(), c(), and d() obscure callback purposes and force readers to consult comments. Code length: Concise implementations with proportionate documentation and no unnecessary logic. Action granularity: Each statement performs one action; the restart callback clearly separates stopping and starting. Reading flow: Consistent formatting and a logical refresh–restart–pause–close sequence make the code easy to follow, although opaque method names weaken readability.
Run 3
Code Structure: The interface is logically organized into distinct lifecycle callbacks with consistent documentation. Nesting: Method bodies are flat, with no conditional or loop nesting. Clarity of intent: Javadoc explains each callback, and start()/stop() are clear, but meaningless method names a(), b(), c(), and d() significantly weaken readability at call sites. Code length: The implementation is concise; documentation adds useful context rather than unnecessary bulk. Action granularity: Each statement performs one action, and the restart callback clearly separates stopping from starting. Reading flow: Consistent formatting and the refresh, restart, pause, close sequence make the code easy to follow, although readers must consult comments to distinguish callbacks.