2 * Copyright (C) 2022 CMCC, Inc. and others. All rights reserved.
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.
16 package org.onap.usecaseui.intentanalysis.intentBaseService.contextService;
18 import java.util.ArrayList;
19 import java.util.List;
20 import org.onap.usecaseui.intentanalysis.bean.enums.OperatorType;
21 import org.onap.usecaseui.intentanalysis.bean.models.Condition;
22 import org.onap.usecaseui.intentanalysis.bean.models.Context;
23 import org.onap.usecaseui.intentanalysis.bean.models.Intent;
24 import org.onap.usecaseui.intentanalysis.cllBusinessIntentMgt.CLLBusinessIntentManagementFunction;
25 import org.onap.usecaseui.intentanalysis.intentBaseService.IntentManagementFunction;
26 import org.onap.usecaseui.intentanalysis.service.IntentService;
27 import org.onap.usecaseui.intentanalysis.util.CommonUtil;
28 import org.springframework.beans.factory.annotation.Autowired;
29 import org.springframework.context.ApplicationContext;
30 import org.springframework.stereotype.Service;
33 public class IntentContextService {
36 private IntentService intentService;
39 ApplicationContext applicationContext;
41 public void updateChindIntentContext(Intent originIntent, Intent intent){
42 List<Context> contextList = intent.getIntentContexts();
44 Condition condition1 = new Condition();
45 condition1.setConditionId(CommonUtil.getUUid());
46 condition1.setConditionName(originIntent.getIntentName() + "id");
47 condition1.setOperator(OperatorType.EQUALTO);
48 condition1.setConditionValue(originIntent.getIntentId());
50 Context context = new Context();
51 context.setContextName("parentIntent info");
52 context.setContextId(CommonUtil.getUUid());
53 List<Condition> conditionList = new ArrayList<>();
54 conditionList.add(condition1);
55 context.setContextConditions(conditionList);
56 contextList.add(context);
59 public void updateParentIntentContext(Intent originIntent, Intent intent){
60 List<Context> contextList = originIntent.getIntentContexts();
62 Condition condition1 = new Condition();
63 condition1.setConditionId(CommonUtil.getUUid());
64 condition1.setConditionName(intent.getIntentName() + "id");
65 condition1.setOperator(OperatorType.EQUALTO);
66 condition1.setConditionValue(intent.getIntentId());
68 boolean isSubIntentInfoExist = false;
69 for (Context context : contextList) {
70 if (context.getContextName().contains("subIntent info")){
71 List<Condition> conditionList = context.getContextConditions();
72 conditionList.add(condition1);
73 isSubIntentInfoExist = true;
77 if (isSubIntentInfoExist != true){
78 Context context = new Context();
79 context.setContextName("subIntent info");
80 context.setContextId(CommonUtil.getUUid());
81 List<Condition> conditionList = new ArrayList<>();
82 conditionList.add(condition1);
83 context.setContextConditions(conditionList);
84 contextList.add(context);
89 public void updateIntentOwnerHandlerContext(Intent intent, IntentManagementFunction intentOwner, IntentManagementFunction intentHandler){
90 List<Context> contextList = intent.getIntentContexts();
92 Condition condition1 = new Condition();
93 condition1.setConditionId(CommonUtil.getUUid());
94 condition1.setConditionName("owner class name");
95 condition1.setOperator(OperatorType.EQUALTO);
96 condition1.setConditionValue(intentOwner.getClass().getName());
98 Context context = new Context();
99 context.setContextName("owner info");
100 context.setContextId(CommonUtil.getUUid());
101 List<Condition> conditionList = new ArrayList<>();
102 conditionList.add(condition1);
103 context.setContextConditions(conditionList);
104 contextList.add(context);
106 Condition condition2 = new Condition();
107 condition2.setConditionId(CommonUtil.getUUid());
108 condition2.setConditionName("handler class name");
109 condition2.setOperator(OperatorType.EQUALTO);
110 condition2.setConditionValue(intentHandler.getClass().getName());
112 Context context2 = new Context();
113 context2.setContextName("handler info");
114 context2.setContextId(CommonUtil.getUUid());
115 List<Condition> conditionList2 = new ArrayList<>();
116 conditionList2.add(condition2);
117 context2.setContextConditions(conditionList2);
118 contextList.add(context2);
121 public List<Intent> getSubIntentInfoFromContext(Intent originIntent){
123 List<Intent> subIntentList = new ArrayList<>();
124 List<Context> contextList = originIntent.getIntentContexts();
126 for (Context context : contextList) {
127 if (context.getContextName().contains("subIntent info")){
128 List<Condition> conditionList = context.getContextConditions();
129 for (Condition condition : conditionList) {
130 String subIntentId = condition.getConditionValue();
131 Intent subInent = intentService.getIntent(subIntentId);
132 subIntentList.add(subInent);
137 return subIntentList;
140 public IntentManagementFunction getHandlerInfo(Intent intent){
141 List<Context> contextList = intent.getIntentContexts();
142 IntentManagementFunction handler = new IntentManagementFunction();
144 for (Context context : contextList) {
145 if (context.getContextName().contains("handler info")) {
146 List<Condition> conditionList = context.getContextConditions();
147 String handlerClassName = conditionList.get(0).getConditionValue();
148 handler = (IntentManagementFunction) applicationContext
149 .getBean(CLLBusinessIntentManagementFunction.class.getSimpleName());
155 public void deleteSubIntentContext(Intent intent, String deleteIntentId){
156 List<Context> contextList = intent.getIntentContexts();
157 for (Context context : contextList) {
158 if (context.getContextName().contains("subIntent info")) {
159 List<Condition> conditionList = context.getContextConditions();
160 for (Condition condition : conditionList) {
161 if (condition.getConditionValue() == deleteIntentId){
162 conditionList.remove(condition);