import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.node.ArrayNode
-import org.onap.ccsdk.cds.controllerblueprints.core.*
-import org.onap.ccsdk.cds.controllerblueprints.core.data.*
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
+import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive
+import org.onap.ccsdk.cds.controllerblueprints.core.asJsonType
+import org.onap.ccsdk.cds.controllerblueprints.core.asListOfString
+import org.onap.ccsdk.cds.controllerblueprints.core.data.ArtifactDefinition
+import org.onap.ccsdk.cds.controllerblueprints.core.data.ArtifactType
+import org.onap.ccsdk.cds.controllerblueprints.core.data.AttributeDefinition
+import org.onap.ccsdk.cds.controllerblueprints.core.data.CapabilityDefinition
+import org.onap.ccsdk.cds.controllerblueprints.core.data.ConstraintClause
+import org.onap.ccsdk.cds.controllerblueprints.core.data.DataType
+import org.onap.ccsdk.cds.controllerblueprints.core.data.EntityType
+import org.onap.ccsdk.cds.controllerblueprints.core.data.EntrySchema
+import org.onap.ccsdk.cds.controllerblueprints.core.data.InterfaceDefinition
+import org.onap.ccsdk.cds.controllerblueprints.core.data.NodeType
+import org.onap.ccsdk.cds.controllerblueprints.core.data.OperationDefinition
+import org.onap.ccsdk.cds.controllerblueprints.core.data.PolicyType
+import org.onap.ccsdk.cds.controllerblueprints.core.data.PropertyDefinition
+import org.onap.ccsdk.cds.controllerblueprints.core.data.RelationshipType
+import org.onap.ccsdk.cds.controllerblueprints.core.data.RequirementDefinition
+import org.onap.ccsdk.cds.controllerblueprints.core.jsonAsJsonType
+
+open class EntityTypeBuilder(
+ private val id: String,
+ private val version: String,
+ private val derivedFrom: String,
+ private val description: String? = ""
+) {
-
-open class EntityTypeBuilder(private val id: String,
- private val version: String,
- private val derivedFrom: String,
- private val description: String? = "") {
var metadata: MutableMap<String, String>? = null
var properties: MutableMap<String, PropertyDefinition>? = null
var attributes: MutableMap<String, AttributeDefinition>? = null
attributes!![id] = attribute
}
- fun attribute(id: String, type: String, required: Boolean, description: String? = "",
- block: AttributeDefinitionBuilder.() -> Unit) {
+ fun attribute(
+ id: String,
+ type: String,
+ required: Boolean,
+ description: String? = "",
+ block: AttributeDefinitionBuilder.() -> Unit
+ ) {
if (attributes == null)
attributes = hashMapOf()
val attribute = AttributeDefinitionBuilder(id, type, required, description).apply(block).build()
properties!![id] = property
}
- fun property(id: String, type: String, required: Boolean, description: String? = "",
- block: PropertyDefinitionBuilder.() -> Unit) {
+ fun property(
+ id: String,
+ type: String,
+ required: Boolean,
+ description: String? = "",
+ block: PropertyDefinitionBuilder.() -> Unit
+ ) {
if (properties == null)
properties = hashMapOf()
val property = PropertyDefinitionBuilder(id, type, required, description).apply(block).build()
}
}
-class NodeTypeBuilder(id: String, version: String, derivedFrom: String,
- description: String?) : EntityTypeBuilder(id, version, derivedFrom, description) {
+class NodeTypeBuilder(
+ id: String,
+ version: String,
+ derivedFrom: String,
+ description: String?
+) : EntityTypeBuilder(id, version, derivedFrom, description) {
+
private var nodeType = NodeType()
private var capabilities: MutableMap<String, CapabilityDefinition>? = null
private var requirements: MutableMap<String, RequirementDefinition>? = null
requirements!![id] = RequirementDefinitionBuilder(id, capability, node, relationship, description).build()
}
- fun requirement(id: String, capability: String, node: String, relationship: String, description: String,
- block: RequirementDefinitionBuilder.() -> Unit) {
+ fun requirement(
+ id: String,
+ capability: String,
+ node: String,
+ relationship: String,
+ description: String,
+ block: RequirementDefinitionBuilder.() -> Unit
+ ) {
if (requirements == null)
requirements = hashMapOf()
requirements!![id] = RequirementDefinitionBuilder(id, capability, node, relationship, description)
- .apply(block).build()
+ .apply(block).build()
}
fun artifact(id: String, type: String, file: String) {
val defaultOperationName = "process"
interfaceDefinition.operations = hashMapOf()
interfaceDefinition.operations!![defaultOperationName] =
- OperationDefinitionBuilder(defaultOperationName, description).apply(block).build()
+ OperationDefinitionBuilder(defaultOperationName, description).apply(block).build()
interfaces!![interfaceName] = interfaceDefinition
}
}
}
-class ArtifactTypeBuilder(id: String, version: String, derivedFrom: String,
- description: String?) : EntityTypeBuilder(id, version, derivedFrom, description) {
+class ArtifactTypeBuilder(
+ id: String,
+ version: String,
+ derivedFrom: String,
+ description: String?
+) : EntityTypeBuilder(id, version, derivedFrom, description) {
+
private var artifactType = ArtifactType()
private var fileExt: MutableList<String>? = null
}
}
-class PolicyTypeBuilder(id: String, version: String, derivedFrom: String,
- description: String?) : EntityTypeBuilder(id, version, derivedFrom, description) {
+class PolicyTypeBuilder(
+ id: String,
+ version: String,
+ derivedFrom: String,
+ description: String?
+) : EntityTypeBuilder(id, version, derivedFrom, description) {
+
private var policyType = PolicyType()
fun targets(targetsStr: String) {
}
}
-class RelationshipTypeBuilder(private val id: String, private val version: String,
- derivedFrom: String, private val description: String?)
- : EntityTypeBuilder(id, version, derivedFrom, description) {
+class RelationshipTypeBuilder(
+ private val id: String,
+ private val version: String,
+ derivedFrom: String,
+ private val description: String?
+) :
+ EntityTypeBuilder(id, version, derivedFrom, description) {
private var relationshipType = RelationshipType()
}
}
-class DataTypeBuilder(id: String, version: String, derivedFrom: String,
- description: String?) : EntityTypeBuilder(id, version, derivedFrom, description) {
+class DataTypeBuilder(
+ id: String,
+ version: String,
+ derivedFrom: String,
+ description: String?
+) : EntityTypeBuilder(id, version, derivedFrom, description) {
+
private var dataType = DataType()
fun constrain(block: ConstraintClauseBuilder.() -> Unit) {
}
}
-class RequirementDefinitionBuilder(private val id: String, private val capability: String, private val node: String,
- private val relationship: String, private val description: String? = "") {
+class RequirementDefinitionBuilder(
+ private val id: String,
+ private val capability: String,
+ private val node: String,
+ private val relationship: String,
+ private val description: String? = ""
+) {
+
private var requirementDefinition = RequirementDefinition()
fun build(): RequirementDefinition {
}
}
-class OperationDefinitionBuilder(private val id: String,
- private val description: String? = "") {
+class OperationDefinitionBuilder(
+ private val id: String,
+ private val description: String? = ""
+) {
+
private var operationDefinition: OperationDefinition = OperationDefinition()
fun inputs(block: PropertiesDefinitionBuilder.() -> Unit) {
}
}
-class AttributeDefinitionBuilder(private val id: String,
- private val type: String? = BluePrintConstants.DATA_TYPE_STRING,
- private val required: Boolean? = false,
- private val description: String? = "") {
+class AttributeDefinitionBuilder(
+ private val id: String,
+ private val type: String? = BluePrintConstants.DATA_TYPE_STRING,
+ private val required: Boolean? = false,
+ private val description: String? = ""
+) {
private var attributeDefinition: AttributeDefinition = AttributeDefinition()
properties[id] = property
}
- fun property(id: String, type: String?, required: Boolean?, description: String? = "",
- block: PropertyDefinitionBuilder.() -> Unit) {
+ fun property(
+ id: String,
+ type: String?,
+ required: Boolean?,
+ description: String? = "",
+ block: PropertyDefinitionBuilder.() -> Unit
+ ) {
val property = PropertyDefinitionBuilder(id, type, required, description).apply(block).build()
properties[id] = property
}
}
}
-class PropertyDefinitionBuilder(private val id: String,
- private val type: String? = BluePrintConstants.DATA_TYPE_STRING,
- private val required: Boolean? = false,
- private val description: String? = "") {
+class PropertyDefinitionBuilder(
+ private val id: String,
+ private val type: String? = BluePrintConstants.DATA_TYPE_STRING,
+ private val required: Boolean? = false,
+ private val description: String? = ""
+) {
private var propertyDefinition: PropertyDefinition = PropertyDefinition()
propertyDefinition.defaultValue = defaultValue
}
+ fun metadata(name: String, value: String) {
+ if (propertyDefinition.metadata == null) {
+ propertyDefinition.metadata = hashMapOf()
+ }
+ propertyDefinition.metadata!![name] = value
+ }
+
+ fun value(value: Any) {
+ value(value.asJsonType())
+ }
+
fun value(value: JsonNode) {
propertyDefinition.value = value
}
}
}
-
class EntrySchemaBuilder(private val type: String) {
private var entrySchema: EntrySchema = EntrySchema()
entrySchema.type = type
return entrySchema
}
-}
\ No newline at end of file
+}