public static void add(final List<BeanMetaData> list, final String provider, final UdpServerMetaData udpServerMetaData) {
final String name = udpServerMetaData.getName();
final NamedBeanMetaData handlerFactoryBean = udpServerMetaData.getHandlerFactoryBean();
final NamedBeanMetaData executorBean = udpServerMetaData.getExecutorBean();
final BeanMetaDataBuilder builder = getConfigurableBeanMetaDataBuilder(provider, udpServerMetaData);
builder.setFactoryMethod("udpServer");
if (executorBean != null) {
builder.addConstructorParameter(Executor.class.getName(), builder.createInject(executorBean.getName()));
}
final Boolean multicast = udpServerMetaData.getMulticast();
builder.addConstructorParameter(boolean.class.getName(), builder.createValue(multicast == null ? Boolean.FALSE : multicast));
builder.addConstructorParameter(IoHandlerFactory.class.getName(), builder.createInject(handlerFactoryBean.getName()));
final List<SocketAddress> socketAddresses = new ArrayList<SocketAddress>();
for (InetSocketAddressMetaData metaData : udpServerMetaData.getBindAddresses()) {
socketAddresses.add(metaData.getSocketAddress());
}
builder.addConstructorParameter(SocketAddress[].class.getName(), builder.createValue(socketAddresses.toArray(new SocketAddress[socketAddresses.size()])));
addPublicAndPrivate(list, name, builder);
}