package org.theonefx.wcframework.ioc;
import org.theonefx.wcframework.core.exception.BeansException;
import org.theonefx.wcframework.ioc.exception.NoSuchBeanException;
public interface BeanFactory {
Object getBean(String id) throws BeansException;
<T> T getBean(String id, Class<T> requiredType) throws BeansException;
<T> T getBean(Class<T> requiredType) throws BeansException;
boolean containsBean(String id);
boolean containsBean(Class<?> requiredType);
boolean isSingleton(String id) throws NoSuchBeanException;
boolean isPrototype(String id) throws NoSuchBeanException;
boolean isTypeMatch(String id, Class<?> targetType) throws NoSuchBeanException;
Class<?> getType(String id) throws NoSuchBeanException;
}