public <T> BeanDefinitionBase create(String id, Class<? super T> typeClass, boolean primary, String name, boolean lazyInit, Class<?> beanClass, Object... constructorArguments) {
BeanDefinitionBase bd = new BeanDefinitionBase(RUNTIME_SOURCE);
bd.setId(id);
bd.setName(name);
bd.setType(typeClass);
bd.setBeanClass(beanClass);
bd.setBeanClassType(BeanType.of(beanClass));
bd.setPrimary(primary);
bd.setSingleton(true);
bd.setLazyInit(lazyInit);
for (Object arg : constructorArguments) {
bd.addConstructorArgument(new ArgumentDefinition(new ValueDefinition(arg)));
}
resolveBeanConstructor(bd);
return bd;
}