Sample

int-82a5326a64d3-I01

Remove line comments, block comments, and Javadoc

Matched original source

Lines128

Scores

MethodScoreScale
Posnett0.9960–1; higher is more readable
Scalabrino0.7990–1; higher is more readable
Dorn0.7620–1; higher is more readable
Mi0.8080–1; higher is more readable
LLOC27Logical lines; fewer is more readable
DeepSeek V4 Pro170–20; mean of three runs
GPT-6.1 Sol170–20; mean of three runs
BTTF0.6370–1; higher is more readable

Views

Source code

package org.springframework.beans.factory.support; import org.jspecify.annotations.Nullable; import org.springframework.util.StringUtils; public class BeanDefinitionDefaults { private @Nullable Boolean lazyInit; private int autowireMode = AbstractBeanDefinition.AUTOWIRE_NO; private int dependencyCheck = AbstractBeanDefinition.DEPENDENCY_CHECK_NONE; private @Nullable String initMethodName; private @Nullable String destroyMethodName; public void setLazyInit(boolean lazyInit) { this.lazyInit = lazyInit; } public boolean isLazyInit() { return (this.lazyInit != null && this.lazyInit); } public @Nullable Boolean getLazyInit() { return this.lazyInit; } public void setAutowireMode(int autowireMode) { this.autowireMode = autowireMode; } public int getAutowireMode() { return this.autowireMode; } public void setDependencyCheck(int dependencyCheck) { this.dependencyCheck = dependencyCheck; } public int getDependencyCheck() { return this.dependencyCheck; } public void setInitMethodName(@Nullable String initMethodName) { this.initMethodName = (StringUtils.hasText(initMethodName) ? initMethodName : null); } public @Nullable String getInitMethodName() { return this.initMethodName; } public void setDestroyMethodName(@Nullable String destroyMethodName) { this.destroyMethodName = (StringUtils.hasText(destroyMethodName) ? destroyMethodName : null); } public @Nullable String getDestroyMethodName() { return this.destroyMethodName; } }

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(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.

Score0.799

Feature contributions

FeatureValueContribution
(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.

Score0.808
Score27
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.