ComponentTypeReferenceValue value = new ComponentTypeReferenceValue(propertyClassType);
InjectionCriteria criteriaDefinition = extractAnnotation(property, InjectionCriteria.class);
if (criteriaDefinition != null) {
Class annotationType = criteriaDefinition.annotatedBy();
AnnotatedCriteria criteria = new AnnotatedCriteria(annotationType);
value.setCriteria(criteria);
}
PropertySetting propertySetting = new PropertySetting(value, property.getName(), required);
definition.addPropertySetting(propertySetting);