package org.alien4cloud.tosca.editor.processors.nodetemplate;
import org.alien4cloud.tosca.model.templates.Topology;
import alien4cloud.topology.TopologyServiceCore;
import org.alien4cloud.tosca.editor.EditionContextManager;
import org.alien4cloud.tosca.model.templates.NodeTemplate;
import org.alien4cloud.tosca.editor.operations.nodetemplate.AbstractNodeOperation;
import org.alien4cloud.tosca.editor.processors.IEditorOperationProcessor;
import java.util.Map;
/**
* Abstract operation to get a required node template.
*/
public abstract class AbstractNodeProcessor<T extends AbstractNodeOperation> implements IEditorOperationProcessor<T> {
@Override
public void process(T operation) {
Topology topology = EditionContextManager.getTopology();
Map<String, NodeTemplate> nodeTemplates = TopologyServiceCore.getNodeTemplates(topology);
NodeTemplate nodeTemplate = TopologyServiceCore.getNodeTemplate(topology.getId(), operation.getNodeName(), nodeTemplates);
processNodeOperation(operation, nodeTemplate);
}
protected abstract void processNodeOperation(T operation, NodeTemplate nodeTemplate);
}