1 package org.onap.ccsdk.apps.controllerblueprints.core.interfaces
3 import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintError
4 import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException
5 import org.onap.ccsdk.apps.controllerblueprints.core.data.*
6 import org.onap.ccsdk.apps.controllerblueprints.core.service.BluePrintContext
9 interface BluePrintValidator<T> {
11 fun validate(bluePrintContext: BluePrintContext, error: BluePrintError, name: String, type: T)
16 interface BluePrintServiceTemplateValidator : BluePrintValidator<ServiceTemplate>
18 interface BluePrintTopologyTemplateValidator : BluePrintValidator<TopologyTemplate>
20 interface BluePrintArtifactTypeValidator : BluePrintValidator<ArtifactType>
22 interface BluePrintDataTypeValidator : BluePrintValidator<DataType>
24 interface BluePrintNodeTypeValidator : BluePrintValidator<NodeType>
26 interface BluePrintNodeTemplateValidator : BluePrintValidator<NodeTemplate>
28 interface BluePrintWorkflowValidator : BluePrintValidator<Workflow>
30 interface BluePrintPropertyDefinitionValidator : BluePrintValidator<PropertyDefinition>
32 interface BluePrintAttributeDefinitionValidator : BluePrintValidator<AttributeDefinition>
35 * Blueprint Validation Interface.
37 interface BluePrintValidatorService {
39 @Throws(BluePrintException::class)
40 fun validateBluePrints(bluePrintContext: BluePrintContext, properties: MutableMap<String, Any>) : Boolean
44 interface BluePrintTypeValidatorService {
46 fun getServiceTemplateValidators(): List<BluePrintServiceTemplateValidator>
48 fun getDataTypeValidators(): List<BluePrintDataTypeValidator>
50 fun getArtifactTypeValidators(): List<BluePrintArtifactTypeValidator>
52 fun getNodeTypeValidators(): List<BluePrintNodeTypeValidator>
54 fun getTopologyTemplateValidators(): List<BluePrintTopologyTemplateValidator>
56 fun getNodeTemplateValidators(): List<BluePrintNodeTemplateValidator>
58 fun getWorkflowValidators(): List<BluePrintWorkflowValidator>
60 fun getPropertyDefinitionValidators(): List<BluePrintPropertyDefinitionValidator>
62 fun getAttributeDefinitionValidators(): List<BluePrintAttributeDefinitionValidator>
64 fun validateServiceTemplate(bluePrintContext: BluePrintContext, error: BluePrintError, name: String, serviceTemplate: ServiceTemplate) {
65 val validators = getServiceTemplateValidators()
66 doValidation(bluePrintContext, error, name, serviceTemplate, validators)
69 fun validateArtifactType(bluePrintContext: BluePrintContext, error: BluePrintError, name: String, artifactType: ArtifactType) {
70 val validators = getArtifactTypeValidators()
71 doValidation(bluePrintContext, error, name, artifactType, validators)
74 fun validateDataType(bluePrintContext: BluePrintContext, error: BluePrintError, name: String, dataType: DataType) {
75 val validators = getDataTypeValidators()
76 doValidation(bluePrintContext, error, name, dataType, validators)
79 fun validateNodeType(bluePrintContext: BluePrintContext, error: BluePrintError, name: String, nodeType: NodeType) {
80 val validators = getNodeTypeValidators()
81 doValidation(bluePrintContext, error, name, nodeType, validators)
84 fun validateTopologyTemplate(bluePrintContext: BluePrintContext, error: BluePrintError, name: String, topologyTemplate: TopologyTemplate) {
85 val validators = getTopologyTemplateValidators()
86 doValidation(bluePrintContext, error, name, topologyTemplate, validators)
89 fun validateNodeTemplate(bluePrintContext: BluePrintContext, error: BluePrintError, name: String, nodeTemplate: NodeTemplate) {
90 val validators = getNodeTemplateValidators()
91 doValidation(bluePrintContext, error, name, nodeTemplate, validators)
94 fun validateWorkflow(bluePrintContext: BluePrintContext, error: BluePrintError, name: String, workflow: Workflow) {
95 val validators = getWorkflowValidators()
96 doValidation(bluePrintContext, error, name, workflow, validators)
99 fun validatePropertyDefinitions(bluePrintContext: BluePrintContext, error: BluePrintError, properties: MutableMap<String, PropertyDefinition>) {
100 properties.forEach { propertyName, propertyDefinition ->
101 validatePropertyDefinition(bluePrintContext, error, propertyName, propertyDefinition)
105 fun validatePropertyDefinition(bluePrintContext: BluePrintContext, error: BluePrintError, name: String, propertyDefinition: PropertyDefinition) {
106 val validators = getPropertyDefinitionValidators()
107 doValidation(bluePrintContext, error, name, propertyDefinition, validators)
110 fun validateAttributeDefinitions(bluePrintContext: BluePrintContext, error: BluePrintError, attributes: MutableMap<String, AttributeDefinition>) {
111 attributes.forEach { attributeName, attributeDefinition ->
112 validateAttributeDefinition(bluePrintContext, error, attributeName, attributeDefinition)
116 fun validateAttributeDefinition(bluePrintContext: BluePrintContext, error: BluePrintError, name: String, attributeDefinition: AttributeDefinition) {
117 val validators = getAttributeDefinitionValidators()
118 doValidation(bluePrintContext, error, name, attributeDefinition, validators)
121 private fun <T> doValidation(bluePrintContext: BluePrintContext, error: BluePrintError, name: String, definition: Any, validators: List<BluePrintValidator<T>>) {
123 it.validate(bluePrintContext, error, name, definition as T)