925a6c4921acacfbb5770f819de776a466a6ed54
[ccsdk/cds.git] /
1 /*\r
2  * Copyright © 2017-2018 AT&T Intellectual Property.\r
3  * Modifications Copyright © 2018 IBM.\r
4  *\r
5  * Licensed under the Apache License, Version 2.0 (the "License");\r
6  * you may not use this file except in compliance with the License.\r
7  * You may obtain a copy of the License at\r
8  *\r
9  *     http://www.apache.org/licenses/LICENSE-2.0\r
10  *\r
11  * Unless required by applicable law or agreed to in writing, software\r
12  * distributed under the License is distributed on an "AS IS" BASIS,\r
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
14  * See the License for the specific language governing permissions and\r
15  * limitations under the License.\r
16  */\r
17 \r
18 package org.onap.ccsdk.apps.controllerblueprints.service;\r
19 \r
20 import com.google.common.base.Preconditions;\r
21 import org.apache.commons.lang3.StringUtils;\r
22 import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException;\r
23 import org.onap.ccsdk.apps.controllerblueprints.service.domain.ModelType;\r
24 import org.onap.ccsdk.apps.controllerblueprints.service.repository.ModelTypeRepository;\r
25 import org.onap.ccsdk.apps.controllerblueprints.service.validator.ModelTypeValidator;\r
26 import org.springframework.stereotype.Service;\r
27 import org.springframework.transaction.annotation.Transactional;\r
28 \r
29 import java.util.List;\r
30 import java.util.Optional;\r
31 \r
32 /**\r
33  * ModelTypeService.java Purpose: Provide ModelTypeService Service ModelTypeService\r
34  *\r
35  * @author Brinda Santh\r
36  * @version 1.0\r
37  */\r
38 \r
39 @Service\r
40 @Transactional\r
41 public class ModelTypeService {\r
42 \r
43     private ModelTypeRepository modelTypeRepository;\r
44 \r
45     /**\r
46      * This is a ModelTypeService, used to save and get the model types stored in database\r
47      *\r
48      * @param modelTypeRepository modelTypeRepository\r
49      */\r
50     public ModelTypeService(ModelTypeRepository modelTypeRepository) {\r
51         this.modelTypeRepository = modelTypeRepository;\r
52     }\r
53 \r
54 \r
55     /**\r
56      * This is a getModelTypeByName service\r
57      *\r
58      * @param modelTypeName modelTypeName\r
59      * @return ModelType\r
60      */\r
61     public ModelType getModelTypeByName(String modelTypeName) {\r
62         ModelType modelType = null;\r
63         Preconditions.checkArgument(StringUtils.isNotBlank(modelTypeName), "Model Name Information is missing.");\r
64         Optional<ModelType> modelTypeOption = modelTypeRepository.findByModelName(modelTypeName);\r
65         if (modelTypeOption.isPresent()) {\r
66             modelType = modelTypeOption.get();\r
67         }\r
68         return modelType;\r
69     }\r
70 \r
71 \r
72     /**\r
73      * This is a searchModelTypes service\r
74      *\r
75      * @param tags tags\r
76      * @return List<ModelType>\r
77      */\r
78     public List<ModelType> searchModelTypes(String tags) {\r
79         Preconditions.checkArgument(StringUtils.isNotBlank(tags), "No Search Information provide");\r
80         return modelTypeRepository.findByTagsContainingIgnoreCase(tags);\r
81     }\r
82 \r
83     /**\r
84      * This is a saveModel service\r
85      *\r
86      * @param modelType modelType\r
87      * @return ModelType\r
88      * @throws BluePrintException BluePrintException\r
89      */\r
90     public ModelType saveModel(ModelType modelType) throws BluePrintException {\r
91 \r
92         Preconditions.checkNotNull(modelType, "Model Type Information is missing.");\r
93 \r
94         ModelTypeValidator.validateModelType(modelType);\r
95 \r
96         Optional<ModelType> dbModelType = modelTypeRepository.findByModelName(modelType.getModelName());\r
97         if (dbModelType.isPresent()) {\r
98             ModelType dbModel = dbModelType.get();\r
99             dbModel.setDescription(modelType.getDescription());\r
100             dbModel.setDefinition(modelType.getDefinition());\r
101             dbModel.setDefinitionType(modelType.getDefinitionType());\r
102             dbModel.setDerivedFrom(modelType.getDerivedFrom());\r
103             dbModel.setTags(modelType.getTags());\r
104             dbModel.setVersion(modelType.getVersion());\r
105             dbModel.setUpdatedBy(modelType.getUpdatedBy());\r
106             modelType = modelTypeRepository.save(dbModel);\r
107         } else {\r
108             modelType = modelTypeRepository.save(modelType);\r
109         }\r
110         return modelType;\r
111     }\r
112 \r
113 \r
114     /**\r
115      * This is a deleteByModelName service\r
116      *\r
117      * @param modelName modelName\r
118      */\r
119     public void deleteByModelName(String modelName) {\r
120         Preconditions.checkArgument(StringUtils.isNotBlank(modelName), "Model Name Information is missing.");\r
121         modelTypeRepository.deleteByModelName(modelName);\r
122 \r
123     }\r
124 \r
125     /**\r
126      * This is a getModelTypeByDefinitionType service\r
127      *\r
128      * @param definitionType definitionType\r
129      * @return List<ModelType>\r
130      */\r
131     public List<ModelType> getModelTypeByDefinitionType(String definitionType) {\r
132         Preconditions.checkArgument(StringUtils.isNotBlank(definitionType), "Model definitionType Information is missing.");\r
133         return modelTypeRepository.findByDefinitionType(definitionType);\r
134     }\r
135 \r
136     /**\r
137      * This is a getModelTypeByDerivedFrom service\r
138      *\r
139      * @param derivedFrom derivedFrom\r
140      * @return List<ModelType>\r
141      */\r
142     public List<ModelType> getModelTypeByDerivedFrom(String derivedFrom) {\r
143         Preconditions.checkArgument(StringUtils.isNotBlank(derivedFrom), "Model derivedFrom Information is missing.");\r
144         return modelTypeRepository.findByDerivedFrom(derivedFrom);\r
145     }\r
146 \r
147 \r
148 }\r