package ilarkesto.di; import ilarkesto.base.BeanMap; import java.util.HashSet; import java.util.Set; /** * Bean provider which uses a bean/object as the source for beans. Each getter in the bean acts as a bean * provided by this bean provider. * * @author wko */ public class ReflectionBeanProvider<T> extends ABeanProvider { private BeanMap<T> beanMap; public ReflectionBeanProvider(T bean) { beanMap = new BeanMap<T>(bean); } public T getBean() { return beanMap.getBean(); } public final Set<String> beanNames() { Set<String> result = new HashSet<String>(beanMap.keySet()); result.remove("class"); return result; } public final boolean containsBean(String beanName) { return beanMap.containsKey(beanName); } public final Object getBean(String beanName) { return beanMap.get(beanName); } public final Class getBeanType(String beanName) { return beanMap.getType(beanName); } @Override public String toString() { return beanMap.getBean().toString(); // return "ReflectionBeanProvider: " + Utl.toStringWithType(beanMap.getBean()); } }