org.springframework.beans.factory.config.ConstructorArgumentValues#ValueHolder ( )源码实例Demo

下面列出了org.springframework.beans.factory.config.ConstructorArgumentValues#ValueHolder ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

public static Class<?>[] getParamTypesFromBeanDefinitionFactory(Class<?> factory,
		AbstractBeanDefinition definition) {
	if (definition instanceof RootBeanDefinition) {
		RootBeanDefinition root = (RootBeanDefinition) definition;
		for (Method method : getCandidateMethods(factory, root)) {
			if (root.isFactoryMethod(method)) {
				return method.getParameterTypes();
			}
		}
	}
	List<Class<?>> params = new ArrayList<>();
	for (ConstructorArgumentValues.ValueHolder holder : definition
			.getConstructorArgumentValues().getIndexedArgumentValues().values()) {
		params.add(ClassUtils.resolveClassName(holder.getType(), null));
	}
	return params.toArray(new Class<?>[0]);
}
 
private static Class<?>[] getParamTypes(Class<?> factory,
		AbstractBeanDefinition definition) {
	if (definition instanceof RootBeanDefinition) {
		RootBeanDefinition root = (RootBeanDefinition) definition;
		for (Method method : getCandidateMethods(factory, root)) {
			if (root.isFactoryMethod(method)) {
				return method.getParameterTypes();
			}
		}
	}
	List<Class<?>> params = new ArrayList<>();
	for (ConstructorArgumentValues.ValueHolder holder : definition
			.getConstructorArgumentValues().getIndexedArgumentValues().values()) {
		params.add(ClassUtils.resolveClassName(holder.getType(), null));
	}
	return params.toArray(new Class<?>[0]);
}
 
源代码3 项目: redisson   文件: RedissonNamespaceParserSupport.java
public void addConstructorArgs(Object value, Class<?> type, BeanDefinition bd) {
    ConstructorArgumentValues.ValueHolder vHolder
            = new ConstructorArgumentValues.ValueHolder(value, type.getName());
    ConstructorArgumentValues args
            = bd.getConstructorArgumentValues();
    args.addIndexedArgumentValue(args.getArgumentCount(), vHolder);
}
 
源代码4 项目: wallride   文件: WebAdminComponentScanRegistrar.java
private void updateWebAdminComponentScanBeanPostProcessor(BeanDefinitionRegistry registry, Set<String> packagesToScan) {
	BeanDefinition definition = registry.getBeanDefinition(BEAN_NAME);
	ConstructorArgumentValues.ValueHolder constructorArguments = definition.getConstructorArgumentValues()
			.getGenericArgumentValue(String[].class);
	Set<String> mergedPackages = new LinkedHashSet<>();
	mergedPackages.addAll(Arrays.asList((String[]) constructorArguments.getValue()));
	mergedPackages.addAll(packagesToScan);
	constructorArguments.setValue(toArray(mergedPackages));
}
 
源代码5 项目: wallride   文件: WebGuestComponentScanRegistrar.java
private void updateWebGuestComponentScanBeanPostProcessor(BeanDefinitionRegistry registry, Set<String> packagesToScan) {
	BeanDefinition definition = registry.getBeanDefinition(BEAN_NAME);
	ConstructorArgumentValues.ValueHolder constructorArguments = definition.getConstructorArgumentValues()
			.getGenericArgumentValue(String[].class);
	Set<String> mergedPackages = new LinkedHashSet<>();
	mergedPackages.addAll(Arrays.asList((String[]) constructorArguments.getValue()));
	mergedPackages.addAll(packagesToScan);
	constructorArguments.setValue(toArray(mergedPackages));
}