public void visitConstructorParameter(org.fabric3.api.annotation.Consumer annotation,
java.lang.reflect.Constructor<?> constructor,
int index,
Class<?> implClass,
InjectingComponentType componentType,
IntrospectionContext context) {
String name = helper.getSiteName(constructor, index, annotation.value());
TypeMapping typeMapping = context.getTypeMapping(implClass);
Class<?> genericType = constructor.getParameterTypes()[index];
Type logicalParamType = typeMapping.getActualType(genericType);
DataType dataType = createDataType(genericType, logicalParamType, typeMapping);
ServiceContract contract = null;
if (contractProcessor != null) {
Class<?> baseType = helper.getBaseType(genericType, typeMapping);
contract = contractProcessor.introspect(baseType, implClass, context, componentType);
}
ConstructorInjectionSite injectionSite = new ConstructorInjectionSite(constructor, index);
Consumer<ComponentType> consumer = new Consumer<>(name, dataType, contract);
if (annotation.group().length() > 0){
consumer.setGroup(annotation.group());
}
processSources(annotation, consumer, constructor, constructor.getDeclaringClass(), context);
componentType.add(consumer, injectionSite, constructor);
}