aboutsummaryrefslogtreecommitdiffstats
path: root/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/tosca/datatypes/ToscaTopologyTemplateDefinition.java
blob: 9b2996044afadcb15685fddf8e53280b9fbc9f02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/*-
 * ============LICENSE_START=======================================================
 * SDC
 * ================================================================================
 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
 * ================================================================================
 * 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.
 * ============LICENSE_END=========================================================
 */

package org.openecomp.sdc.ci.tests.tosca.datatypes;

import org.yaml.snakeyaml.TypeDescription;

import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;

//	spec page 104	
public class ToscaTopologyTemplateDefinition {

	String description;
//	Map<String, Map<String, ToscaInputsDefinition>> inputs;
	Map<String,ToscaNodeTemplatesTopologyTemplateDefinition> node_templates = new HashMap<>();
//	Map<String,ToscaRelationshipTemplatesTopologyTemplateDefinition> relationship_templates;
	Map<String,ToscaGroupsTopologyTemplateDefinition> groups = new HashMap<>();
	Map<String, ToscaInputsTopologyTemplateDefinition> inputs = new HashMap<>();
//	Map<String,ToscaPoliciesTopologyTemplateDefinition> policies;
//	Map<String,ToscaOutputsTopologyTemplateDefinition> outputs;
	ToscaSubstitutionMappingsDefinition substitution_mappings;
	
	public ToscaTopologyTemplateDefinition() {
		super();
	}
	
	public ToscaTopologyTemplateDefinition(ToscaTopologyTemplateDefinition definition) {
		this.description = definition.description;
		this.node_templates = new HashMap<>(definition.node_templates);
		this.groups = new HashMap<String,ToscaGroupsTopologyTemplateDefinition>(definition.groups);
		this.inputs = definition.inputs.entrySet().stream().collect(Collectors.toMap(e -> e.getKey(), e -> new ToscaInputsTopologyTemplateDefinition(e.getValue())));
		this.substitution_mappings = definition.substitution_mappings;
	}
	
	public ToscaTopologyTemplateDefinition(String description, Map<String, ToscaNodeTemplatesTopologyTemplateDefinition> node_templates, Map<String, ToscaGroupsTopologyTemplateDefinition> groups,
		Map<String, ToscaInputsTopologyTemplateDefinition> inputs, ToscaSubstitutionMappingsDefinition substitution_mappings) {
	super();
	this.description = description;
	this.node_templates = node_templates;
	this.groups = groups;
	this.inputs = inputs;
	this.substitution_mappings = substitution_mappings;
}

	public Map<String, ToscaInputsTopologyTemplateDefinition> getInputs() {
		return inputs;
	}

	public void setInputs(Map<String, ToscaInputsTopologyTemplateDefinition> inputs) {
		this.inputs = inputs;
	}

	public void addInputs(Map<String, ToscaInputsTopologyTemplateDefinition> inputs) {
		this.inputs.putAll(inputs);
	}
	
	public ToscaSubstitutionMappingsDefinition getSubstitution_mappings() {
		return substitution_mappings;
	}
	public void setSubstitution_mappings(ToscaSubstitutionMappingsDefinition substitution_mappings) {
		this.substitution_mappings = substitution_mappings;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}


	public Map<String, ToscaNodeTemplatesTopologyTemplateDefinition> getNode_templates() {
		return node_templates;
	}

	public void setNode_templates(Map<String, ToscaNodeTemplatesTopologyTemplateDefinition> node_templates) {
		this.node_templates = node_templates;
	}

	public Map<String, ToscaGroupsTopologyTemplateDefinition> getGroups() {
		return groups;
	}

	public void setGroups(Map<String, ToscaGroupsTopologyTemplateDefinition> groups) {
		this.groups = groups;
	}

	
	//gets Type description for Yaml snake
	public static TypeDescription getTypeDescription(){
        TypeDescription typeDescription = new TypeDescription(ToscaTopologyTemplateDefinition.class);
        typeDescription.putMapPropertyType("inputs", String.class, ToscaInputsTopologyTemplateDefinition.class);
        typeDescription.putMapPropertyType("node_templates", String.class, ToscaNodeTemplatesTopologyTemplateDefinition.class);
        typeDescription.putMapPropertyType("groups", String.class, ToscaGroupsTopologyTemplateDefinition.class);
    	return typeDescription;
	}
	
	
}