private Map<String, String> handleDefaultReferenceMappings(Component<SpringImplementation> component, ComponentType type) { Map<String, String> mappings = new HashMap<>(); for (Reference reference : type.getReferences().values()) { SpringReference springReference = (SpringReference) reference; String defaultStr = springReference.getDefaultValue(); if (defaultStr == null) { continue; } String refName = springReference.getName(); if (component.getReferences().containsKey(refName)) { continue; } mappings.put(defaultStr, refName); } return mappings; }
/** * Add a producer and its associated injection site. * * @param producer the producer to add * @param injectionSite the injection site for the producer */ public void add(Producer<ComponentType> producer, InjectionSite injectionSite) { super.add(producer); Injectable injectable = new Injectable(InjectableType.PRODUCER, producer.getName()); addInjectionSite(injectionSite, injectable); injectionSiteMapping.put(producer, injectionSite); }
private void createResourceReferences(LogicalComponent<?> logicalComponent, ComponentType componentType) { for (ResourceReference reference : componentType.getResourceReferences().values()) { URI resourceUri = logicalComponent.getUri().resolve('#' + reference.getName()); LogicalResourceReference<ResourceReference> logicalReference = new LogicalResourceReference<>(resourceUri, reference, logicalComponent); logicalComponent.addResource(logicalReference); } }
for (Map.Entry<String, Reference<ComponentType>> entry : componentType.getReferences().entrySet()) { type.add(entry.getValue()); for (Map.Entry<String, Property> entry : componentType.getProperties().entrySet()) { type.add(entry.getValue());
private void processPropertyValues(LogicalComponent<?> component, PhysicalSpringComponent springComponent) { for (LogicalProperty property : component.getAllProperties().values()) { String name = property.getName(); boolean many = property.isMany(); if (property.getXmlValue() != null) { Document document = property.getXmlValue(); ComponentType componentType = component.getDefinition().getImplementation().getComponentType(); QName type = componentType.getProperties().get(property.getName()).getType(); PhysicalProperty physicalProperty = PhysicalProperty.Builder.newBuilder(name).xmlValue(document).many(many).type(type).build(); springComponent.setProperty(physicalProperty); } else if (property.getInstanceValue() != null) { Object value = property.getInstanceValue(); PhysicalProperty physicalProperty = PhysicalProperty.Builder.newBuilder(name).instanceValue(value).many(many).build(); springComponent.setProperty(physicalProperty); } } }
/** * Returns true if the reference is not keyed, true if the reference is keyed and the target specifies a key, false if the reference is keyed and the target * does not specify a key. * * @param logicalReference the logical reference * @param target the target * @return true if the reference is not keyed, true if the reference is keyed and the target specifies a key, false if the reference is keyed and the target * does not specify a key */ private boolean validKey(LogicalReference logicalReference, LogicalComponent<?> target) { return !logicalReference.getDefinition().isKeyed() || target.getDefinition().getKey() != null || target.getDefinition().getComponentType().getKey() != null; } }
/** * Returns the key specified on the component, component type, or {@link Integer#MIN_VALUE} * * @param logicalComponent the component * @return the key or null */ private int getOrder(LogicalComponent logicalComponent) { int order = logicalComponent.getDefinition().getOrder(); if (order == Integer.MIN_VALUE) { Component<?> component = logicalComponent.getDefinition(); if (component.getComponentType() != null) { order = component.getComponentType().getOrder(); } } return order; }
private void createProducers(Component<?> component, LogicalComponent<?> logicalComponent, ComponentType componentType) { for (Producer<ComponentType> producer : componentType.getProducers().values()) { String name = producer.getName(); URI producerUri = logicalComponent.getUri().resolve('#' + name); LogicalProducer logicalProducer = new LogicalProducer(producerUri, producer, logicalComponent); // producer is configured in the logicalComponent definition Producer<Component> componentProducer = component.getProducers().get(name); if (componentProducer != null) { for (URI uri : componentProducer.getTargets()) { addTarget(logicalProducer, uri, logicalComponent); } } else { for (URI uri : producer.getTargets()) { addTarget(logicalProducer, uri, logicalComponent); } } logicalComponent.addProducer(logicalProducer); } }
private void createConsumers(Component<?> definition, LogicalComponent<?> logicalComponent, ComponentType componentType) { for (Consumer<ComponentType> consumer : componentType.getConsumers().values()) { String name = consumer.getName(); URI consumerUri = logicalComponent.getUri().resolve('#' + name); LogicalConsumer logicalConsumer = new LogicalConsumer(consumerUri, consumer, logicalComponent); // producer is configured in the logicalComponent definition Consumer<Component> componentConsumer = definition.getConsumers().get(name); if (componentConsumer != null) { for (URI uri : componentConsumer.getSources()) { addSource(logicalConsumer, uri, logicalComponent); } } else { for (URI uri : consumer.getSources()) { addSource(logicalConsumer, uri, logicalComponent); } } logicalConsumer.setServiceContract(consumer.getServiceContract()); logicalComponent.addConsumer(logicalConsumer); } }
private void createServices(Component<?> component, LogicalComponent<?> logicalComponent, ComponentType componentType) { for (Service<ComponentType> service : componentType.getServices().values()) { String name = service.getName(); URI serviceUri = logicalComponent.getUri().resolve('#' + name); LogicalService logicalService = new LogicalService(serviceUri, service, logicalComponent); for (Binding binding : service.getBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalService); logicalService.addBinding(logicalBinding); } for (Binding binding : service.getCallbackBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalService); logicalService.addCallbackBinding(logicalBinding); } // service is configured in the component definition Service<Component> componentService = component.getServices().get(name); if (componentService != null) { for (Binding binding : componentService.getBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalService); logicalService.addBinding(logicalBinding); } for (Binding binding : componentService.getCallbackBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalService); logicalService.addCallbackBinding(logicalBinding); } } logicalComponent.addService(logicalService); } }
private void processPropertyValues(LogicalComponent<?> component, PhysicalSpringComponent springComponent) { for (LogicalProperty property : component.getAllProperties().values()) { String name = property.getName(); boolean many = property.isMany(); if (property.getXmlValue() != null) { Document document = property.getXmlValue(); ComponentType componentType = component.getDefinition().getImplementation().getComponentType(); QName type = componentType.getProperties().get(property.getName()).getType(); PhysicalProperty physicalProperty = PhysicalProperty.Builder.newBuilder(name).xmlValue(document).many(many).type(type).build(); springComponent.setProperty(physicalProperty); } else if (property.getInstanceValue() != null) { Object value = property.getInstanceValue(); PhysicalProperty physicalProperty = PhysicalProperty.Builder.newBuilder(name).instanceValue(value).many(many).build(); springComponent.setProperty(physicalProperty); } } }
/** * Returns true if the reference is not keyed, true if the reference is keyed and the target specifies a key, false if the reference is keyed and the target * does not specify a key. * * @param logicalReference the logical reference * @param target the target * @return true if the reference is not keyed, true if the reference is keyed and the target specifies a key, false if the reference is keyed and the target * does not specify a key */ private boolean validKey(LogicalReference logicalReference, LogicalComponent<?> target) { return !logicalReference.getDefinition().isKeyed() || target.getDefinition().getKey() != null || target.getDefinition().getComponentType().getKey() != null; } }
/** * Returns the key specified on the component, component type, or {@link Integer#MIN_VALUE} * * @param logicalComponent the component * @return the key or null */ private int getOrder(LogicalComponent logicalComponent) { int order = logicalComponent.getDefinition().getOrder(); if (order == Integer.MIN_VALUE) { Component<?> component = logicalComponent.getDefinition(); if (component.getComponentType() != null) { order = component.getComponentType().getOrder(); } } return order; }
private void createProducers(Component<?> component, LogicalComponent<?> logicalComponent, ComponentType componentType) { for (Producer<ComponentType> producer : componentType.getProducers().values()) { String name = producer.getName(); URI producerUri = logicalComponent.getUri().resolve('#' + name); LogicalProducer logicalProducer = new LogicalProducer(producerUri, producer, logicalComponent); // producer is configured in the logicalComponent definition Producer<Component> componentProducer = component.getProducers().get(name); if (componentProducer != null) { for (URI uri : componentProducer.getTargets()) { addTarget(logicalProducer, uri, logicalComponent); } } else { for (URI uri : producer.getTargets()) { addTarget(logicalProducer, uri, logicalComponent); } } logicalComponent.addProducer(logicalProducer); } }
private void createConsumers(Component<?> definition, LogicalComponent<?> logicalComponent, ComponentType componentType) { for (Consumer<ComponentType> consumer : componentType.getConsumers().values()) { String name = consumer.getName(); URI consumerUri = logicalComponent.getUri().resolve('#' + name); LogicalConsumer logicalConsumer = new LogicalConsumer(consumerUri, consumer, logicalComponent); // producer is configured in the logicalComponent definition Consumer<Component> componentConsumer = definition.getConsumers().get(name); if (componentConsumer != null) { for (URI uri : componentConsumer.getSources()) { addSource(logicalConsumer, uri, logicalComponent); } } else { for (URI uri : consumer.getSources()) { addSource(logicalConsumer, uri, logicalComponent); } } logicalConsumer.setServiceContract(consumer.getServiceContract()); logicalComponent.addConsumer(logicalConsumer); } }
private void createServices(Component<?> component, LogicalComponent<?> logicalComponent, ComponentType componentType) { for (Service<ComponentType> service : componentType.getServices().values()) { String name = service.getName(); URI serviceUri = logicalComponent.getUri().resolve('#' + name); LogicalService logicalService = new LogicalService(serviceUri, service, logicalComponent); for (Binding binding : service.getBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalService); logicalService.addBinding(logicalBinding); } for (Binding binding : service.getCallbackBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalService); logicalService.addCallbackBinding(logicalBinding); } // service is configured in the component definition Service<Component> componentService = component.getServices().get(name); if (componentService != null) { for (Binding binding : componentService.getBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalService); logicalService.addBinding(logicalBinding); } for (Binding binding : componentService.getCallbackBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalService); logicalService.addCallbackBinding(logicalBinding); } } logicalComponent.addService(logicalService); } }
/** * Add a resource reference and its associated an injection site. * * @param definition the resource reference to add * @param injectionSite the injection site for the resource */ public void add(ResourceReference definition, InjectionSite injectionSite) { super.add(definition); Injectable injectable = new Injectable(InjectableType.RESOURCE, definition.getName()); addInjectionSite(injectionSite, injectable); injectionSiteMapping.put(definition, injectionSite); }
private Map<String, String> handleDefaultReferenceMappings(Component<SpringImplementation> component, ComponentType type) { Map<String, String> mappings = new HashMap<>(); for (Reference reference : type.getReferences().values()) { SpringReference springReference = (SpringReference) reference; String defaultStr = springReference.getDefaultValue(); if (defaultStr == null) { continue; } String refName = springReference.getName(); if (component.getReferences().containsKey(refName)) { continue; } mappings.put(defaultStr, refName); } return mappings; }
LogicalCompositeComponent parent = logicalComponent.getParent(); for (Property property : componentType.getProperties().values()) { String name = property.getName(); boolean required = property.isRequired();
/** * Returns the key specified on the component, component type, or null * * @param component the component * @return the key or null */ private String getKey(LogicalComponent component) { String key = component.getDefinition().getKey(); if (key == null) { // check if the key was specified in the component type if (component.getDefinition().getComponentType() != null) { key = component.getDefinition().getComponentType().getKey(); } } return key; }