Enabling Code Formatter
[ccsdk/cds.git] / ms / blueprintsprocessor / functions / resource-resolution / src / main / kotlin / org / onap / ccsdk / cds / blueprintsprocessor / functions / resource / resolution / ResourceDefinitionDSL.kt
index a487628..c755e89 100644 (file)
@@ -18,37 +18,49 @@ package org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution
 
 import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
 import org.onap.ccsdk.cds.controllerblueprints.core.data.NodeTemplate
+import org.onap.ccsdk.cds.controllerblueprints.core.data.PropertyDefinition
 import org.onap.ccsdk.cds.controllerblueprints.core.dsl.PropertyDefinitionBuilder
 import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceAssignment
 import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceDefinition
 
 /** Resource Definition DSL **/
-fun BluePrintTypes.resourceDefinitions(block: ResourceDefinitionsBuilder.() -> Unit)
-        : MutableMap<String, ResourceDefinition> {
-    return ResourceDefinitionsBuilder().apply(block).build()
-}
+fun BluePrintTypes.resourceDefinitions(block: ResourceDefinitionsBuilder.() -> Unit):
+    MutableMap<String, ResourceDefinition> {
+        return ResourceDefinitionsBuilder().apply(block).build()
+    }
 
-fun BluePrintTypes.resourceDefinition(name: String, description: String,
-                                      block: ResourceDefinitionBuilder.() -> Unit): ResourceDefinition {
+fun BluePrintTypes.resourceDefinition(
+    name: String,
+    description: String,
+    block: ResourceDefinitionBuilder.() -> Unit
+): ResourceDefinition {
     return ResourceDefinitionBuilder(name, description).apply(block).build()
 }
 
 /** Resource Mapping DSL **/
-fun BluePrintTypes.resourceAssignments(block: ResourceAssignmentsBuilder.() -> Unit)
-        : MutableMap<String, ResourceAssignment> {
-    return ResourceAssignmentsBuilder().apply(block).build()
-}
+fun BluePrintTypes.resourceAssignments(block: ResourceAssignmentsBuilder.() -> Unit):
+    MutableMap<String, ResourceAssignment> {
+        return ResourceAssignmentsBuilder().apply(block).build()
+    }
 
-fun BluePrintTypes.resourceAssignment(name: String, dictionaryName: String, dictionarySource: String,
-                                      block: ResourceAssignmentBuilder.() -> Unit): ResourceAssignment {
+fun BluePrintTypes.resourceAssignment(
+    name: String,
+    dictionaryName: String,
+    dictionarySource: String,
+    block: ResourceAssignmentBuilder.() -> Unit
+): ResourceAssignment {
     return ResourceAssignmentBuilder(name, dictionaryName, dictionarySource).apply(block).build()
 }
 
 class ResourceDefinitionsBuilder() {
+
     private val resourceDefinitions: MutableMap<String, ResourceDefinition> = hashMapOf()
 
-    fun resourceDefinition(name: String, description: String,
-                           block: ResourceDefinitionBuilder.() -> Unit) {
+    fun resourceDefinition(
+        name: String,
+        description: String,
+        block: ResourceDefinitionBuilder.() -> Unit
+    ) {
         val resourceDefinition = ResourceDefinitionBuilder(name, description).apply(block).build()
         resourceDefinitions[resourceDefinition.name] = resourceDefinition
     }
@@ -63,6 +75,7 @@ class ResourceDefinitionsBuilder() {
 }
 
 class ResourceDefinitionBuilder(private val name: String, private val description: String) {
+
     private val resourceDefinition = ResourceDefinition()
 
     fun updatedBy(updatedBy: String) {
@@ -73,12 +86,19 @@ class ResourceDefinitionBuilder(private val name: String, private val descriptio
         resourceDefinition.tags = tags
     }
 
+    fun property(property: PropertyDefinition) {
+        resourceDefinition.property = property
+    }
+
     fun property(type: String, required: Boolean) {
         resourceDefinition.property = PropertyDefinitionBuilder(name, type, required, description).build()
     }
 
-    fun property(type: String, required: Boolean,
-                 block: PropertyDefinitionBuilder.() -> Unit) {
+    fun property(
+        type: String,
+        required: Boolean,
+        block: PropertyDefinitionBuilder.() -> Unit
+    ) {
         resourceDefinition.property = PropertyDefinitionBuilder(name, type, required, description).apply(block).build()
     }
 
@@ -97,6 +117,7 @@ class ResourceDefinitionBuilder(private val name: String, private val descriptio
 }
 
 class ResourceDefinitionSourcesBuilder {
+
     var sources: MutableMap<String, NodeTemplate> = hashMapOf()
 
     fun source(source: NodeTemplate) {
@@ -129,10 +150,15 @@ class ResourceDefinitionSourcesBuilder {
 }
 
 class ResourceAssignmentsBuilder() {
+
     private val resourceAssignments: MutableMap<String, ResourceAssignment> = hashMapOf()
 
-    fun resourceAssignment(name: String, dictionaryName: String, dictionarySource: String,
-                           block: ResourceAssignmentBuilder.() -> Unit) {
+    fun resourceAssignment(
+        name: String,
+        dictionaryName: String,
+        dictionarySource: String,
+        block: ResourceAssignmentBuilder.() -> Unit
+    ) {
         val resourceAssignment = ResourceAssignmentBuilder(name, dictionaryName, dictionarySource).apply(block).build()
         resourceAssignments[resourceAssignment.name] = resourceAssignment
     }
@@ -146,8 +172,12 @@ class ResourceAssignmentsBuilder() {
     }
 }
 
-class ResourceAssignmentBuilder(private val name: String, private val dictionaryName: String,
-                                private val dictionarySource: String) {
+class ResourceAssignmentBuilder(
+    private val name: String,
+    private val dictionaryName: String,
+    private val dictionarySource: String
+) {
+
     private val resourceAssignment = ResourceAssignment()
 
     fun inputParameter(inputParameter: Boolean) {
@@ -158,11 +188,44 @@ class ResourceAssignmentBuilder(private val name: String, private val dictionary
         resourceAssignment.property = PropertyDefinitionBuilder(name, type, required, description).build()
     }
 
-    fun property(type: String, required: Boolean, description: String? = "",
-                 block: PropertyDefinitionBuilder.() -> Unit) {
+    fun property(
+        type: String,
+        required: Boolean,
+        description: String? = "",
+        block: PropertyDefinitionBuilder.() -> Unit
+    ) {
         resourceAssignment.property = PropertyDefinitionBuilder(name, type, required, description).apply(block).build()
     }
 
+    fun source(source: NodeTemplate) {
+        resourceAssignment.dictionarySourceDefinition = source
+    }
+
+    fun sourceInput(block: SourceInputNodeTemplateBuilder.() -> Unit) {
+        resourceAssignment.dictionarySourceDefinition = SourceInputNodeTemplateBuilder(dictionarySource, "")
+            .apply(block).build()
+    }
+
+    fun sourceDefault(block: SourceDefaultNodeTemplateBuilder.() -> Unit) {
+        resourceAssignment.dictionarySourceDefinition = SourceDefaultNodeTemplateBuilder(dictionarySource, "")
+            .apply(block).build()
+    }
+
+    fun sourceDb(block: SourceDbNodeTemplateBuilder.() -> Unit) {
+        resourceAssignment.dictionarySourceDefinition = SourceDbNodeTemplateBuilder(dictionarySource, "")
+            .apply(block).build()
+    }
+
+    fun sourceRest(block: SourceRestNodeTemplateBuilder.() -> Unit) {
+        resourceAssignment.dictionarySourceDefinition = SourceRestNodeTemplateBuilder(dictionarySource, "")
+            .apply(block).build()
+    }
+
+    fun sourceCapability(block: SourceCapabilityNodeTemplateBuilder.() -> Unit) {
+        resourceAssignment.dictionarySourceDefinition = SourceCapabilityNodeTemplateBuilder(dictionarySource, "")
+            .apply(block).build()
+    }
+
     fun dependencies(dependencies: MutableList<String>) {
         resourceAssignment.dependencies = dependencies
     }
@@ -173,4 +236,4 @@ class ResourceAssignmentBuilder(private val name: String, private val dictionary
         resourceAssignment.dictionarySource = dictionarySource
         return resourceAssignment
     }
-}
\ No newline at end of file
+}