Sample

int-9fd1780c9581-I12

Inline all eligible single-use intermediate local variables

Matched original source

Lines77

Scores

MethodScoreScale
Posnett10–1; higher is more readable
Scalabrino0.9280–1; higher is more readable
Dorn0.5810–1; higher is more readable
Mi0.2260–1; higher is more readable
LLOC13Logical lines; fewer is more readable
DeepSeek V4 Pro180–20; mean of three runs
GPT-6.1 Sol190–20; mean of three runs
BTTF0.7170–1; higher is more readable

Views

Source code

package org.apache.kafka.common.network; import java.util.Objects; /** * Defines the context in which an {@link Authenticator} is to be created during * a re-authentication. */ public class ReauthenticationContext { private final NetworkReceive networkReceive; private final Authenticator previousAuthenticator; private final long reauthenticationBeginNanos; /** * Constructor * * @param previousAuthenticator * the mandatory {@link Authenticator} that was previously used to * authenticate the channel * @param networkReceive * the applicable {@link NetworkReceive} instance, if any. For the * client side this may be a response that has been partially read, a * non-null instance that has had no data read into it yet, or null; * if it is non-null then this is the instance that data should * initially be read into during re-authentication. For the server * side this is mandatory and it must contain the * {@code SaslHandshakeRequest} that has been received on the server * and that initiates re-authentication. * * @param nowNanos * the current time. The value is in nanoseconds as per * {@code System.nanoTime()} and is therefore only useful when * compared to such a value -- it's absolute value is meaningless. * This defines the moment when re-authentication begins. */ public ReauthenticationContext(Authenticator previousAuthenticator, NetworkReceive networkReceive, long nowNanos) { this.previousAuthenticator = Objects.requireNonNull(previousAuthenticator); this.networkReceive = networkReceive; this.reauthenticationBeginNanos = nowNanos; } /** * Return the applicable {@link NetworkReceive} instance, if any. For the client * side this may be a response that has been partially read, a non-null instance * that has had no data read into it yet, or null; if it is non-null then this * is the instance that data should initially be read into during * re-authentication. For the server side this is mandatory and it must contain * the {@code SaslHandshakeRequest} that has been received on the server and * that initiates re-authentication. * * @return the applicable {@link NetworkReceive} instance, if any */ public NetworkReceive networkReceive() { return networkReceive; } /** * Return the always non-null {@link Authenticator} that was previously used to * authenticate the channel * * @return the always non-null {@link Authenticator} that was previously used to * authenticate the channel */ public Authenticator previousAuthenticator() { return previousAuthenticator; } /** * Return the time when re-authentication began. The value is in nanoseconds as * per {@code System.nanoTime()} and is therefore only useful when compared to * such a value -- it's absolute value is meaningless. * * @return the time when re-authentication began */ public long reauthenticationBeginNanos() { return reauthenticationBeginNanos; } }

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(log-odds)
Source linesThe number of non-empty source lines.77+30.8
Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones.529.661−17.479
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.253−6.38

Intercept 8.87 + feature contributions = 15.811 (log-odds).
Score = sigmoid(15.811) = 1.

Score0.928

Feature contributions

FeatureValueContribution
(log-odds)
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.77−1.69
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.118.962−1.374
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.119+1.116
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.014+0.807
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.76.842+0.664
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
Indentation frequencyHow rapidly indentation changes from line to line.31+0.335

Intercept 0.07 + feature contributions = 0.326 (log-odds).
Score = sigmoid(0.326) = 0.581.

Score0.226
Score13
Run 1

The code is well-structured with a clear class purpose and logical organization. It uses flat nesting, minimal lines, and one action per line. Javadoc comments thoroughly explain parameters and return values, making intent unambiguous. The constructor and getters follow natural reading flow, and the use of Objects.requireNonNull is concise and clear. Minor deductions for verbose comments slightly increasing length, but overall the code is highly readable.

Run 2

The code is highly readable with a clear, logical structure typical of a well-documented value object. It maintains flat nesting with no conditional or loop complexity, and each method performs a single action (returning a field). Javadoc comments are extensive, clarifying intent, especially for non-obvious parameters like `networkReceive` and `nowNanos`. The class is concise—only five members including the constructor and getters—and follows a natural reading flow from fields to constructor to accessors. Minor deductions: the `nowNanos` parameter name could be more consistent with the field (`reauthenticationBeginNanos`), and some Javadoc duplication exists between constructor and method comments. Overall, this is clean, maintainable code.

Run 3

The code is well-structured with clear separation of concerns: fields, constructor, and getters. There is no deep nesting, and the reading flow is logical and natural. The intent of each method is apparent from its name and Javadoc. While the Javadoc comments are verbose and somewhat repetitive, they provide useful context. The action granularity is appropriate, with one operation per line. Overall, the code is highly readable, though the length of documentation slightly detracts from conciseness.

Run 1

Code Structure: A logically organized immutable context class with fields, a constructor, and accessors. Nesting: Flat methods with no nested control flow. Clarity of intent: Descriptive names and detailed documentation clearly explain re-authentication state, nullability, and timing semantics. Code length: Implementation is concise, though repeated Javadoc descriptions make the class longer than necessary. Action granularity: Each statement performs one clear action; constructor validation is straightforward. Reading flow: Conventional ordering and consistent formatting support natural reading, with only verbose documentation slightly interrupting the flow.

Run 2

Code Structure: Fields, constructor, and accessors are logically organized in a simple context class. Nesting: No nested control flow; all methods are flat. Clarity of intent: Descriptive names, final fields, explicit null validation, and detailed documentation clearly communicate purpose and constraints. Code length: Implementation is concise, but repeated documentation about networkReceive and timestamp semantics adds unnecessary length. Action granularity: Each assignment and return occupies its own line, making operations easy to identify. Reading flow: The progression from state declaration to initialization to accessors is natural and consistent; lengthy comments slightly interrupt scanning.

Run 3

Code Structure: Clearly organized into immutable fields, a constructor, and focused accessors. Nesting: Flat, with no nested control flow. Clarity of intent: Descriptive names and detailed documentation make the re-authentication context, nullability, and timing semantics explicit. Code length: Implementation is concise, though repeated documentation adds unnecessary length. Action granularity: Each statement performs a single assignment, validation, or return. Reading flow: Natural progression from state definition to initialization and accessors; minor formatting issues, such as the missing blank line after the package declaration and the long constructor signature, slightly reduce readability.