package ilarkesto.di;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
/**
* Helper for implementing own BeanProviders.
*
* @author wko
*/
public abstract class ABeanProvider implements BeanProvider {
@SuppressWarnings("unchecked")
public final <T> Set<T> getBeansByType(Class<T> type) {
Set<T> result = new HashSet<T>();
for (String beanName : beanNames()) {
if (type.isAssignableFrom(getBeanType(beanName))) result.add((T) getBean(beanName));
}
return result;
}
public final Map<String, Object> getAllBeans() {
Map<String, Object> result = new HashMap<String, Object>();
for (String beanName : beanNames()) {
result.put(beanName, getBean(beanName));
}
return result;
}
// --- autowireing ---
public final <T> T autowire(T bean) {
return Autowire.autowire(bean, this, objectStringMapper);
}
public final <T> Class<T> autowireClass(Class<T> type) {
return Autowire.autowireClass(type, this, objectStringMapper);
}
// --- dependencies ---
protected ObjectStringMapper objectStringMapper;
public final void setObjectStringMapper(ObjectStringMapper objectStringMapper) {
this.objectStringMapper = objectStringMapper;
}
}