package org.theonefx.wcframework.ioc;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import org.theonefx.wcframework.core.ClassWrapper;
import org.theonefx.wcframework.core.exception.BeansException;
public interface InstantiationStrategy {
Object instantiate(ClassWrapper<?> classWrapper, RootBeanDefinition beanDefinition, String beanName) throws BeansException;
Object instantiate(ClassWrapper<?> classWrapper, RootBeanDefinition beanDefinition, String beanName, BeanFactory owner, Constructor<?> ctor, Object[] args) throws BeansException;
Object instantiate(ClassWrapper<?> classWrapper, RootBeanDefinition beanDefinition, String beanName, BeanFactory owner, Object factoryBean, Method factoryMethod, Object[] args) throws BeansException;
}