Refractor controller blueprint modules
[ccsdk/cds.git] / ms / controllerblueprints / modules / blueprint-core / src / main / kotlin / org / onap / ccsdk / cds / controllerblueprints / core / dsl / BluePrintServiceDSLBuilder.kt
diff --git a/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintServiceDSLBuilder.kt b/ms/controllerblueprints/modules/blueprint-core/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/core/dsl/BluePrintServiceDSLBuilder.kt
deleted file mode 100644 (file)
index ca4d563..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- *  Copyright © 2019 IBM.
- *
- *  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.
- */
-
-package org.onap.ccsdk.cds.controllerblueprints.core.dsl
-
-import com.fasterxml.jackson.databind.JsonNode
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
-import org.onap.ccsdk.cds.controllerblueprints.core.asBluePrintsDataTypes
-import org.onap.ccsdk.cds.controllerblueprints.core.asJsonNode
-import org.onap.ccsdk.cds.controllerblueprints.core.asJsonType
-import org.onap.ccsdk.cds.controllerblueprints.core.asPropertyDefinitionMap
-import org.onap.ccsdk.cds.controllerblueprints.core.data.ArtifactType
-import org.onap.ccsdk.cds.controllerblueprints.core.data.DataType
-import org.onap.ccsdk.cds.controllerblueprints.core.data.ImportDefinition
-import org.onap.ccsdk.cds.controllerblueprints.core.data.NodeType
-import org.onap.ccsdk.cds.controllerblueprints.core.data.PolicyType
-import org.onap.ccsdk.cds.controllerblueprints.core.data.RelationshipType
-import org.onap.ccsdk.cds.controllerblueprints.core.data.ServiceTemplate
-import org.onap.ccsdk.cds.controllerblueprints.core.data.TopologyTemplate
-import kotlin.reflect.KClass
-
-class BluePrintServiceDSLBuilder(
-    private val name: String,
-    private val version: String,
-    private val author: String,
-    private val tags: String
-) {
-
-    private var serviceTemplate = ServiceTemplate()
-    private var topologyTemplate: TopologyTemplate? = null
-    private var metadata: MutableMap<String, String> = hashMapOf()
-    private var dslDefinitions: MutableMap<String, JsonNode>? = null
-    private var imports: MutableList<ImportDefinition> = mutableListOf()
-    private var nodeTypes: MutableMap<String, NodeType>? = null
-    private var artifactTypes: MutableMap<String, ArtifactType>? = null
-    private var dataTypes: MutableMap<String, DataType>? = null
-    private var relationshipTypes: MutableMap<String, RelationshipType>? = null
-    private var policyTypes: MutableMap<String, PolicyType>? = null
-
-    private fun initMetaData() {
-        metadata[BluePrintConstants.METADATA_TEMPLATE_NAME] = name
-        metadata[BluePrintConstants.METADATA_TEMPLATE_VERSION] = version
-        metadata[BluePrintConstants.METADATA_TEMPLATE_AUTHOR] = author
-        metadata[BluePrintConstants.METADATA_TEMPLATE_TAGS] = tags
-    }
-
-    fun metadata(id: String, value: String) {
-        metadata[id] = value
-    }
-
-    fun import(file: String) {
-        val importDefinition = ImportDefinition().apply {
-            this.file = file
-        }
-        imports.add(importDefinition)
-    }
-
-    fun dsl(id: String, kclass: KClass<*>) {
-        dsl(id, kclass.asPropertyDefinitionMap().asJsonNode())
-    }
-
-    fun dataType(dataType: KClass<*>) {
-        dataType(dataType.asBluePrintsDataTypes())
-    }
-
-    fun dsl(id: String, content: Any) {
-        dsl(id, content.asJsonType())
-    }
-
-    fun dsl(id: String, json: JsonNode) {
-        if (dslDefinitions == null)
-            dslDefinitions = hashMapOf()
-        dslDefinitions!![id] = json
-    }
-
-    fun dataTypes(dataTypes: MutableMap<String, DataType>) {
-        if (this.dataTypes == null)
-            this.dataTypes = hashMapOf()
-
-        this.dataTypes!!.putAll(dataTypes)
-    }
-
-    fun artifactTypes(artifactTypes: MutableMap<String, ArtifactType>) {
-        if (this.artifactTypes == null)
-            this.artifactTypes = hashMapOf()
-
-        this.artifactTypes!!.putAll(artifactTypes)
-    }
-
-    fun relationshipTypes(relationshipTypes: MutableMap<String, RelationshipType>) {
-        if (this.relationshipTypes == null)
-            this.relationshipTypes = hashMapOf()
-
-        this.relationshipTypes!!.putAll(relationshipTypes)
-    }
-
-    fun policyTypes(policyTypes: MutableMap<String, PolicyType>) {
-        if (this.policyTypes == null)
-            this.policyTypes = hashMapOf()
-
-        this.policyTypes!!.putAll(policyTypes)
-    }
-
-    fun nodeType(nodeTypes: MutableMap<String, NodeType>) {
-        if (this.nodeTypes == null)
-            this.nodeTypes = hashMapOf()
-
-        this.nodeTypes!!.putAll(nodeTypes)
-    }
-
-    fun dataType(dataType: DataType) {
-        if (dataTypes == null)
-            dataTypes = hashMapOf()
-        dataTypes!![dataType.id!!] = dataType
-    }
-
-    fun artifactType(artifactType: ArtifactType) {
-        if (artifactTypes == null)
-            artifactTypes = hashMapOf()
-        artifactTypes!![artifactType.id!!] = artifactType
-    }
-
-    fun relationshipType(relationshipType: RelationshipType) {
-        if (relationshipTypes == null)
-            relationshipTypes = hashMapOf()
-        relationshipTypes!![relationshipType.id!!] = relationshipType
-    }
-
-    fun policyType(policyType: PolicyType) {
-        if (policyTypes == null)
-            policyTypes = hashMapOf()
-
-        policyTypes!![policyType.id!!] = policyType
-    }
-
-    fun nodeType(nodeType: NodeType) {
-        if (nodeTypes == null)
-            nodeTypes = hashMapOf()
-        nodeTypes!![nodeType.id!!] = nodeType
-    }
-
-    fun dataType(
-        id: String,
-        version: String,
-        derivedFrom: String,
-        description: String,
-        block: DataTypeBuilder.() -> Unit
-    ) {
-        if (dataTypes == null)
-            dataTypes = hashMapOf()
-        dataTypes!![id] = DataTypeBuilder(id, version, derivedFrom, description).apply(block).build()
-    }
-
-    fun artifactType(
-        id: String,
-        version: String,
-        derivedFrom: String,
-        description: String,
-        block: ArtifactTypeBuilder.() -> Unit
-    ) {
-        if (artifactTypes == null)
-            artifactTypes = hashMapOf()
-        artifactTypes!![id] = ArtifactTypeBuilder(id, version, derivedFrom, description).apply(block).build()
-    }
-
-    fun relationshipType(
-        id: String,
-        version: String,
-        derivedFrom: String,
-        description: String,
-        block: RelationshipTypeBuilder.() -> Unit
-    ) {
-        if (relationshipTypes == null)
-            relationshipTypes = hashMapOf()
-        relationshipTypes!![id] = RelationshipTypeBuilder(id, version, derivedFrom, description).apply(block).build()
-    }
-
-    fun policyType(
-        id: String,
-        version: String,
-        derivedFrom: String,
-        description: String,
-        block: PolicyTypeBuilder.() -> Unit
-    ) {
-        if (policyTypes == null)
-            policyTypes = hashMapOf()
-        policyTypes!![id] = PolicyTypeBuilder(id, version, derivedFrom, description).apply(block).build()
-    }
-
-    fun nodeType(
-        id: String,
-        version: String,
-        derivedFrom: String,
-        description: String,
-        block: NodeTypeBuilder.() -> Unit
-    ) {
-        if (nodeTypes == null)
-            nodeTypes = hashMapOf()
-        nodeTypes!![id] = NodeTypeBuilder(id, version, derivedFrom, description).apply(block).build()
-    }
-
-    fun topologyTemplate(block: TopologyTemplateBuilder.() -> Unit) {
-        topologyTemplate = TopologyTemplateBuilder().apply(block).build()
-    }
-
-    fun build(): ServiceTemplate {
-        initMetaData()
-        serviceTemplate.metadata = metadata
-        serviceTemplate.imports = imports
-        serviceTemplate.dslDefinitions = dslDefinitions
-        serviceTemplate.nodeTypes = nodeTypes
-        serviceTemplate.artifactTypes = artifactTypes
-        serviceTemplate.dataTypes = dataTypes
-        serviceTemplate.relationshipTypes = relationshipTypes
-        serviceTemplate.policyTypes = policyTypes
-        serviceTemplate.topologyTemplate = topologyTemplate
-        return serviceTemplate
-    }
-}