46
46
import org .springframework .util .function .SingletonSupplier ;
47
47
48
48
/**
49
- * Internal {@link BeanRegistrationCodeFragments} implementation used by
50
- * default.
49
+ * Internal {@link BeanRegistrationCodeFragments} implementation used by default.
51
50
*
52
51
* @author Phillip Webb
53
52
* @author Stephane Nicoll
@@ -81,7 +80,8 @@ public ClassName getTarget(RegisteredBean registeredBean) {
81
80
if (hasInstanceSupplier ()) {
82
81
String resourceDescription = registeredBean .getMergedBeanDefinition ().getResourceDescription ();
83
82
throw new IllegalStateException ("Error processing bean with name '" + registeredBean .getBeanName () + "'" +
84
- (resourceDescription != null ? " defined in " + resourceDescription : "" ) + ": instance supplier is not supported" );
83
+ (resourceDescription != null ? " defined in " + resourceDescription : "" ) +
84
+ ": instance supplier is not supported" );
85
85
}
86
86
Class <?> target = extractDeclaringClass (registeredBean , this .instantiationDescriptor .get ());
87
87
while (target .getName ().startsWith ("java." ) && registeredBean .isInnerBean ()) {
@@ -94,9 +94,8 @@ public ClassName getTarget(RegisteredBean registeredBean) {
94
94
95
95
private Class <?> extractDeclaringClass (RegisteredBean registeredBean , InstantiationDescriptor instantiationDescriptor ) {
96
96
Class <?> declaringClass = ClassUtils .getUserClass (instantiationDescriptor .targetClass ());
97
- if (instantiationDescriptor .executable () instanceof Constructor <?>
98
- && AccessControl .forMember (instantiationDescriptor .executable ()).isPublic ()
99
- && FactoryBean .class .isAssignableFrom (declaringClass )) {
97
+ if (instantiationDescriptor .executable () instanceof Constructor <?> ctor &&
98
+ AccessControl .forMember (ctor ).isPublic () && FactoryBean .class .isAssignableFrom (declaringClass )) {
100
99
return extractTargetClassFromFactoryBean (declaringClass , registeredBean .getBeanType ());
101
100
}
102
101
return declaringClass ;
@@ -127,17 +126,15 @@ public CodeBlock generateNewBeanDefinitionCode(GenerationContext generationConte
127
126
ResolvableType beanType , BeanRegistrationCode beanRegistrationCode ) {
128
127
129
128
CodeBlock .Builder code = CodeBlock .builder ();
130
- RootBeanDefinition mergedBeanDefinition = this .registeredBean .getMergedBeanDefinition ();
131
- Class <?> beanClass = (mergedBeanDefinition .hasBeanClass ()
132
- ? ClassUtils .getUserClass (mergedBeanDefinition .getBeanClass ()) : null );
129
+ RootBeanDefinition mbd = this .registeredBean .getMergedBeanDefinition ();
130
+ Class <?> beanClass = (mbd .hasBeanClass () ? ClassUtils .getUserClass (mbd .getBeanClass ()) : null );
133
131
CodeBlock beanClassCode = generateBeanClassCode (
134
132
beanRegistrationCode .getClassName ().packageName (),
135
133
(beanClass != null ? beanClass : beanType .toClass ()));
136
134
code .addStatement ("$T $L = new $T($L)" , RootBeanDefinition .class ,
137
135
BEAN_DEFINITION_VARIABLE , RootBeanDefinition .class , beanClassCode );
138
136
if (targetTypeNecessary (beanType , beanClass )) {
139
- code .addStatement ("$L.setTargetType($L)" , BEAN_DEFINITION_VARIABLE ,
140
- generateBeanTypeCode (beanType ));
137
+ code .addStatement ("$L.setTargetType($L)" , BEAN_DEFINITION_VARIABLE , generateBeanTypeCode (beanType ));
141
138
}
142
139
return code .build ();
143
140
}
@@ -162,30 +159,27 @@ private boolean targetTypeNecessary(ResolvableType beanType, @Nullable Class<?>
162
159
if (beanType .hasGenerics ()) {
163
160
return true ;
164
161
}
165
- if (beanClass != null
166
- && this .registeredBean .getMergedBeanDefinition ().getFactoryMethodName () != null ) {
162
+ if (beanClass != null && this .registeredBean .getMergedBeanDefinition ().getFactoryMethodName () != null ) {
167
163
return true ;
168
164
}
169
165
return (beanClass != null && !beanType .toClass ().equals (beanClass ));
170
166
}
171
167
172
168
@ Override
173
169
public CodeBlock generateSetBeanDefinitionPropertiesCode (
174
- GenerationContext generationContext ,
175
- BeanRegistrationCode beanRegistrationCode , RootBeanDefinition beanDefinition ,
176
- Predicate < String > attributeFilter ) {
170
+ GenerationContext generationContext , BeanRegistrationCode beanRegistrationCode ,
171
+ RootBeanDefinition beanDefinition , Predicate < String > attributeFilter ) {
172
+
177
173
Loader loader = AotServices .factories (this .registeredBean .getBeanFactory ().getBeanClassLoader ());
178
174
List <Delegate > additionalDelegates = loader .load (Delegate .class ).asList ();
179
175
return new BeanDefinitionPropertiesCodeGenerator (generationContext .getRuntimeHints (),
180
176
attributeFilter , beanRegistrationCode .getMethods (),
181
- additionalDelegates , (name , value ) -> generateValueCode (generationContext , name , value )
182
- ) .generateCode (beanDefinition );
177
+ additionalDelegates , (name , value ) -> generateValueCode (generationContext , name , value ))
178
+ .generateCode (beanDefinition );
183
179
}
184
180
185
181
@ Nullable
186
- protected CodeBlock generateValueCode (GenerationContext generationContext ,
187
- String name , Object value ) {
188
-
182
+ protected CodeBlock generateValueCode (GenerationContext generationContext , String name , Object value ) {
189
183
RegisteredBean innerRegisteredBean = getInnerRegisteredBean (value );
190
184
if (innerRegisteredBean != null ) {
191
185
BeanDefinitionMethodGenerator methodGenerator = this .beanDefinitionMethodGeneratorFactory
@@ -211,9 +205,8 @@ private RegisteredBean getInnerRegisteredBean(Object value) {
211
205
212
206
@ Override
213
207
public CodeBlock generateSetBeanInstanceSupplierCode (
214
- GenerationContext generationContext ,
215
- BeanRegistrationCode beanRegistrationCode , CodeBlock instanceSupplierCode ,
216
- List <MethodReference > postProcessors ) {
208
+ GenerationContext generationContext , BeanRegistrationCode beanRegistrationCode ,
209
+ CodeBlock instanceSupplierCode , List <MethodReference > postProcessors ) {
217
210
218
211
CodeBlock .Builder code = CodeBlock .builder ();
219
212
if (postProcessors .isEmpty ()) {
@@ -233,20 +226,22 @@ public CodeBlock generateSetBeanInstanceSupplierCode(
233
226
}
234
227
235
228
@ Override
236
- public CodeBlock generateInstanceSupplierCode (GenerationContext generationContext ,
237
- BeanRegistrationCode beanRegistrationCode , boolean allowDirectSupplierShortcut ) {
229
+ public CodeBlock generateInstanceSupplierCode (
230
+ GenerationContext generationContext , BeanRegistrationCode beanRegistrationCode ,
231
+ boolean allowDirectSupplierShortcut ) {
232
+
238
233
if (hasInstanceSupplier ()) {
239
- throw new IllegalStateException ("Default code generation is not supported for bean definitions declaring "
240
- + " an instance supplier callback: " + this .registeredBean .getMergedBeanDefinition ());
234
+ throw new IllegalStateException ("Default code generation is not supported for bean definitions " +
235
+ "declaring an instance supplier callback: " + this .registeredBean .getMergedBeanDefinition ());
241
236
}
242
237
return new InstanceSupplierCodeGenerator (generationContext , beanRegistrationCode .getClassName (),
243
- beanRegistrationCode .getMethods (), allowDirectSupplierShortcut ). generateCode (
244
- this .registeredBean , this .instantiationDescriptor .get ());
238
+ beanRegistrationCode .getMethods (), allowDirectSupplierShortcut )
239
+ . generateCode ( this .registeredBean , this .instantiationDescriptor .get ());
245
240
}
246
241
247
242
@ Override
248
- public CodeBlock generateReturnCode (GenerationContext generationContext ,
249
- BeanRegistrationCode beanRegistrationCode ) {
243
+ public CodeBlock generateReturnCode (
244
+ GenerationContext generationContext , BeanRegistrationCode beanRegistrationCode ) {
250
245
251
246
CodeBlock .Builder code = CodeBlock .builder ();
252
247
code .addStatement ("return $L" , BEAN_DEFINITION_VARIABLE );
0 commit comments