/** * Create a Bean binding configuration. * * @param beanClass The bean runtime class. * @param beanId The bean ID. * @param createOnElement The element selector used to create the bean instance. * @param createOnElementNS The namespace for the element selector used to create the bean instance. * @param factory The factory that will create the runtime object */ public <T> Bean(Class<T> beanClass, String beanId, String createOnElement, String createOnElementNS, Factory<? extends T> factory) { super(beanId); AssertArgument.isNotNull(beanClass, "beanClass"); AssertArgument.isNotNull(createOnElement, "createOnElement"); this.beanClass = beanClass; this.createOnElement = createOnElement; this.targetNamespace = createOnElementNS; beanInstanceCreator = new BeanInstanceCreator(beanId, beanClass, factory); }