private void createServices(ComponentDefinition<?> definition, LogicalComponent<?> component, ComponentType componentType) {
for (AbstractService<?> service : componentType.getServices().values()) {
String name = service.getName();
URI serviceUri = component.getUri().resolve('#' + name);
LogicalService logicalService = new LogicalService(serviceUri, service, component);
for (BindingDefinition binding : service.getBindings()) {
LogicalBinding<BindingDefinition> logicalBinding = new LogicalBinding<BindingDefinition>(binding, logicalService);
logicalService.addBinding(logicalBinding);
}
for (BindingDefinition binding : service.getCallbackBindings()) {
LogicalBinding<BindingDefinition> logicalBinding = new LogicalBinding<BindingDefinition>(binding, logicalService);
logicalService.addCallbackBinding(logicalBinding);
}
ComponentService componentService = definition.getServices().get(name);
if (componentService != null) {
logicalService.addIntents(componentService.getIntents());
for (BindingDefinition binding : componentService.getBindings()) {
LogicalBinding<BindingDefinition> logicalBinding = new LogicalBinding<BindingDefinition>(binding, logicalService);
logicalService.addBinding(logicalBinding);
}
for (BindingDefinition binding : componentService.getCallbackBindings()) {
LogicalBinding<BindingDefinition> logicalBinding = new LogicalBinding<BindingDefinition>(binding, logicalService);
logicalService.addCallbackBinding(logicalBinding);
}
}
component.addService(logicalService);
}
}