9b1c0126c78dca59f5c5203d9572e758156bb978
[sdc.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Modification Copyright (C) 2019 Nordix Foundation.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.core.impl.services;
22
23 import org.onap.sdc.tosca.services.YamlUtil;
24 import org.openecomp.core.converter.ServiceTemplateReaderService;
25
26 import java.util.ArrayList;
27 import java.util.HashMap;
28 import java.util.List;
29 import java.util.Map;
30 import java.util.Objects;
31 import org.openecomp.sdc.be.utils.TypeUtils.ToscaTagNamesEnum;
32
33 import static org.openecomp.core.converter.datatypes.Constants.*;
34
35 public class ServiceTemplateReaderServiceImpl implements ServiceTemplateReaderService {
36
37     private Map<String, Object> readServiceTemplate = new HashMap<>();
38
39     public ServiceTemplateReaderServiceImpl(byte[] serviceTemplateContent) {
40         this.readServiceTemplate = readServiceTemplate(serviceTemplateContent);
41     }
42
43     @Override
44     public Map<String, Object> readServiceTemplate(byte[] serviceTemplateContent) {
45
46         return new YamlUtil().yamlToObject(new String(serviceTemplateContent), Map.class);
47
48     }
49
50     @Override
51     public List<Object> getImports() {
52         return Objects.isNull(this.readServiceTemplate.get("imports")) ? new ArrayList<>()
53                        : (List<Object>) this.readServiceTemplate.get("imports");
54     }
55
56     @Override
57     public Map<String, Object> getPolicies() {
58         Map<String, Object> policiesAsMap = new HashMap<>();
59         if (!Objects.isNull(this.getTopologyTemplate()) && !Objects.isNull(
60                 ((Map<String, Object>) this.getTopologyTemplate()).get(POLICIES))) {
61             policiesAsMap = (Map<String, Object>) ((Map<String, Object>) this.getTopologyTemplate()).get(POLICIES);
62         }
63         return policiesAsMap;
64     }
65
66     @Override
67     public Object getMetadata() {
68         return this.readServiceTemplate.get(metadata);
69     }
70
71     @Override
72     public Object getToscaVersion() {
73         return this.readServiceTemplate.get(ToscaTagNamesEnum.TOSCA_VERSION.getElementName());
74     }
75
76     @Override
77     public Map<String, Object> getNodeTypes() {
78         return Objects.isNull(this.readServiceTemplate.get(nodeTypes)) ? new HashMap<>()
79                        : (Map<String, Object>) this.readServiceTemplate.get(nodeTypes);
80     }
81
82     @Override
83     public Object getTopologyTemplate() {
84         return this.readServiceTemplate.get(topologyTemplate);
85     }
86
87     @Override
88     public Map<String, Object> getNodeTemplates() {
89         return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>()
90                        : (Map<String, Object>) ((Map<String, Object>) this.getTopologyTemplate()).get(nodeTemplates);
91     }
92
93     @Override
94     public Map<String, Object> getInputs() {
95         return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>()
96                        : (Map<String, Object>) ((Map<String, Object>) this.getTopologyTemplate()).get(inputs);
97     }
98
99     @Override
100     public Map<String, Object> getOutputs() {
101         return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>()
102                        : (Map<String, Object>) ((Map<String, Object>) this.getTopologyTemplate()).get(outputs);
103     }
104
105     @Override
106     public Map<String, Object> getSubstitutionMappings() {
107         return Objects.isNull(this.getTopologyTemplate()) ? new HashMap<>()
108                        : (Map<String, Object>) ((Map<String, Object>) this.getTopologyTemplate())
109                                                        .get(substitutionMappings);
110     }
111 }