0889fddcad32ab825fb7d79ab3cc982ebbe8a5fc
[ccsdk/cds.git] /
1 /*
2  * Copyright © 2017-2018 AT&T Intellectual Property.
3  * Modifications Copyright © 2018 IBM.
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
18 package org.onap.ccsdk.apps.controllerblueprints.core
19
20 import org.onap.ccsdk.apps.controllerblueprints.core.data.PropertyDefinition
21
22 /**
23  *
24  *
25  * @author Brinda Santh
26  */
27 object BluePrintTypes {
28
29     @JvmStatic
30     val validNodeTypeDerivedFroms: MutableList<String> = arrayListOf(
31             BluePrintConstants.MODEL_TYPE_NODES_ROOT,
32             BluePrintConstants.MODEL_TYPE_NODE_DG,
33             BluePrintConstants.MODEL_TYPE_NODE_COMPONENT,
34             BluePrintConstants.MODEL_TYPE_NODE_VNF,
35             BluePrintConstants.MODEL_TYPE_NODE_ARTIFACT,
36             BluePrintConstants.MODEL_TYPE_NODE_RESOURCE_SOURCE,
37             BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_JAVA,
38             BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_BUNDLE,
39             BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_SCRIPT,
40             BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_PYTHON,
41             BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_JYTHON,
42             BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_JAVA_SCRIPT
43     )
44
45     @JvmStatic
46     val validArtifactTypeDerivedFroms: MutableList<String> = arrayListOf(
47             BluePrintConstants.MODEL_TYPE_ARTIFACTS_ROOT,
48             BluePrintConstants.MODEL_TYPE_ARTIFACT_TYPE_IMPLEMENTATION
49     )
50
51     @JvmStatic
52     val validDataTypeDerivedFroms: MutableList<String> = arrayListOf(
53             BluePrintConstants.MODEL_TYPE_DATATYPES_ROOT,
54             BluePrintConstants.MODEL_TYPE_DATA_TYPE_DYNAMIC
55     )
56
57     @Deprecated("This has to move to Relationship Types Model Drive")
58     @JvmStatic
59     val validRelationShipDerivedFroms: MutableList<String> = arrayListOf(
60             BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_ROOT,
61             BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_DEPENDS_ON,
62             BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_HOSTED_ON,
63             BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO,
64             BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_ATTACH_TO,
65             BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_ROUTES_TO
66     )
67
68     @Deprecated("This has to move to Capability Types Model Drive")
69     @JvmStatic
70     val validCapabilityTypes: MutableList<String> = arrayListOf(
71             BluePrintConstants.MODEL_TYPE_CAPABILITIES_ROOT,
72             BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_NODE,
73             BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_COMPUTE,
74             BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_NETWORK,
75             BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_STORAGE,
76             BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT,
77             BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_PUBLIC,
78             BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_ADMIN,
79             BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_DATABASE,
80             BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ATTACHMENT,
81             BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_OPERATION_SYSTEM,
82             BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_BINDABLE,
83             BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_CONTENT,
84             BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_MAPPING,
85             BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_NETCONF,
86             BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_SSH,
87             BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_SFTP
88     )
89
90     @JvmStatic
91     fun validModelTypes(): List<String> {
92         val validTypes: MutableList<String> = arrayListOf()
93         validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_DATA_TYPE)
94         validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_ARTIFACT_TYPE)
95         validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_NODE_TYPE)
96         validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_CAPABILITY_TYPE)
97         validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_RELATIONSHIP_TYPE)
98         return validTypes
99     }
100
101     @JvmStatic
102     fun validPropertyTypes(): List<String> {
103         val validTypes: MutableList<String> = arrayListOf()
104         validTypes.add(BluePrintConstants.DATA_TYPE_STRING)
105         validTypes.add(BluePrintConstants.DATA_TYPE_INTEGER)
106         validTypes.add(BluePrintConstants.DATA_TYPE_FLOAT)
107         validTypes.add(BluePrintConstants.DATA_TYPE_DOUBLE)
108         validTypes.add(BluePrintConstants.DATA_TYPE_BOOLEAN)
109         validTypes.add(BluePrintConstants.DATA_TYPE_TIMESTAMP)
110         validTypes.add(BluePrintConstants.DATA_TYPE_NULL)
111         validTypes.add(BluePrintConstants.DATA_TYPE_LIST)
112         validTypes.add(BluePrintConstants.DATA_TYPE_MAP)
113         validTypes.add(BluePrintConstants.DATA_TYPE_JSON)
114         return validTypes
115     }
116
117     @JvmStatic
118     fun validPrimitiveTypes(): List<String> {
119         val validTypes: MutableList<String> = arrayListOf()
120         validTypes.add(BluePrintConstants.DATA_TYPE_STRING)
121         validTypes.add(BluePrintConstants.DATA_TYPE_INTEGER)
122         validTypes.add(BluePrintConstants.DATA_TYPE_FLOAT)
123         validTypes.add(BluePrintConstants.DATA_TYPE_DOUBLE)
124         validTypes.add(BluePrintConstants.DATA_TYPE_BOOLEAN)
125         validTypes.add(BluePrintConstants.DATA_TYPE_TIMESTAMP)
126         validTypes.add(BluePrintConstants.DATA_TYPE_NULL)
127         return validTypes
128     }
129
130     @JvmStatic
131     fun validCollectionTypes(): List<String> {
132         val validTypes: MutableList<String> = arrayListOf()
133         validTypes.add(BluePrintConstants.DATA_TYPE_LIST)
134         validTypes.add(BluePrintConstants.DATA_TYPE_MAP)
135         return validTypes
136     }
137
138     @JvmStatic
139     fun validPrimitiveOrCollectionPrimitive(propertyDefinition: PropertyDefinition): Boolean {
140         val entrySchema = propertyDefinition.entrySchema?.type ?: BluePrintConstants.DATA_TYPE_NULL
141         return BluePrintTypes.validPropertyTypes().contains(propertyDefinition.type)
142                 && BluePrintTypes.validPrimitiveTypes().contains(entrySchema)
143     }
144
145     @JvmStatic
146     fun validCommands(): List<String> {
147         return listOf(BluePrintConstants.EXPRESSION_GET_INPUT,
148                 BluePrintConstants.EXPRESSION_GET_ATTRIBUTE,
149                 BluePrintConstants.EXPRESSION_GET_PROPERTY,
150                 BluePrintConstants.EXPRESSION_GET_ARTIFACT,
151                 BluePrintConstants.EXPRESSION_GET_OPERATION_OUTPUT,
152                 BluePrintConstants.EXPRESSION_GET_NODE_OF_TYPE)
153     }
154
155     @JvmStatic
156     fun rootNodeTypes(): List<String> {
157         return listOf(BluePrintConstants.MODEL_TYPE_NODES_ROOT)
158     }
159
160     @JvmStatic
161     fun rootDataTypes(): List<String> {
162         return listOf(BluePrintConstants.MODEL_TYPE_DATATYPES_ROOT)
163     }
164
165
166 }