package org.alien4cloud.tosca.editor.processors.groups;
import static alien4cloud.utils.AlienUtils.safe;
import alien4cloud.exception.NotFoundException;
import org.alien4cloud.tosca.editor.EditionContextManager;
import org.alien4cloud.tosca.editor.operations.groups.DeleteGroupOperation;
import org.alien4cloud.tosca.editor.processors.IEditorOperationProcessor;
import org.springframework.stereotype.Component;
import org.alien4cloud.tosca.model.templates.NodeGroup;
import org.alien4cloud.tosca.model.templates.NodeTemplate;
import org.alien4cloud.tosca.model.templates.Topology;
/**
* Delete a group from a topology.
*/
@Component
public class DeleteGroupProcessor implements IEditorOperationProcessor<DeleteGroupOperation> {
@Override
public void process(DeleteGroupOperation operation) {
Topology topology = EditionContextManager.getTopology();
NodeGroup nodeGroup = topology.getGroups() == null ? null : topology.getGroups().remove(operation.getGroupName());
if (nodeGroup == null) {
throw new NotFoundException("Group " + operation.getGroupName() + " does not exists");
}
for (NodeTemplate nodeTemplate : safe(topology.getNodeTemplates()).values()) {
if (nodeTemplate.getGroups() != null) {
nodeTemplate.getGroups().remove(operation.getGroupName());
}
}
}
}