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; }