package org.alien4cloud.tosca.editor.processors.relationshiptemplate; import javax.annotation.Resource; import org.alien4cloud.tosca.editor.EditionContextManager; import org.alien4cloud.tosca.editor.operations.relationshiptemplate.DeleteRelationshipOperation; import org.alien4cloud.tosca.model.templates.NodeTemplate; import org.alien4cloud.tosca.model.templates.RelationshipTemplate; import org.alien4cloud.tosca.model.templates.Topology; import org.springframework.stereotype.Component; import alien4cloud.paas.wf.WorkflowsBuilderService; import alien4cloud.topology.TopologyService; import lombok.extern.slf4j.Slf4j; /** * Process a delete relationship operation. */ @Slf4j @Component public class DeleteRelationshipProcessor extends AbstractRelationshipProcessor<DeleteRelationshipOperation> { @Resource private TopologyService topologyService; @Resource private WorkflowsBuilderService workflowBuilderService; @Override protected void processRelationshipOperation(DeleteRelationshipOperation operation, NodeTemplate nodeTemplate, RelationshipTemplate relationshipTemplate) { Topology topology = EditionContextManager.getTopology(); log.debug("Removing the Relationship template <" + operation.getRelationshipName() + "> from the Node template <" + operation.getNodeName() + ">, Topology <" + topology.getId() + "> ."); topologyService.unloadType(topology, relationshipTemplate.getType()); nodeTemplate.getRelationships().remove(operation.getRelationshipName()); workflowBuilderService.removeRelationship(topology, operation.getNodeName(), operation.getRelationshipName(), relationshipTemplate); } }