public <T extends ResourceReference> PhysicalWire generateResource(LogicalResourceReference<T> logicalReference) { T reference = logicalReference.getDefinition(); LogicalComponent<?> component = logicalReference.getParent(); // Generates the wire source metadata ComponentGenerator sourceGenerator = getGenerator(component); @SuppressWarnings("unchecked") PhysicalWireSource source = sourceGenerator.generateResourceSource(logicalReference); URI sourceUri = component.getDefinition().getContributionUri(); source.setClassLoader(classLoaderRegistry.getClassLoader(sourceUri)); // Generates the wire target metadata ResourceReferenceGenerator<T> targetGenerator = getGenerator(reference); PhysicalWireTarget target = targetGenerator.generateWireTarget(logicalReference); URI targetUri = logicalReference.getParent().getDefinition().getContributionUri(); target.setClassLoader(classLoaderRegistry.getClassLoader(targetUri)); boolean optimizable = target.isOptimizable(); // Create the wire from the component to the resource List<LogicalOperation> sourceOperations = logicalReference.getOperations(); Set<PhysicalOperation> operations = operationGenerator.generateOperations(sourceOperations); PhysicalWire physicalWire = new PhysicalWire(source, target, operations); physicalWire.setOptimizable(optimizable); return physicalWire; }
public <T extends ResourceReference> PhysicalWire generateResource(LogicalResourceReference<T> logicalReference) { T reference = logicalReference.getDefinition(); LogicalComponent<?> component = logicalReference.getParent(); // Generates the wire source metadata ComponentGenerator sourceGenerator = getGenerator(component); @SuppressWarnings("unchecked") PhysicalWireSource source = sourceGenerator.generateResourceSource(logicalReference); URI sourceUri = component.getDefinition().getContributionUri(); source.setClassLoader(classLoaderRegistry.getClassLoader(sourceUri)); // Generates the wire target metadata ResourceReferenceGenerator<T> targetGenerator = getGenerator(reference); PhysicalWireTarget target = targetGenerator.generateWireTarget(logicalReference); URI targetUri = logicalReference.getParent().getDefinition().getContributionUri(); target.setClassLoader(classLoaderRegistry.getClassLoader(targetUri)); boolean optimizable = target.isOptimizable(); // Create the wire from the component to the resource List<LogicalOperation> sourceOperations = logicalReference.getOperations(); Set<PhysicalOperation> operations = operationGenerator.generateOperations(sourceOperations); PhysicalWire physicalWire = new PhysicalWire(source, target, operations); physicalWire.setOptimizable(optimizable); return physicalWire; }