Polishing
This commit is contained in:
parent
616f728afa
commit
1ac0549881
|
|
@ -90,8 +90,7 @@ class BeanDefinitionMethodGenerator {
|
|||
|
||||
|
||||
/**
|
||||
* Generate the method that returns the {@link BeanDefinition} to be
|
||||
* registered.
|
||||
* Generate the method that returns the {@link BeanDefinition} to be registered.
|
||||
* @param generationContext the generation context
|
||||
* @param beanRegistrationsCode the bean registrations code
|
||||
* @return a reference to the generated method.
|
||||
|
|
@ -100,8 +99,7 @@ class BeanDefinitionMethodGenerator {
|
|||
BeanRegistrationsCode beanRegistrationsCode) {
|
||||
|
||||
registerRuntimeHintsIfNecessary(generationContext.getRuntimeHints());
|
||||
BeanRegistrationCodeFragments codeFragments = getCodeFragments(generationContext,
|
||||
beanRegistrationsCode);
|
||||
BeanRegistrationCodeFragments codeFragments = getCodeFragments(generationContext, beanRegistrationsCode);
|
||||
ClassName target = codeFragments.getTarget(this.registeredBean, this.constructorOrFactoryMethod);
|
||||
if (isWritablePackageName(target)) {
|
||||
GeneratedClass generatedClass = lookupGeneratedClass(generationContext, target);
|
||||
|
|
@ -187,7 +185,7 @@ class BeanDefinitionMethodGenerator {
|
|||
|
||||
return generatedMethods.add("getBeanDefinition", method -> {
|
||||
method.addJavadoc("Get the $L definition for '$L'.",
|
||||
(!this.registeredBean.isInnerBean()) ? "bean" : "inner-bean",
|
||||
(this.registeredBean.isInnerBean() ? "inner-bean" : "bean"),
|
||||
getName());
|
||||
method.addModifiers(modifier, Modifier.STATIC);
|
||||
method.returns(BeanDefinition.class);
|
||||
|
|
@ -214,9 +212,9 @@ class BeanDefinitionMethodGenerator {
|
|||
|
||||
private String getSimpleBeanName(String beanName) {
|
||||
int lastDot = beanName.lastIndexOf('.');
|
||||
beanName = (lastDot != -1) ? beanName.substring(lastDot + 1) : beanName;
|
||||
beanName = (lastDot != -1 ? beanName.substring(lastDot + 1) : beanName);
|
||||
int lastDollar = beanName.lastIndexOf('$');
|
||||
beanName = (lastDollar != -1) ? beanName.substring(lastDollar + 1) : beanName;
|
||||
beanName = (lastDollar != -1 ? beanName.substring(lastDollar + 1) : beanName);
|
||||
return StringUtils.uncapitalize(beanName);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -975,19 +975,19 @@ class ConstructorResolver {
|
|||
Assert.state(isCompatible, () -> String.format(
|
||||
"Incompatible target type '%s' for factory bean '%s'",
|
||||
resolvableType.toClass().getName(), factoryBeanClass.getName()));
|
||||
Executable executable = resolveConstructor(beanName, mbd,
|
||||
Constructor<?> constructor = resolveConstructor(beanName, mbd,
|
||||
() -> ResolvableType.forClass(factoryBeanClass), valueTypes);
|
||||
if (executable != null) {
|
||||
return executable;
|
||||
if (constructor != null) {
|
||||
return constructor;
|
||||
}
|
||||
throw new IllegalStateException("No suitable FactoryBean constructor found for " +
|
||||
mbd + " and argument types " + valueTypes);
|
||||
|
||||
}
|
||||
|
||||
Executable resolvedConstructor = resolveConstructor(beanName, mbd, beanType, valueTypes);
|
||||
if (resolvedConstructor != null) {
|
||||
return resolvedConstructor;
|
||||
Constructor<?> constructor = resolveConstructor(beanName, mbd, beanType, valueTypes);
|
||||
if (constructor != null) {
|
||||
return constructor;
|
||||
}
|
||||
|
||||
throw new IllegalStateException("No constructor or factory method candidate found for " +
|
||||
|
|
@ -1030,7 +1030,7 @@ class ConstructorResolver {
|
|||
}
|
||||
|
||||
@Nullable
|
||||
private Executable resolveConstructor(String beanName, RootBeanDefinition mbd,
|
||||
private Constructor<?> resolveConstructor(String beanName, RootBeanDefinition mbd,
|
||||
Supplier<ResolvableType> beanType, List<ResolvableType> valueTypes) {
|
||||
|
||||
Class<?> type = ClassUtils.getUserClass(beanType.get().toClass());
|
||||
|
|
@ -1054,14 +1054,14 @@ class ConstructorResolver {
|
|||
}
|
||||
return types;
|
||||
};
|
||||
List<? extends Executable> matches = Arrays.stream(ctors)
|
||||
List<Constructor<?>> matches = Arrays.stream(ctors)
|
||||
.filter(executable -> match(parameterTypesFactory.apply(executable),
|
||||
valueTypes, FallbackMode.NONE))
|
||||
.toList();
|
||||
if (matches.size() == 1) {
|
||||
return matches.get(0);
|
||||
}
|
||||
List<? extends Executable> assignableElementFallbackMatches = Arrays
|
||||
List<Constructor<?>> assignableElementFallbackMatches = Arrays
|
||||
.stream(ctors)
|
||||
.filter(executable -> match(parameterTypesFactory.apply(executable),
|
||||
valueTypes, FallbackMode.ASSIGNABLE_ELEMENT))
|
||||
|
|
@ -1069,7 +1069,7 @@ class ConstructorResolver {
|
|||
if (assignableElementFallbackMatches.size() == 1) {
|
||||
return assignableElementFallbackMatches.get(0);
|
||||
}
|
||||
List<? extends Executable> typeConversionFallbackMatches = Arrays
|
||||
List<Constructor<?>> typeConversionFallbackMatches = Arrays
|
||||
.stream(ctors)
|
||||
.filter(executable -> match(parameterTypesFactory.apply(executable),
|
||||
valueTypes, FallbackMode.TYPE_CONVERSION))
|
||||
|
|
@ -1121,7 +1121,7 @@ class ConstructorResolver {
|
|||
}
|
||||
return types;
|
||||
};
|
||||
result = (Method) resolveFactoryMethod(candidates, parameterTypesFactory, valueTypes);
|
||||
result = resolveFactoryMethod(candidates, parameterTypesFactory, valueTypes);
|
||||
}
|
||||
|
||||
if (result == null) {
|
||||
|
|
@ -1138,24 +1138,24 @@ class ConstructorResolver {
|
|||
}
|
||||
|
||||
@Nullable
|
||||
private Executable resolveFactoryMethod(List<Method> executables,
|
||||
private Method resolveFactoryMethod(List<Method> executables,
|
||||
Function<Method, List<ResolvableType>> parameterTypesFactory,
|
||||
List<ResolvableType> valueTypes) {
|
||||
|
||||
List<? extends Executable> matches = executables.stream()
|
||||
List<Method> matches = executables.stream()
|
||||
.filter(executable -> match(parameterTypesFactory.apply(executable), valueTypes, FallbackMode.NONE))
|
||||
.toList();
|
||||
if (matches.size() == 1) {
|
||||
return matches.get(0);
|
||||
}
|
||||
List<? extends Executable> assignableElementFallbackMatches = executables.stream()
|
||||
List<Method> assignableElementFallbackMatches = executables.stream()
|
||||
.filter(executable -> match(parameterTypesFactory.apply(executable),
|
||||
valueTypes, FallbackMode.ASSIGNABLE_ELEMENT))
|
||||
.toList();
|
||||
if (assignableElementFallbackMatches.size() == 1) {
|
||||
return assignableElementFallbackMatches.get(0);
|
||||
}
|
||||
List<? extends Executable> typeConversionFallbackMatches = executables.stream()
|
||||
List<Method> typeConversionFallbackMatches = executables.stream()
|
||||
.filter(executable -> match(parameterTypesFactory.apply(executable),
|
||||
valueTypes, FallbackMode.TYPE_CONVERSION))
|
||||
.toList();
|
||||
|
|
|
|||
Loading…
Reference in New Issue