re base code
[sdc.git] / common-be / src / main / java / org / openecomp / sdc / be / utils / TypeUtils.java
1 package org.openecomp.sdc.be.utils;
2
3 import java.util.Map;
4 import java.util.function.Consumer;
5
6 public class TypeUtils {
7
8     public static final String FIRST_CERTIFIED_VERSION_VERSION = "1.0";
9
10     public static <FieldType> void setField(Map<String, Object> toscaJson, ToscaTagNamesEnum tagName, Consumer<FieldType> setter) {
11         String fieldName = tagName.getElementName();
12         if (toscaJson.containsKey(fieldName)) {
13             FieldType fieldValue = (FieldType) toscaJson.get(fieldName);
14             setter.accept(fieldValue);
15         }
16     }
17
18     public enum ToscaTagNamesEnum {
19         DERIVED_FROM("derived_from"), IS_PASSWORD("is_password"),
20         // Properties
21         PROPERTIES("properties"), TYPE("type"), STATUS("status"), ENTRY_SCHEMA("entry_schema"), REQUIRED("required"), DESCRIPTION("description"), DEFAULT_VALUE("default"), VALUE("value"), CONSTRAINTS("constraints"),
22         // Group Types
23         MEMBERS("members"), METADATA("metadata"),
24         // Policy Types
25         TARGETS("targets"),
26         // Capabilities
27         CAPABILITIES("capabilities"), VALID_SOURCE_TYPES("valid_source_types"),
28         // Requirements
29         REQUIREMENTS("requirements"), NODE("node"), RELATIONSHIP("relationship"), CAPABILITY("capability"), INTERFACES("interfaces"),
30         // Heat env Validation
31         PARAMETERS("parameters"),
32         // Import Validations
33         TOSCA_VERSION("tosca_definitions_version"), TOPOLOGY_TEMPLATE("topology_template"), NODE_TYPES("node_types"), OCCURRENCES("occurrences"), NODE_TEMPLATES("node_templates"), GROUPS("groups"), INPUTS("inputs"),
34         SUBSTITUTION_MAPPINGS("substitution_mappings"),  NODE_TYPE("node_type"),
35         // Attributes
36         ATTRIBUTES("attributes"), LABEL("label"), HIDDEN("hidden"), IMMUTABLE("immutable"), GET_INPUT("get_input"), ANNOTATIONS("annotations");
37
38         private String elementName;
39
40         private ToscaTagNamesEnum(String elementName) {
41             this.elementName = elementName;
42         }
43
44         public String getElementName() {
45             return elementName;
46         }
47     }
48 }