private void evaluateConstructor(InjectingComponentType componentType, Class<?> implClass, IntrospectionContext context) {
Map<InjectionSite, Injectable> sites = componentType.getInjectionSites();
Constructor<?> constructor;
try {
if (componentType.getConstructor() == null) {
return;
}
constructor = componentType.getConstructor().getConstructor(implClass);
} catch (ClassNotFoundException e) {
throw new AssertionError(e);
} catch (NoSuchMethodException e) {
throw new AssertionError(e);
}
TypeMapping typeMapping = context.getTypeMapping(implClass);
Type[] parameterTypes = constructor.getGenericParameterTypes();
for (int i = 0; i < parameterTypes.length; i++) {
InjectionSite site = new ConstructorInjectionSite(constructor, i);
if (sites.containsKey(site)) {
continue;
}
Type parameterType = parameterTypes[i];
String name = helper.getSiteName(constructor, i, null);
Annotation[] annotations = constructor.getParameterAnnotations()[i];
processSite(componentType, typeMapping, name, constructor, parameterType, site, annotations, context);
}
}