public <T extends ResourceReferenceDefinition> PhysicalWireDefinition generateResource(LogicalResourceReference<T> resourceReference) throws GenerationException { T resourceDefinition = resourceReference.getDefinition(); LogicalComponent<?> component = resourceReference.getParent(); // Generates the wire source metadata ComponentGenerator sourceGenerator = getGenerator(component); PhysicalSourceDefinition sourceDefinition = sourceGenerator.generateResourceSource(resourceReference); sourceDefinition.setClassLoaderId(component.getDefinition().getContributionUri()); // Generates the wire target metadata ResourceReferenceGenerator<T> targetGenerator = getGenerator(resourceDefinition); PhysicalTargetDefinition targetDefinition = targetGenerator.generateWireTarget(resourceReference); targetDefinition.setClassLoaderId(resourceReference.getParent().getDefinition().getContributionUri()); boolean optimizable = targetDefinition.isOptimizable(); // Create the wire from the component to the resource List<LogicalOperation> sourceOperations = resourceReference.getOperations(); Set<PhysicalOperationDefinition> operations = operationGenerator.generateOperations(sourceOperations, false, null); PhysicalWireDefinition pwd = new PhysicalWireDefinition(sourceDefinition, targetDefinition, operations); pwd.setOptimizable(optimizable); return pwd; }
new PhysicalWireDefinition(sourceDefinition, sourceDeployable, targetDefinition, targetDeployable, operations); boolean optimizable = sourceDefinition.isOptimizable() && targetDefinition.isOptimizable() && checkOptimization(referenceContract, operations); pwd.setOptimizable(optimizable); return pwd;
boolean optimizable = sourceDefinition.isOptimizable() && targetDefinition.isOptimizable() && checkOptimization(contract, physicalOperations); pwd.setOptimizable(optimizable); return pwd;