2 * Copyright 2022 Huawei Technologies Co., Ltd.
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.usecaseui.intentanalysis.service.impl;
20 import java.util.ArrayList;
21 import java.util.List;
23 import lombok.extern.slf4j.Slf4j;
24 import org.onap.usecaseui.intentanalysis.bean.enums.ConditionParentType;
25 import org.onap.usecaseui.intentanalysis.service.ConditionService;
26 import org.onap.usecaseui.intentanalysis.common.ResponseConsts;
27 import org.onap.usecaseui.intentanalysis.exception.DataBaseException;
28 import org.springframework.beans.factory.annotation.Autowired;
29 import org.springframework.stereotype.Service;
30 import org.onap.usecaseui.intentanalysis.bean.enums.ContextParentType;
31 import org.onap.usecaseui.intentanalysis.bean.models.ExpectationTarget;
32 import org.onap.usecaseui.intentanalysis.mapper.ExpectationTargetMapper;
33 import org.onap.usecaseui.intentanalysis.service.ContextService;
34 import org.onap.usecaseui.intentanalysis.service.ExpectationTargetService;
35 import org.onap.usecaseui.intentanalysis.service.FulfilmentInfoService;
36 import org.springframework.util.CollectionUtils;
41 public class ExpectationTargetServiceImpl implements ExpectationTargetService {
43 private ContextParentType contextParentType;
45 private ConditionParentType conditionParentType;
48 private ExpectationTargetMapper expectationTargetMapper;
51 private ExpectationTargetService expectationTargetService;
54 private FulfilmentInfoService fulfilmentInfoService;
57 private ContextService contextService;
60 private ConditionService conditionService;
63 public void createExpectationTarget(ExpectationTarget expectationTarget, String expectationId) {
64 String expectationTargetId = expectationTarget.getTargetId();
65 contextService.createContextList(expectationTarget.getTargetContexts(), expectationTargetId);
66 fulfilmentInfoService.createFulfilmentInfo(expectationTarget.getTargetFulfilmentInfo(),
68 conditionService.createConditionList(expectationTarget.getTargetConditions(), expectationTargetId);
69 if (expectationTargetMapper.insertExpectationTarget(expectationTarget, expectationId) < 1) {
70 String msg = "Failed to create expectation target to database.";
72 throw new DataBaseException(msg, ResponseConsts.RET_INSERT_DATA_FAIL);
74 log.info("Successfully created expectation target to database.");
79 public void createExpectationTargetList(List<ExpectationTarget> expectationTargetList, String expectationId) {
80 if (!CollectionUtils.isEmpty(expectationTargetList)) {
81 for (ExpectationTarget expectationTarget : expectationTargetList) {
82 String expectationTargetId = expectationTarget.getTargetId();
83 contextService.createContextList(expectationTarget.getTargetContexts(), expectationTargetId);
84 fulfilmentInfoService.createFulfilmentInfo(expectationTarget.getTargetFulfilmentInfo(),
86 conditionService.createConditionList(expectationTarget.getTargetConditions(), expectationTargetId);
88 if (expectationTargetMapper.insertExpectationTargetList(expectationTargetList, expectationId) < 1) {
89 String msg = "Failed to create expectation target list to database.";
91 throw new DataBaseException(msg, ResponseConsts.RET_INSERT_DATA_FAIL);
93 log.info("Successfully created expectation target list to database.");
99 public List<ExpectationTarget> getExpectationTargetList(String expectationId) {
100 List<ExpectationTarget> expectationTargetList = expectationTargetMapper.selectExpectationTargetList(expectationId);
101 if (!CollectionUtils.isEmpty(expectationTargetList)) {
102 for (ExpectationTarget expectationTarget : expectationTargetList) {
103 String expectationTargetId = expectationTarget.getTargetId();
104 expectationTarget.setTargetConditions(conditionService.getConditionList(expectationTargetId));
105 expectationTarget.setTargetContexts(contextService.getContextList(expectationTargetId));
106 expectationTarget.setTargetFulfilmentInfo(fulfilmentInfoService.getFulfilmentInfo(expectationTargetId));
109 log.info(String.format("Expectation target list is null, expectationId = %s", expectationId));
112 return expectationTargetList;
116 public ExpectationTarget getExpectationTarget(String expectationTargetId) {
117 ExpectationTarget expectationTarget = expectationTargetMapper.selectExpectationTarget(expectationTargetId);
118 if (expectationTarget != null) {
119 expectationTarget.setTargetConditions(conditionService.getConditionList(expectationTargetId));
120 expectationTarget.setTargetContexts(contextService.getContextList(expectationTargetId));
121 expectationTarget.setTargetFulfilmentInfo(fulfilmentInfoService.getFulfilmentInfo(expectationTargetId));
123 log.info(String.format("Expectation target is null, expectationTargetId = %s", expectationTargetId));
125 return expectationTarget;
129 public void updateExpectationTargetList(List<ExpectationTarget> expectationTargetList, String expectationId) {
130 List<ExpectationTarget> expectationTargetListFromDB = expectationTargetService.getExpectationTargetList(expectationId);
131 if (!CollectionUtils.isEmpty(expectationTargetListFromDB) && CollectionUtils.isEmpty(expectationTargetList)) {
132 expectationTargetService.deleteExpectationTargetList(expectationId);
133 } else if (CollectionUtils.isEmpty(expectationTargetListFromDB) && !CollectionUtils.isEmpty(expectationTargetList)) {
134 expectationTargetService.createExpectationTargetList(expectationTargetList, expectationId);
135 } else if (!CollectionUtils.isEmpty(expectationTargetListFromDB) && !CollectionUtils.isEmpty(expectationTargetList)) {
136 List<String> expectationTargetIdListFromDB = new ArrayList<>();
137 for (ExpectationTarget expectationTargetDB : expectationTargetListFromDB) {
138 expectationTargetIdListFromDB.add(expectationTargetDB.getTargetId());
141 for (ExpectationTarget expectationTarget : expectationTargetList) {
142 String expectationTargetId = expectationTarget.getTargetId();
143 if (expectationTargetIdListFromDB.contains(expectationTargetId)) {
144 contextService.updateContextList(expectationTarget.getTargetContexts(), expectationTargetId);
145 fulfilmentInfoService.updateFulfilmentInfo(expectationTarget.getTargetFulfilmentInfo(), expectationTargetId);
146 conditionService.updateConditionList(expectationTarget.getTargetConditions(), expectationTargetId);
147 if (expectationTargetMapper.updateExpectationTarget(expectationTarget, expectationTargetId) < 1) {
148 String msg = "Failed to update expectation target list to database.";
150 throw new DataBaseException(msg, ResponseConsts.RET_UPDATE_DATA_FAIL);
152 expectationTargetIdListFromDB.remove(expectationTargetId);
154 expectationTargetService.createExpectationTarget(expectationTarget, expectationId);
157 for (String expectationTargetIdFromDB : expectationTargetIdListFromDB) {
158 expectationTargetService.deleteExpectationTarget(expectationTargetIdFromDB);
160 log.info("Successfully updated expectation target list to database.");
166 public void deleteExpectationTarget(String expectationTargetId) {
167 ExpectationTarget expectationTarget = expectationTargetService.getExpectationTarget(expectationTargetId);
168 if (expectationTarget != null) {
169 contextService.deleteContextList(expectationTargetId);
170 fulfilmentInfoService.deleteFulfilmentInfo(expectationTargetId);
171 conditionService.deleteConditionList(expectationTargetId);
172 if (expectationTargetMapper.deleteExpectationTarget(expectationTargetId) < 1) {
173 String msg = "Failed to delete expectation target to database.";
175 throw new DataBaseException(msg, ResponseConsts.RET_DELETE_DATA_FAIL);
177 log.info("Successfully deleted expectation target to database.");
182 public void deleteExpectationTargetList(String expectationId) {
183 List<ExpectationTarget> expectationTargetList = expectationTargetService.getExpectationTargetList(expectationId);
184 if (!CollectionUtils.isEmpty(expectationTargetList)) {
185 for (ExpectationTarget expectationTarget : expectationTargetList) {
186 String expectationTargetId = expectationTarget.getTargetId();
187 contextService.deleteContextList(expectationTargetId);
188 fulfilmentInfoService.deleteFulfilmentInfo(expectationTargetId);
189 conditionService.deleteConditionList(expectationTargetId);
191 if (expectationTargetMapper.deleteExpectationTargetList(expectationId) < 1) {
192 String msg = "Failed to delete expectation target list to database.";
194 throw new DataBaseException(msg, ResponseConsts.RET_DELETE_DATA_FAIL);
196 log.info("Successfully deleted expectation target list to database.");