package org.theonefx.wcframework.mvc;
import org.theonefx.wcframework.core.BeanDefinitionRegistry;
import org.theonefx.wcframework.core.exception.BeansException;
import org.theonefx.wcframework.ioc.DefaultBeanFactory;
import org.theonefx.wcframework.ioc.exception.NoSuchBeanException;
public abstract class ApplicationContextSupport implements ApplicationContext {
private DefaultBeanFactory beanFactory;
protected ApplicationContextSupport() {
beanFactory = new DefaultBeanFactory();
}
protected DefaultBeanFactory getDefaultBeanFactory() {
return beanFactory;
}
protected BeanDefinitionRegistry getBeanDefinitionRegistry() {
return beanFactory;
}
@Override
public Object getBean(String id) throws BeansException {
return beanFactory.getBean(id);
}
@Override
public <T> T getBean(String id, Class<T> requiredType) throws BeansException {
return beanFactory.getBean(id, requiredType);
}
@Override
public <T> T getBean(Class<T> requiredType) throws BeansException {
return beanFactory.getBean(requiredType);
}
@Override
public boolean containsBean(String id) {
return beanFactory.containsBean(id);
}
@Override
public boolean isSingleton(String id) throws NoSuchBeanException {
return beanFactory.isSingleton(id);
}
@Override
public boolean isPrototype(String id) throws NoSuchBeanException {
return beanFactory.isPrototype(id);
}
@Override
public boolean isTypeMatch(String id, Class<?> targetType) throws NoSuchBeanException {
return beanFactory.isTypeMatch(id, targetType);
}
@Override
public Class<?> getType(String id) throws NoSuchBeanException {
return beanFactory.getType(id);
}
@Override
public boolean containsBean(Class<?> requiredType) {
return beanFactory.containsBean(requiredType);
}
}