Sample

int-e96abcc3f1f5-I13

Lower every eligible classic and enhanced for loop to a while loop

Matched original source

Lines22

Scores

MethodScoreScale
Posnett0.9990–1; higher is more readable
Scalabrino0.6020–1; higher is more readable
Dorn0.2340–1; higher is more readable
Mi0.0120–1; higher is more readable
LLOC1Logical lines; fewer is more readable
DeepSeek V4 Pro190–20; mean of three runs
GPT-6.1 Sol190–20; mean of three runs
BTTF0.6370–1; higher is more readable

Views

Source code

package org.springframework.web.socket.sockjs.frame; /** * Applies a transport-specific format to the content of a SockJS frame resulting * in a content that can be written out. Primarily for use in HTTP server-side * transports that push data. * * <p>Formatting may vary from simply appending a new line character for XHR * polling and streaming transports, to a jsonp-style callback function, * surrounding script tags, and more. * * <p>For the various SockJS frame formats in use, see implementations of * {@link org.springframework.web.socket.sockjs.transport.handler.AbstractHttpSendingTransportHandler#getFrameFormat(org.springframework.http.server.ServerHttpRequest) AbstractHttpSendingTransportHandler.getFrameFormat} * * @author Rossen Stoyanchev * @since 4.0 */ public interface SockJsFrameFormat { String format(SockJsFrame frame); }

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(log-odds)
Source linesThe number of non-empty source lines.22+8.8
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.749−7.124
Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones.106.198−3.505

Intercept 8.87 + feature contributions = 7.042 (log-odds).
Score = sigmoid(7.042) = 0.999.

Score0.602

Feature contributions

FeatureValueContribution
(log-odds)
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.220−5.653
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.220+2.745
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.1+1.001
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.013+0.817
Indentation frequencyHow rapidly indentation changes from line to line.8−0.46
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.21.905−0.104

Intercept 0.07 + feature contributions = -1.186 (log-odds).
Score = sigmoid(-1.186) = 0.234.

Score0.012
Score1
Run 1

The code is a well-documented, single-purpose interface. It has a clear logical structure, with a concise Javadoc explaining intent, context, and usage. There is no nesting, and the single method declaration makes the action granularity and reading flow straightforward. The code length is minimal and appropriate for an interface definition. The only minor deduction is that the Javadoc could be slightly shorter, but it remains highly readable overall.

Run 2

The code is a simple, clean interface with a single method, making it highly readable. It has a clear purpose, documented concisely with Javadoc. The structure is logical, with no nesting or unnecessary length. It follows the single responsibility principle, and the method name 'format' clearly expresses its intent. The only minor deduction is that the Javadoc could be slightly more concise, but overall it is exemplary in readability.

Run 3

The code is exceptionally readable. The interface is concise, with a single, well-named method that clearly defines the contract. Javadoc is informative, explaining the purpose, variability of implementations, and providing a useful reference to where different formats are used. There is no nesting or unnecessary length. The structure follows standard Java conventions, and the reading flow is natural, moving from high-level intent to the specific method definition. The only minor deduction is due to the slightly dense Javadoc paragraph, which could be broken up for even easier scanning, but this is negligible.

Run 1

Code Structure: A logically organized interface with a single responsibility. Nesting: No nested logic, making it easy to scan. Clarity of intent: The interface name, method signature, and documentation clearly explain transport-specific frame formatting, though method-level documentation could clarify the return value. Code length: The implementation is minimal; the documentation is useful but includes a lengthy cross-reference. Action granularity: The sole method declaration occupies its own line. Reading flow: The package declaration, explanatory documentation, and interface declaration follow a natural order.

Run 2

Code Structure: A single, logically organized interface defines one formatting operation. Nesting: No nested logic, making it immediately scannable. Clarity of intent: The interface name, method signature, and Javadoc clearly explain transport-specific SockJS frame formatting, though method-level documentation could clarify the returned value. Code length: The implementation is minimal; the documentation is useful but includes a long, visually dense cross-reference. Action granularity: The sole method declaration occupies one line with no combined actions. Reading flow: Package, documentation, interface, and method appear in a conventional, natural order.

Run 3

Code Structure: A logically organized interface containing a single method. Nesting: No nested control flow or unnecessary structural depth. Clarity of intent: The interface name, method signature, and Javadoc clearly explain transport-specific SockJS frame formatting, though the method lacks explicit parameter and return documentation. Code length: The implementation is minimal; the descriptive Javadoc is useful, but its long link slightly reduces readability. Action granularity: One method declaration per line, with no combined operations. Reading flow: Conventional package, documentation, interface, and method ordering makes the code easy to follow.