package org.openecomp.core.impl.services; import org.onap.sdc.tosca.services.YamlUtil; import org.openecomp.core.converter.ServiceTemplateReaderService; import java.util.HashMap; import java.util.Map; import java.util.Objects; import static org.openecomp.core.converter.datatypes.Constants.*; public class ServiceTemplateReaderServiceImpl implements ServiceTemplateReaderService { private Map readServiceTemplate = new HashMap<>(); public ServiceTemplateReaderServiceImpl(byte[] serviceTemplateContent){ this.readServiceTemplate = readServiceTemplate(serviceTemplateContent); } @Override public Map readServiceTemplate(byte[] serviceTemplateContent) { Map readSt = new YamlUtil().yamlToObject(new String(serviceTemplateContent), Map.class); return readSt; } @Override public Object getMetadata(){ return this.readServiceTemplate.get(metadata); } @Override public Object getToscaVersion(){ return this.readServiceTemplate.get(definitionVersion); } @Override public Map getNodeTypes(){ return Objects.isNull(this.readServiceTemplate.get(nodeTypes)) ? new HashMap<>() :(Map) this.readServiceTemplate.get(nodeTypes); } @Override public Object getTopologyTemplate(){ return this.readServiceTemplate.get(topologyTemplate); } @Override public Map getNodeTemplates(){ return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>() : (Map) ((Map)this.getTopologyTemplate()).get(nodeTemplates); } @Override public Map getInputs(){ return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>() : (Map) ((Map)this.getTopologyTemplate()).get(inputs); } @Override public Map getOutputs(){ return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>() : (Map) ((Map)this.getTopologyTemplate()).get(outputs); } @Override public Map getSubstitutionMappings(){ return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>() : (Map) ((Map)this.getTopologyTemplate()).get(substitutionMappings); } }