a6de3da03f7df9979e852c179dedd8e085cd22cc
[usecase-ui/intent-analysis.git] /
1 /*
2  * Copyright 2022 Huawei Technologies Co., Ltd.
3  *
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
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 package org.onap.usecaseui.intentanalysis.service.impl;
18
19
20 import java.util.List;
21
22 import org.onap.usecaseui.intentanalysis.bean.enums.ConditionParentType;
23 import org.onap.usecaseui.intentanalysis.service.ConditionService;
24 import lombok.extern.slf4j.Slf4j;
25 import org.onap.usecaseui.intentanalysis.common.ResponseConsts;
26 import org.onap.usecaseui.intentanalysis.exception.DataBaseException;
27 import org.springframework.beans.factory.annotation.Autowired;
28 import org.springframework.stereotype.Service;
29 import org.onap.usecaseui.intentanalysis.bean.models.ExpectationTarget;
30 import org.onap.usecaseui.intentanalysis.mapper.ExpectationTargetMapper;
31 import org.onap.usecaseui.intentanalysis.service.ContextService;
32 import org.onap.usecaseui.intentanalysis.service.ExpectationTargetService;
33 import org.onap.usecaseui.intentanalysis.service.FulfilmentInfoService;
34
35
36 @Service
37 @Slf4j
38 public class ExpectationTargetServiceImpl implements ExpectationTargetService {
39
40     private ConditionParentType conditionParentType;
41
42     @Autowired
43     private ExpectationTargetMapper expectationTargetMapper;
44
45     @Autowired
46     private ExpectationTargetService expectationTargetService;
47
48
49     @Autowired
50     private FulfilmentInfoService fulfilmentInfoService;
51
52     @Autowired
53     private ContextService contextService;
54
55     @Autowired
56     private ConditionService conditionService;
57
58     @Override
59     public void createExpectationTarget(ExpectationTarget expectationTarget, String expectationId) {
60         if (expectationTargetMapper.insertExpectationTarget(expectationTarget, expectationId) < 1) {
61             String msg = "Create expectation to database failed.";
62             log.error(msg);
63             throw new DataBaseException(msg, ResponseConsts.RET_INSERT_DATA_FAIL);
64         }
65         contextService.createContextList(expectationTarget.getTargetContexts(), expectationTarget.getTargetId());
66         fulfilmentInfoService.createFulfilmentInfo(expectationTarget.getTargetFulfilmentInfo(),
67                                                    expectationTarget.getTargetId());
68         conditionService.createConditionList(expectationTarget.getTargetConditions(),
69                                              conditionParentType.EXPECTATION_TARGET, expectationId);
70     }
71
72     @Override
73     public void createExpectationTargetList(List<ExpectationTarget> expectationTargetList, String expectationId) {
74         for (ExpectationTarget expectationTarget : expectationTargetList) {
75             if (expectationTarget != null) {
76                 expectationTargetService.createExpectationTarget(expectationTarget, expectationId);
77             }
78         }
79     }
80
81     @Override
82     public List<ExpectationTarget> getExpectationTargetListByExpectationId(String expectationId) {
83         List<ExpectationTarget> expectationTargetList = expectationTargetMapper.selectExpectationTargetListByExpectationId(expectationId);
84         if (expectationTargetList == null) {
85             String msg = String.format("Target: Expectation id %s doesn't exist in database.", expectationId);
86             log.error(msg);
87             throw new DataBaseException(msg, ResponseConsts.RET_QUERY_DATA_EMPTY);
88         }
89         for (ExpectationTarget expectationTarget : expectationTargetList) {
90             if (expectationTarget != null) {
91                 String targetId = expectationTarget.getTargetId();
92                 expectationTarget.setTargetContexts(contextService.getContextListByParentId(targetId));
93                 expectationTarget.setTargetFulfilmentInfo(fulfilmentInfoService.getFulfilmentInfoByParentId(targetId));
94             }
95         }
96         return expectationTargetList;
97     }
98 }