package org.test4j.module.spring.strategy.register.types;
import java.lang.reflect.Method;
import java.util.Queue;
import org.test4j.module.spring.strategy.register.RegisterBeanDefinition;
import org.test4j.tools.commons.ClazzHelper;
@SuppressWarnings("rawtypes")
public class MethodPropertiesRegister extends PropertiesRegister {
protected MethodPropertiesRegister(Class ownerClazz, RegisterBeanDefinition definitionRegister) {
super(ownerClazz, definitionRegister);
}
public void registerProperties(final Queue<Class> registedBeanClazz) {
Method[] allmethods = ownerClazz.getMethods();
for (Method method : allmethods) {
if (method.getParameterTypes().length != 1) {
continue;
}
Class propClazz = method.getParameterTypes()[0];
String beanName = ClazzHelper.exactBeanName(method);
boolean isExclude = this.definitionRegister.isExcludeProperty(beanName, propClazz);
if (isExclude == false) {
this.registerBean(beanName, propClazz, registedBeanClazz);
}
}
}
// private void registerBean(final String beanName, final Class propClazz,
// final Queue<Class> registedBeanClazz) {
// try {
// boolean doesRegisted = definitionRegister.doesHaveRegisted(beanName);
// if (doesRegisted) {
// return;
// }
// Class impl = definitionRegister.findImplementClass(ownerClazz, beanName,
// propClazz);
// if (impl == null) {
// return;
// }
// RootBeanDefinition beanDefinition =
// SpringBeanRegister.getRootBeanDefinition(beanName, impl, true);
// definitionRegister.register(beanName, beanDefinition);
//
// registedBeanClazz.offer(impl);
// } catch (FindBeanImplClassException e) {
// definitionRegister.ignoreNotFoundException(e);
// }
// }
}