2 * Copyright © 2017-2018 AT&T Intellectual Property.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.onap.ccsdk.apps.controllerblueprints.core
19 import org.onap.ccsdk.apps.controllerblueprints.core.data.PropertyDefinition
24 * @author Brinda Santh
26 object BluePrintTypes {
29 val validNodeTypeDerivedFroms: MutableList<String> = arrayListOf(
30 BluePrintConstants.MODEL_TYPE_NODES_ROOT,
31 BluePrintConstants.MODEL_TYPE_NODE_DG,
32 BluePrintConstants.MODEL_TYPE_NODE_COMPONENT,
33 BluePrintConstants.MODEL_TYPE_NODE_VNF,
34 BluePrintConstants.MODEL_TYPE_NODE_ARTIFACT,
35 BluePrintConstants.MODEL_TYPE_NODE_RESOURCE_SOURCE,
36 BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_JAVA,
37 BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_BUNDLE,
38 BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_SCRIPT,
39 BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_PYTHON,
40 BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_JYTHON,
41 BluePrintConstants.MODEL_TYPE_NODES_COMPONENT_JAVA_SCRIPT
45 val validArtifactTypeDerivedFroms: MutableList<String> = arrayListOf(
46 BluePrintConstants.MODEL_TYPE_ARTIFACTS_ROOT,
47 BluePrintConstants.MODEL_TYPE_ARTIFACT_TYPE_IMPLEMENTATION
51 val validDataTypeDerivedFroms: MutableList<String> = arrayListOf(
52 BluePrintConstants.MODEL_TYPE_DATATYPES_ROOT,
53 BluePrintConstants.MODEL_TYPE_DATA_TYPE_DYNAMIC
56 @Deprecated("This has to move to Relationship Types Model Drive")
58 val validRelationShipDerivedFroms: MutableList<String> = arrayListOf(
59 BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_ROOT,
60 BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_DEPENDS_ON,
61 BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_HOSTED_ON,
62 BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO,
63 BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_ATTACH_TO,
64 BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_ROUTES_TO
67 @Deprecated("This has to move to Capability Types Model Drive")
69 val validCapabilityTypes: MutableList<String> = arrayListOf(
70 BluePrintConstants.MODEL_TYPE_CAPABILITIES_ROOT,
71 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_NODE,
72 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_COMPUTE,
73 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_NETWORK,
74 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_STORAGE,
75 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT,
76 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_PUBLIC,
77 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_ADMIN,
78 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ENDPOINT_DATABASE,
79 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_ATTACHMENT,
80 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_OPERATION_SYSTEM,
81 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_BINDABLE,
82 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_CONTENT,
83 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_MAPPING,
84 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_NETCONF,
85 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_SSH,
86 BluePrintConstants.MODEL_TYPE_CAPABILITY_TYPE_SFTP
90 fun validModelTypes(): List<String> {
91 val validTypes: MutableList<String> = arrayListOf()
92 validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_DATA_TYPE)
93 validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_ARTIFACT_TYPE)
94 validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_NODE_TYPE)
95 validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_CAPABILITY_TYPE)
96 validTypes.add(BluePrintConstants.MODEL_DEFINITION_TYPE_RELATIONSHIP_TYPE)
101 fun validPropertyTypes(): List<String> {
102 val validTypes: MutableList<String> = arrayListOf()
103 validTypes.add(BluePrintConstants.DATA_TYPE_STRING)
104 validTypes.add(BluePrintConstants.DATA_TYPE_INTEGER)
105 validTypes.add(BluePrintConstants.DATA_TYPE_FLOAT)
106 validTypes.add(BluePrintConstants.DATA_TYPE_DOUBLE)
107 validTypes.add(BluePrintConstants.DATA_TYPE_BOOLEAN)
108 validTypes.add(BluePrintConstants.DATA_TYPE_TIMESTAMP)
109 validTypes.add(BluePrintConstants.DATA_TYPE_NULL)
110 validTypes.add(BluePrintConstants.DATA_TYPE_LIST)
111 validTypes.add(BluePrintConstants.DATA_TYPE_MAP)
116 fun validPrimitiveTypes(): List<String> {
117 val validTypes: MutableList<String> = arrayListOf()
118 validTypes.add(BluePrintConstants.DATA_TYPE_STRING)
119 validTypes.add(BluePrintConstants.DATA_TYPE_INTEGER)
120 validTypes.add(BluePrintConstants.DATA_TYPE_FLOAT)
121 validTypes.add(BluePrintConstants.DATA_TYPE_DOUBLE)
122 validTypes.add(BluePrintConstants.DATA_TYPE_BOOLEAN)
123 validTypes.add(BluePrintConstants.DATA_TYPE_TIMESTAMP)
124 validTypes.add(BluePrintConstants.DATA_TYPE_NULL)
129 fun validCollectionTypes(): List<String> {
130 val validTypes: MutableList<String> = arrayListOf()
131 validTypes.add(BluePrintConstants.DATA_TYPE_LIST)
132 validTypes.add(BluePrintConstants.DATA_TYPE_MAP)
137 fun validPrimitiveOrCollectionPrimitive(propertyDefinition: PropertyDefinition): Boolean {
138 val entrySchema = propertyDefinition.entrySchema?.type ?: BluePrintConstants.DATA_TYPE_NULL
139 return BluePrintTypes.validPropertyTypes().contains(propertyDefinition.type)
140 && BluePrintTypes.validPrimitiveTypes().contains(entrySchema)
144 fun validCommands(): List<String> {
145 return listOf(BluePrintConstants.EXPRESSION_GET_INPUT,
146 BluePrintConstants.EXPRESSION_GET_ATTRIBUTE,
147 BluePrintConstants.EXPRESSION_GET_PROPERTY,
148 BluePrintConstants.EXPRESSION_GET_ARTIFACT,
149 BluePrintConstants.EXPRESSION_GET_OPERATION_OUTPUT,
150 BluePrintConstants.EXPRESSION_GET_NODE_OF_TYPE)
154 fun rootNodeTypes(): List<String> {
155 return listOf(BluePrintConstants.MODEL_TYPE_NODES_ROOT)
159 fun rootDataTypes(): List<String> {
160 return listOf(BluePrintConstants.MODEL_TYPE_DATATYPES_ROOT)