private static BeanMetaDataBuilder getConfigurableBeanMetaDataBuilder(final String provider, final AbstractConfigurableMetaData configurableMetaData) {
final String name = configurableMetaData.getName();
final String privateName = name + ":Xnio-private:" + Integer.toHexString(name.hashCode()) + ":" + Integer.toHexString(PRIVATE_SEQ.getAndIncrement());
final BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(privateName, XnioController.class.getName());
if (provider != null) {
builder.addConstructorParameter(Xnio.class.getName(), builder.createInject(provider));
} else {
// todo: createInject auto-wired based on class
builder.addConstructorParameter(Xnio.class.getName(), builder.createInject(DEFAULT_PROVIDER_BEAN_NAME));
}
addConfigProperties(builder, configurableMetaData);