package org.alien4cloud.tosca.editor.processors.substitution; import java.util.Map; import org.alien4cloud.tosca.editor.EditionContextManager; import org.alien4cloud.tosca.editor.operations.substitution.RemoveCapabilitySubstitutionTypeOperation; import org.alien4cloud.tosca.editor.processors.IEditorOperationProcessor; import org.springframework.stereotype.Component; import alien4cloud.exception.NotFoundException; import org.alien4cloud.tosca.model.templates.SubstitutionTarget; import org.alien4cloud.tosca.model.templates.Topology; /** * Delete a group from a topology. */ @Component public class RemoveCapabilitySubstitutionTypeProcessor implements IEditorOperationProcessor<RemoveCapabilitySubstitutionTypeOperation> { @Override public void process(RemoveCapabilitySubstitutionTypeOperation operation) { Topology topology = EditionContextManager.getTopology(); if (topology.getSubstitutionMapping() == null || topology.getSubstitutionMapping().getSubstitutionType() == null) { throw new NotFoundException("No substitution type has been found"); } Map<String, SubstitutionTarget> substitutionCapabilities = topology.getSubstitutionMapping().getCapabilities(); if (substitutionCapabilities == null) { throw new NotFoundException("No substitution capabilities has been found"); } SubstitutionTarget target = substitutionCapabilities.remove(operation.getSubstitutionCapabilityId()); if (target == null) { throw new NotFoundException("No substitution capability has been found for key " + operation.getSubstitutionCapabilityId()); } } }