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
@@ -92,9 +91,8 @@ public ClassName getTarget(RegisteredBean registeredBean) {
92
91
93
92
private Class <?> extractDeclaringClass (RegisteredBean registeredBean , InstantiationDescriptor instantiationDescriptor ) {
94
93
Class <?> declaringClass = ClassUtils .getUserClass (instantiationDescriptor .targetClass ());
95
- if (instantiationDescriptor .executable () instanceof Constructor <?>
96
- && AccessControl .forMember (instantiationDescriptor .executable ()).isPublic ()
97
- && FactoryBean .class .isAssignableFrom (declaringClass )) {
94
+ if (instantiationDescriptor .executable () instanceof Constructor <?> ctor &&
95
+ AccessControl .forMember (ctor ).isPublic () && FactoryBean .class .isAssignableFrom (declaringClass )) {
98
96
return extractTargetClassFromFactoryBean (declaringClass , registeredBean .getBeanType ());
99
97
}
100
98
return declaringClass ;
@@ -125,17 +123,15 @@ public CodeBlock generateNewBeanDefinitionCode(GenerationContext generationConte
125
123
ResolvableType beanType , BeanRegistrationCode beanRegistrationCode ) {
126
124
127
125
CodeBlock .Builder code = CodeBlock .builder ();
128
- RootBeanDefinition mergedBeanDefinition = this .registeredBean .getMergedBeanDefinition ();
129
- Class <?> beanClass = (mergedBeanDefinition .hasBeanClass ()
130
- ? ClassUtils .getUserClass (mergedBeanDefinition .getBeanClass ()) : null );
126
+ RootBeanDefinition mbd = this .registeredBean .getMergedBeanDefinition ();
127
+ Class <?> beanClass = (mbd .hasBeanClass () ? ClassUtils .getUserClass (mbd .getBeanClass ()) : null );
131
128
CodeBlock beanClassCode = generateBeanClassCode (
132
129
beanRegistrationCode .getClassName ().packageName (),
133
130
(beanClass != null ? beanClass : beanType .toClass ()));
134
131
code .addStatement ("$T $L = new $T($L)" , RootBeanDefinition .class ,
135
132
BEAN_DEFINITION_VARIABLE , RootBeanDefinition .class , beanClassCode );
136
133
if (targetTypeNecessary (beanType , beanClass )) {
137
- code .addStatement ("$L.setTargetType($L)" , BEAN_DEFINITION_VARIABLE ,
138
- generateBeanTypeCode (beanType ));
134
+ code .addStatement ("$L.setTargetType($L)" , BEAN_DEFINITION_VARIABLE , generateBeanTypeCode (beanType ));
139
135
}
140
136
return code .build ();
141
137
}
@@ -160,30 +156,27 @@ private boolean targetTypeNecessary(ResolvableType beanType, @Nullable Class<?>
160
156
if (beanType .hasGenerics ()) {
161
157
return true ;
162
158
}
163
- if (beanClass != null
164
- && this .registeredBean .getMergedBeanDefinition ().getFactoryMethodName () != null ) {
159
+ if (beanClass != null && this .registeredBean .getMergedBeanDefinition ().getFactoryMethodName () != null ) {
165
160
return true ;
166
161
}
167
162
return (beanClass != null && !beanType .toClass ().equals (beanClass ));
168
163
}
169
164
170
165
@ Override
171
166
public CodeBlock generateSetBeanDefinitionPropertiesCode (
172
- GenerationContext generationContext ,
173
- BeanRegistrationCode beanRegistrationCode , RootBeanDefinition beanDefinition ,
174
- Predicate < String > attributeFilter ) {
167
+ GenerationContext generationContext , BeanRegistrationCode beanRegistrationCode ,
168
+ RootBeanDefinition beanDefinition , Predicate < String > attributeFilter ) {
169
+
175
170
Loader loader = AotServices .factories (this .registeredBean .getBeanFactory ().getBeanClassLoader ());
176
171
List <Delegate > additionalDelegates = loader .load (Delegate .class ).asList ();
177
172
return new BeanDefinitionPropertiesCodeGenerator (generationContext .getRuntimeHints (),
178
173
attributeFilter , beanRegistrationCode .getMethods (),
179
- additionalDelegates , (name , value ) -> generateValueCode (generationContext , name , value )
180
- ) .generateCode (beanDefinition );
174
+ additionalDelegates , (name , value ) -> generateValueCode (generationContext , name , value ))
175
+ .generateCode (beanDefinition );
181
176
}
182
177
183
178
@ Nullable
184
- protected CodeBlock generateValueCode (GenerationContext generationContext ,
185
- String name , Object value ) {
186
-
179
+ protected CodeBlock generateValueCode (GenerationContext generationContext , String name , Object value ) {
187
180
RegisteredBean innerRegisteredBean = getInnerRegisteredBean (value );
188
181
if (innerRegisteredBean != null ) {
189
182
BeanDefinitionMethodGenerator methodGenerator = this .beanDefinitionMethodGeneratorFactory
@@ -209,9 +202,8 @@ private RegisteredBean getInnerRegisteredBean(Object value) {
209
202
210
203
@ Override
211
204
public CodeBlock generateSetBeanInstanceSupplierCode (
212
- GenerationContext generationContext ,
213
- BeanRegistrationCode beanRegistrationCode , CodeBlock instanceSupplierCode ,
214
- List <MethodReference > postProcessors ) {
205
+ GenerationContext generationContext , BeanRegistrationCode beanRegistrationCode ,
206
+ CodeBlock instanceSupplierCode , List <MethodReference > postProcessors ) {
215
207
216
208
CodeBlock .Builder code = CodeBlock .builder ();
217
209
if (postProcessors .isEmpty ()) {
@@ -231,19 +223,21 @@ public CodeBlock generateSetBeanInstanceSupplierCode(
231
223
}
232
224
233
225
@ Override
234
- public CodeBlock generateInstanceSupplierCode (GenerationContext generationContext ,
235
- BeanRegistrationCode beanRegistrationCode , boolean allowDirectSupplierShortcut ) {
226
+ public CodeBlock generateInstanceSupplierCode (
227
+ GenerationContext generationContext , BeanRegistrationCode beanRegistrationCode ,
228
+ boolean allowDirectSupplierShortcut ) {
229
+
236
230
if (hasInstanceSupplier ()) {
237
231
throw new AotBeanProcessingException (this .registeredBean , "instance supplier is not supported" );
238
232
}
239
233
return new InstanceSupplierCodeGenerator (generationContext , beanRegistrationCode .getClassName (),
240
- beanRegistrationCode .getMethods (), allowDirectSupplierShortcut ). generateCode (
241
- this .registeredBean , this .instantiationDescriptor .get ());
234
+ beanRegistrationCode .getMethods (), allowDirectSupplierShortcut )
235
+ . generateCode ( this .registeredBean , this .instantiationDescriptor .get ());
242
236
}
243
237
244
238
@ Override
245
- public CodeBlock generateReturnCode (GenerationContext generationContext ,
246
- BeanRegistrationCode beanRegistrationCode ) {
239
+ public CodeBlock generateReturnCode (
240
+ GenerationContext generationContext , BeanRegistrationCode beanRegistrationCode ) {
247
241
248
242
CodeBlock .Builder code = CodeBlock .builder ();
249
243
code .addStatement ("return $L" , BEAN_DEFINITION_VARIABLE );
0 commit comments