@Inject protected PropertyWidgetFactoryImpl(ComponentBuilder componentBuilder, DCModule dcModule) { _componentBuilder = componentBuilder; _dcModule = dcModule; _propertyWidgetCollection = new PropertyWidgetCollection(componentBuilder); final Set<ConfiguredPropertyDescriptor> mappedProperties = componentBuilder.getDescriptor().getConfiguredPropertiesByAnnotation(MappedProperty.class); for (ConfiguredPropertyDescriptor mappedProperty : mappedProperties) { MappedProperty annotation = mappedProperty.getAnnotation(MappedProperty.class); String mappedToName = annotation.value(); ConfiguredPropertyDescriptor mappedToProperty = componentBuilder.getDescriptor().getConfiguredProperty(mappedToName); PropertyWidgetMapping propertyWidgetMapping = buildMappedPropertyWidget(mappedProperty, mappedToProperty); _propertyWidgetCollection.putMappedPropertyWidget(mappedProperty, propertyWidgetMapping); _propertyWidgetCollection.putMappedPropertyWidget(mappedToProperty, propertyWidgetMapping); } }