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.service.handler
19 import com.att.eelf.configuration.EELFManager
20 import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException
21 import org.onap.ccsdk.apps.controllerblueprints.service.domain.ModelType
22 import org.onap.ccsdk.apps.controllerblueprints.service.repository.ModelTypeRepository
23 import org.onap.ccsdk.apps.controllerblueprints.service.validator.ModelTypeValidator
24 import org.springframework.stereotype.Service
27 open class ModelTypeHandler(private val modelTypeRepository: ModelTypeRepository) {
29 private val log = EELFManager.getInstance().getLogger(ModelTypeHandler::class.java)!!
32 * This is a getModelTypeByName service
34 * @param modelTypeName modelTypeName
37 fun getModelTypeByName(modelTypeName: String): ModelType? {
38 log.info("Searching : $modelTypeName")
39 check(modelTypeName.isNotBlank()) { "Model Name Information is missing." }
40 return modelTypeRepository.findByModelName(modelTypeName)
45 * This is a searchModelTypes service
48 * @return List<ModelType>
50 fun searchModelTypes(tags: String): List<ModelType> {
51 check(tags.isNotBlank()) { "No Search Information provide" }
52 return modelTypeRepository.findByTagsContainingIgnoreCase(tags)
56 * This is a saveModel service
58 * @param modelType modelType
60 * @throws BluePrintException BluePrintException
62 @Throws(BluePrintException::class)
63 open fun saveModel(modelType: ModelType): ModelType {
64 lateinit var dbModel: ModelType
65 ModelTypeValidator.validateModelType(modelType)
66 val dbModelType: ModelType? = modelTypeRepository.findByModelName(modelType.modelName)
67 if (dbModelType != null) {
69 dbModel.description = modelType.description
70 dbModel.definition = modelType.definition
71 dbModel.definitionType = modelType.definitionType
72 dbModel.derivedFrom = modelType.derivedFrom
73 dbModel.tags = modelType.tags
74 dbModel.version = modelType.version
75 dbModel.updatedBy = modelType.updatedBy
76 dbModel = modelTypeRepository.save(dbModel)
78 dbModel = modelTypeRepository.save(modelType)
85 * This is a deleteByModelName service
87 * @param modelName modelName
89 open fun deleteByModelName(modelName: String) {
90 check(modelName.isNotBlank()) { "Model Name Information is missing." }
91 modelTypeRepository.deleteByModelName(modelName)
96 * This is a getModelTypeByDefinitionType service
98 * @param definitionType definitionType
99 * @return List<ModelType>
101 fun getModelTypeByDefinitionType(definitionType: String): List<ModelType> {
102 check(definitionType.isNotBlank()) { "Model definitionType Information is missing." }
103 return modelTypeRepository.findByDefinitionType(definitionType)
107 * This is a getModelTypeByDerivedFrom service
109 * @param derivedFrom derivedFrom
110 * @return List<ModelType>
112 fun getModelTypeByDerivedFrom(derivedFrom: String): List<ModelType> {
113 check(derivedFrom.isNotBlank()) { "Model derivedFrom Information is missing." }
114 return modelTypeRepository.findByDerivedFrom(derivedFrom)