private void createReferences(ComponentDefinition<?> definition, LogicalComponent<?> component, ComponentType componentType) {
for (AbstractReference reference : componentType.getReferences().values()) {
String name = reference.getName();
URI referenceUri = component.getUri().resolve('#' + name);
LogicalReference logicalReference = new LogicalReference(referenceUri, reference, component);
ComponentReference componentReference = definition.getReferences().get(name);
if (componentReference != null) {
logicalReference.addIntents(componentReference.getIntents());
for (BindingDefinition binding : componentReference.getBindings()) {
LogicalBinding<BindingDefinition> logicalBinding = new LogicalBinding<BindingDefinition>(binding, logicalReference);
logicalReference.addBinding(logicalBinding);
}
for (BindingDefinition binding : componentReference.getCallbackBindings()) {
LogicalBinding<BindingDefinition> logicalBinding = new LogicalBinding<BindingDefinition>(binding, logicalReference);
logicalReference.addCallbackBinding(logicalBinding);
}
}
component.addReference(logicalReference);
}
}