2 * Copyright © 2017-2018 AT&T Intellectual Property.
3 * Modifications Copyright © 2018 IBM.
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
9 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 package org.onap.ccsdk.apps.controllerblueprints.core
20 import org.onap.ccsdk.apps.controllerblueprints.core.data.PropertyDefinition
25 * @author Brinda Santh
27 object BluePrintTypes {
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
46 val validArtifactTypeDerivedFroms: MutableList<String> = arrayListOf(
47 BluePrintConstants.MODEL_TYPE_ARTIFACTS_ROOT,
48 BluePrintConstants.MODEL_TYPE_ARTIFACT_TYPE_IMPLEMENTATION
52 val validDataTypeDerivedFroms: MutableList<String> = arrayListOf(
53 BluePrintConstants.MODEL_TYPE_DATATYPES_ROOT,
54 BluePrintConstants.MODEL_TYPE_DATA_TYPE_DYNAMIC
57 @Deprecated("This has to move to Relationship Types Model Drive")
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
68 @Deprecated("This has to move to Capability Types Model Drive")
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
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)
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)
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)
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)
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)
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)
156 fun rootNodeTypes(): List<String> {
157 return listOf(BluePrintConstants.MODEL_TYPE_NODES_ROOT)
161 fun rootDataTypes(): List<String> {
162 return listOf(BluePrintConstants.MODEL_TYPE_DATATYPES_ROOT)