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