/*- * ============LICENSE_START======================================================= * Modification Copyright (C) 2019 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * SPDX-License-Identifier: Apache-2.0 * ============LICENSE_END========================================================= */ package org.openecomp.core.impl.services; import org.onap.sdc.tosca.services.YamlUtil; import org.openecomp.core.converter.ServiceTemplateReaderService; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import org.openecomp.sdc.be.utils.TypeUtils.ToscaTagNamesEnum; 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) { return new YamlUtil().yamlToObject(new String(serviceTemplateContent), Map.class); } @Override public List getImports() { return Objects.isNull(this.readServiceTemplate.get("imports")) ? new ArrayList<>() : (List) this.readServiceTemplate.get("imports"); } @Override public Map getPolicies() { Map policiesAsMap = new HashMap<>(); if (!Objects.isNull(this.getTopologyTemplate()) && !Objects.isNull( ((Map) this.getTopologyTemplate()).get(POLICIES))) { policiesAsMap = (Map) ((Map) this.getTopologyTemplate()).get(POLICIES); } return policiesAsMap; } @Override public Object getMetadata() { return this.readServiceTemplate.get(metadata); } @Override public Object getToscaVersion() { return this.readServiceTemplate.get(ToscaTagNamesEnum.TOSCA_VERSION.getElementName()); } @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); } }