{
ParameterizedType parameterizedType = (ParameterizedType) type;
Type[] typeArguments = parameterizedType.getActualTypeArguments();
Class<T> valueType = (Class<T>) resolveRealType(typeArguments[0]);
WithAttributes withAttributes = injectionPoint.getAnnotated().getAnnotation(WithAttributes.class);
String paramName = (withAttributes == null || withAttributes.name().trim().isEmpty()) ? name
: withAttributes.name();
char shortName = (withAttributes == null) ? InputComponents.DEFAULT_SHORT_NAME : withAttributes.shortName();
UIInputMany<T> input = createInputMany(paramName, shortName, valueType);
preconfigureInput(input, withAttributes);
for (InputComponentInjectionEnricher enricher : enrichers)
{
enricher.enrich(injectionPoint, input);