Add intent base operation process code . 71/130771/1
authorhekeguang <hekeguang@chinamobile.com>
Wed, 7 Sep 2022 01:50:29 +0000 (09:50 +0800)
committerhekeguang <hekeguang@chinamobile.com>
Wed, 7 Sep 2022 01:51:38 +0000 (09:51 +0800)
Issue-ID: USECASEUI-696
Change-Id: I550048e9b408daa9e21509efae8ebf30c514f231
Signed-off-by: hekeguang <hekeguang@chinamobile.com>
21 files changed:
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/cllBusinessIntentMgt/cllBusinessModule/CLLBusinessActuationModule.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/cllBusinessIntentMgt/cllBusinessModule/CLLBusinessDecisionModule.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/cllassuranceIntentmgt/CLLAssuranceIntentManagementFunction.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/cllassuranceIntentmgt/cllassurancemodule/CLLAssuranceActuationModule.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/cllassuranceIntentmgt/cllassurancemodule/CLLAssuranceDecisionModule.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/cllassuranceIntentmgt/cllassurancemodule/CLLAssuranceKnowledgeModule.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/clldeliveryIntentmgt/CLLDeliveryIntentManagementFunction.java [new file with mode: 0644]
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/clldeliveryIntentmgt/CLLDeliveryManagementFunction.java [deleted file]
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/clldeliveryIntentmgt/clldeliverymodule/CLLDeliveryActuationModule.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/clldeliveryIntentmgt/clldeliverymodule/CLLDeliveryDecisionModule.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/clldeliveryIntentmgt/clldeliverymodule/CLLDeliveryKnowledgeModule.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/formatintentinputMgt/formatintentinputModule/FormatIntentInputActuationModule.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/formatintentinputMgt/formatintentinputModule/FormatIntentInputDecisionModule.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/intentBaseService/intentFunctionManageService/impl/IMFRegInfoServiceImpl.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/intentBaseService/intentModule/ActuationModule.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/intentBaseService/intentModule/DecisionModule.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/intentBaseService/intentProcessService/IntentDefinitionService.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/intentBaseService/intentProcessService/IntentDistributionService.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/intentBaseService/intentProcessService/IntentInvestigationService.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/intentBaseService/intentProcessService/IntentOperationService.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/intentBaseService/intentProcessService/IntentProcessService.java

index dfb0efe..11bc504 100644 (file)
@@ -17,7 +17,6 @@ package org.onap.usecaseui.intentanalysis.cllBusinessIntentMgt.cllBusinessModule
 
 
 import org.onap.usecaseui.intentanalysis.bean.models.Intent;
-import org.onap.usecaseui.intentanalysis.bean.models.IntentGoalBean;
 import org.onap.usecaseui.intentanalysis.intentBaseService.IntentManagementFunction;
 import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.ActuationModule;
 import org.onap.usecaseui.intentanalysis.intentBaseService.intentProcessService.IntentProcessService;
@@ -26,11 +25,6 @@ import org.onap.usecaseui.intentanalysis.service.IntentService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
 @Component
 public class CLLBusinessActuationModule extends ActuationModule {
     @Autowired
@@ -42,13 +36,13 @@ public class CLLBusinessActuationModule extends ActuationModule {
 
 
     @Override
-    public void sendToIntentHandler(Intent intent,IntentManagementFunction IntentHandler) {
+    public void toNextIntentHandler(Intent intent, IntentManagementFunction IntentHandler) {
         processService.setIntentRole(IntentHandler, null);
         processService.intentProcess(intent);
     }
 
     @Override
-    public void sendToNonIntentHandler() {
+    public void directOperation() {
 
     }
 
@@ -56,4 +50,9 @@ public class CLLBusinessActuationModule extends ActuationModule {
     public void interactWithIntentHandle() {
 
     }
+
+    @Override
+    public void fulfillIntent(Intent intent, IntentManagementFunction intentHandler) {
+        toNextIntentHandler(intent,intentHandler);
+    }
 }
index 6428742..83a8931 100644 (file)
@@ -32,10 +32,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationContext;
 import org.springframework.stereotype.Component;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Log4j2
@@ -131,9 +128,9 @@ public class CLLBusinessDecisionModule extends DecisionModule {
     }
 
     @Override
-    public List<Map<IntentGoalBean, IntentManagementFunction>> findHandler(IntentGoalBean intentGoalBean) {
+    public LinkedHashMap<IntentGoalBean, IntentManagementFunction> findHandler(IntentGoalBean intentGoalBean) {
         boolean needDecompostion = needDecompostion(intentGoalBean);
-        List<Map<IntentGoalBean, IntentManagementFunction>> intentMapList = new ArrayList<>();
+        LinkedHashMap<IntentGoalBean, IntentManagementFunction> intentMap = new LinkedHashMap<>();
         if (needDecompostion) {
             List<IntentGoalBean> subIntentGoalList = intentDecomposition(intentGoalBean);
             List<IntentGoalBean> sortList = intentOrchestration(subIntentGoalList);
@@ -141,14 +138,11 @@ public class CLLBusinessDecisionModule extends DecisionModule {
                 Map<IntentGoalBean, IntentManagementFunction> map = new HashMap<>();
                 IntentManagementFunction imf = exploreIntentHandlers(subIntentGoal);
                 map.put(subIntentGoal, imf);
-                intentMapList.add(map);
             }
         } else {
-            Map<IntentGoalBean, IntentManagementFunction> map = new HashMap<>();
-            map.put(intentGoalBean, exploreIntentHandlers(intentGoalBean));
-            intentMapList.add(map);
+            intentMap.put(intentGoalBean, exploreIntentHandlers(intentGoalBean));
         }
-        return intentMapList;
+        return intentMap;
     }
 
 }
index 3e489ae..7947edb 100644 (file)
  */
 package org.onap.usecaseui.intentanalysis.cllassuranceIntentmgt;
 
+import lombok.Data;
 import org.onap.usecaseui.intentanalysis.intentBaseService.IntentManagementFunction;
+import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.ActuationModule;
+import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.DecisionModule;
+import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.KnowledgeModule;
+import org.springframework.stereotype.Component;
 
+import javax.annotation.Resource;
+@Data
+@Component("CLLAssuranceIntentManagementFunction")
 public class CLLAssuranceIntentManagementFunction extends IntentManagementFunction {
+    @Resource(name = "CLLAssuranceActuationModule")
+    public void setActuationModule(ActuationModule actuationModule) {
+        this.actuationModule = actuationModule;
+    }
+
+    @Resource(name = "CLLAssuranceKnowledgeModule")
+    public void setKnowledgeModule(KnowledgeModule knowledgeModule) {
+        this.knowledgeModule = knowledgeModule;
+    }
+
+    @Resource(name = "CLLAssuranceDecisionModule")
+    public void setDecisionModule(DecisionModule decisionModule) {
+        this.decisionModule = decisionModule;
+    }
 }
index c061d76..325e980 100644 (file)
  */
 package org.onap.usecaseui.intentanalysis.cllassuranceIntentmgt.cllassurancemodule;
 
-public class CLLAssuranceActuationModule {
+import org.onap.usecaseui.intentanalysis.bean.models.Intent;
+import org.onap.usecaseui.intentanalysis.intentBaseService.IntentManagementFunction;
+import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.ActuationModule;
+import org.springframework.stereotype.Component;
+
+@Component
+public class CLLAssuranceActuationModule extends ActuationModule {
+    @Override
+    public void toNextIntentHandler(Intent intent, IntentManagementFunction IntentHandler) {
+
+    }
+
+    @Override
+    public void directOperation() {
+
+    }
+
+    @Override
+    public void interactWithIntentHandle() {
+
+    }
+
+    @Override
+    public void fulfillIntent(Intent intent, IntentManagementFunction intentHandler) {
+        directOperation();
+    }
 }
index 8a65b55..2054484 100644 (file)
  */
 package org.onap.usecaseui.intentanalysis.cllassuranceIntentmgt.cllassurancemodule;
 
-public class CLLAssuranceDecisionModule {
+import org.onap.usecaseui.intentanalysis.bean.models.IntentGoalBean;
+import org.onap.usecaseui.intentanalysis.intentBaseService.IntentManagementFunction;
+import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.DecisionModule;
+import org.springframework.stereotype.Component;
+
+import java.util.LinkedHashMap;
+@Component
+public class CLLAssuranceDecisionModule extends DecisionModule {
+    @Override
+    public void determineUltimateGoal() {
+
+    }
+
+    @Override
+    public IntentManagementFunction exploreIntentHandlers(IntentGoalBean intentGoalBean) {
+        return null;
+    }
+
+    @Override
+    public void intentDefinition() {
+
+    }
+
+    @Override
+    public void decideSuitableAction() {
+
+    }
+
+    @Override
+    public void interactWithTemplateDb() {
+
+    }
+
+    @Override
+    public LinkedHashMap<IntentGoalBean, IntentManagementFunction> findHandler(IntentGoalBean intentGoalBean) {
+        return null;
+    }
 }
index 75bffbd..c1300f0 100644 (file)
  */
 package org.onap.usecaseui.intentanalysis.cllassuranceIntentmgt.cllassurancemodule;
 
-public class CLLAssuranceKnowledgeModule {
+import org.onap.usecaseui.intentanalysis.bean.models.Intent;
+import org.onap.usecaseui.intentanalysis.bean.models.IntentGoalBean;
+import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.KnowledgeModule;
+import org.springframework.stereotype.Component;
+
+@Component
+public class CLLAssuranceKnowledgeModule extends KnowledgeModule {
+    @Override
+    public IntentGoalBean intentCognition(Intent intent) {
+        return null;
+    }
+
+    @Override
+    public boolean recieveCreateIntent() {
+        return false;
+    }
+
+    @Override
+    public boolean recieveUpdateIntent() {
+        return false;
+    }
+
+    @Override
+    public boolean recieveDeleteIntent() {
+        return false;
+    }
 }
diff --git a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/clldeliveryIntentmgt/CLLDeliveryIntentManagementFunction.java b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/clldeliveryIntentmgt/CLLDeliveryIntentManagementFunction.java
new file mode 100644 (file)
index 0000000..fe37f95
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2022 CMCC, Inc. and others. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onap.usecaseui.intentanalysis.clldeliveryIntentmgt;
+
+import lombok.Data;
+import org.onap.usecaseui.intentanalysis.intentBaseService.IntentManagementFunction;
+import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.ActuationModule;
+import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.DecisionModule;
+import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.KnowledgeModule;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+@Data
+@Component("CLLDeliveryIntentManagementFunction")
+public class CLLDeliveryIntentManagementFunction extends IntentManagementFunction {
+    @Resource(name = "CLLDeliveryActuationModule")
+    public void setActuationModule(ActuationModule actuationModule) {
+        this.actuationModule = actuationModule;
+    }
+
+    @Resource(name = "CLLDeliveryKnowledgeModule")
+    public void setKnowledgeModule(KnowledgeModule knowledgeModule) {
+        this.knowledgeModule = knowledgeModule;
+    }
+
+    @Resource(name = "CLLDeliveryDecisionModule")
+    public void setDecisionModule(DecisionModule decisionModule) {
+        this.decisionModule = decisionModule;
+    }
+}
diff --git a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/clldeliveryIntentmgt/CLLDeliveryManagementFunction.java b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/clldeliveryIntentmgt/CLLDeliveryManagementFunction.java
deleted file mode 100644 (file)
index 76b0cf5..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (C) 2022 CMCC, Inc. and others. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onap.usecaseui.intentanalysis.clldeliveryIntentmgt;
-
-import org.onap.usecaseui.intentanalysis.intentBaseService.IntentManagementFunction;
-
-public class CLLDeliveryManagementFunction extends IntentManagementFunction {
-}
index 65a2ca8..b111a9f 100644 (file)
  */
 package org.onap.usecaseui.intentanalysis.clldeliveryIntentmgt.clldeliverymodule;
 
-public class CLLDeliveryActuationModule {
+import org.onap.usecaseui.intentanalysis.bean.models.Intent;
+import org.onap.usecaseui.intentanalysis.intentBaseService.IntentManagementFunction;
+import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.ActuationModule;
+import org.springframework.stereotype.Component;
+
+@Component
+public class CLLDeliveryActuationModule extends ActuationModule {
+    @Override
+    public void toNextIntentHandler(Intent intent, IntentManagementFunction IntentHandler) {
+
+    }
+
+    @Override
+    public void directOperation() {
+
+    }
+
+    @Override
+    public void interactWithIntentHandle() {
+
+    }
+
+    @Override
+    public void fulfillIntent(Intent intent, IntentManagementFunction intentHandler) {
+        this.directOperation();
+    }
 }
index 42dea4f..e73aab4 100644 (file)
  */
 package org.onap.usecaseui.intentanalysis.clldeliveryIntentmgt.clldeliverymodule;
 
-public class CLLDeliveryDecisionModule {
+import org.onap.usecaseui.intentanalysis.bean.models.IntentGoalBean;
+import org.onap.usecaseui.intentanalysis.intentBaseService.IntentManagementFunction;
+import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.DecisionModule;
+import org.springframework.stereotype.Component;
+
+import java.util.LinkedHashMap;
+@Component
+public class CLLDeliveryDecisionModule extends DecisionModule {
+    @Override
+    public void determineUltimateGoal() {
+
+    }
+
+    @Override
+    public IntentManagementFunction exploreIntentHandlers(IntentGoalBean intentGoalBean) {
+        return null;
+    }
+
+    @Override
+    public void intentDefinition() {
+
+    }
+
+    @Override
+    public void decideSuitableAction() {
+
+    }
+
+    @Override
+    public void interactWithTemplateDb() {
+
+    }
+
+    @Override
+    public LinkedHashMap<IntentGoalBean, IntentManagementFunction> findHandler(IntentGoalBean intentGoalBean) {
+        return null;
+    }
 }
index c2f5278..1222d4d 100644 (file)
  */
 package org.onap.usecaseui.intentanalysis.clldeliveryIntentmgt.clldeliverymodule;
 
-public class CLLDeliveryKnowledgeModule {
+import org.onap.usecaseui.intentanalysis.bean.models.Intent;
+import org.onap.usecaseui.intentanalysis.bean.models.IntentGoalBean;
+import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.KnowledgeModule;
+import org.springframework.stereotype.Component;
+
+@Component
+public class CLLDeliveryKnowledgeModule extends KnowledgeModule {
+    @Override
+    public IntentGoalBean intentCognition(Intent intent) {
+        return null;
+    }
+
+    @Override
+    public boolean recieveCreateIntent() {
+        return false;
+    }
+
+    @Override
+    public boolean recieveUpdateIntent() {
+        return false;
+    }
+
+    @Override
+    public boolean recieveDeleteIntent() {
+        return false;
+    }
 }
index 8042d7f..1d397fd 100644 (file)
  */
 package org.onap.usecaseui.intentanalysis.formatintentinputMgt.formatintentinputModule;
 
+import lombok.extern.log4j.Log4j2;
 import org.onap.usecaseui.intentanalysis.bean.models.Intent;
 import org.onap.usecaseui.intentanalysis.intentBaseService.IntentManagementFunction;
 import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.ActuationModule;
 import org.onap.usecaseui.intentanalysis.intentBaseService.intentProcessService.IntentProcessService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+@Log4j2
 @Component
 public class FormatIntentInputActuationModule extends ActuationModule {
     @Autowired
     IntentProcessService processService;
     @Override
-    public void sendToIntentHandler(Intent intent, IntentManagementFunction IntentHandler) {
-        processService.setIntentRole(IntentHandler, null);
-        processService.intentProcess(intent);
+    public void toNextIntentHandler(Intent intent, IntentManagementFunction IntentHandler) {
+        log.info("do nothing");
     }
 
     @Override
-    public void sendToNonIntentHandler() {
+    public void directOperation() {
     }
 
     @Override
     public void interactWithIntentHandle() {
     }
+
+    @Override
+    public void fulfillIntent(Intent intent, IntentManagementFunction intentHandler) {
+    }
 }
index 4faa719..edb3814 100644 (file)
@@ -58,17 +58,15 @@ public class FormatIntentInputDecisionModule extends DecisionModule {
     }
 
     @Override
-    public List<Map<IntentGoalBean, IntentManagementFunction>> findHandler(IntentGoalBean intentGoalBean) {
-        List<Map<IntentGoalBean, IntentManagementFunction>> intentMapList = new ArrayList<>();
+    public LinkedHashMap<IntentGoalBean, IntentManagementFunction> findHandler(IntentGoalBean intentGoalBean) {
+        LinkedHashMap<IntentGoalBean, IntentManagementFunction> intentMap = new LinkedHashMap<>();
         boolean needDecompostion = needDecompostion(intentGoalBean);
         if (needDecompostion) {
             intentDecomposition(intentGoalBean);
         }else{
-            Map<IntentGoalBean, IntentManagementFunction> map = new HashMap<>();
-            map.put(intentGoalBean, exploreIntentHandlers(intentGoalBean));
-            intentMapList.add(map);
+            intentMap.put(intentGoalBean, exploreIntentHandlers(intentGoalBean));
         }
-        return intentMapList;
+        return intentMap;
     }
 
     public boolean needDecompostion(IntentGoalBean intentGoalBean) {
index cb21982..6d40996 100644 (file)
@@ -61,7 +61,7 @@ public class IMFRegInfoServiceImpl implements IMFRegInfoService {
                 (IntentManagementFunction)applicationContext.getBean(managetFunctionRegName);
 
         ActuationModule actuationModule = function.getActuationModule();
-        actuationModule.sendToNonIntentHandler();
+        actuationModule.directOperation();
         IntentManagementFunction intentManagementFunction =
                 (IntentManagementFunction) Class.forName(managetFunctionRegName)
                         .getDeclaredConstructor().newInstance();
index 6c7b4f7..ec60df2 100644 (file)
@@ -24,9 +24,7 @@ import org.onap.usecaseui.intentanalysis.intentBaseService.intentinterfaceservic
 import org.onap.usecaseui.intentanalysis.service.IntentService;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
 
 public abstract class ActuationModule {
     @Autowired
@@ -34,33 +32,31 @@ public abstract class ActuationModule {
     @Autowired
     IntentService intentService;
 
-    //actuationModel & knownledgeModel interact
-    public abstract void sendToIntentHandler(Intent intent, IntentManagementFunction IntentHandler);
+    //send to the next level intent handler
+    public abstract void toNextIntentHandler(Intent intent, IntentManagementFunction IntentHandler);
 
-    public abstract void sendToNonIntentHandler();//直接操作
+    //Direct operation
+    public abstract void directOperation();
 
     public abstract void interactWithIntentHandle();
 
     //Save intent information to the intent instance database
-    public void saveIntentToDb(Map<IntentGoalBean, IntentManagementFunction> intentMap) {
-        List<Intent> subIntentList = intentMap.keySet().stream().map(IntentGoalBean::getIntent)
-                .collect(Collectors.toList());
-        for (Intent subIntent : subIntentList) {
-            intentService.createIntent(subIntent);
-        }
+    public void saveIntentToDb(Intent intent) {
+            intentService.createIntent(intent);
     }
 
-    public boolean distrubuteIntentToHandler(Map<IntentGoalBean, IntentManagementFunction> intentMap) {
-        for (Map.Entry<IntentGoalBean, IntentManagementFunction> entry : intentMap.entrySet()) {
-            IntentGoalType intentGoalType = entry.getKey().getIntentGoalType();
-            if (StringUtils.equalsIgnoreCase("create", intentGoalType.name())) {
-                return intentInterfaceService.createInterface(entry.getKey().getIntent(), entry.getValue());
-            } else if (StringUtils.equalsIgnoreCase("update", intentGoalType.name())) {
-                return intentInterfaceService.updateInterface(entry.getKey().getIntent(), entry.getValue());
-            } else if (StringUtils.equalsIgnoreCase("delete", intentGoalType.name())) {
-                return intentInterfaceService.deleteInterface(entry.getKey().getIntent(), entry.getValue());
-            }
+    public boolean distrubuteIntentToHandler(Map.Entry<IntentGoalBean, IntentManagementFunction> entry) {
+        IntentGoalType intentGoalType = entry.getKey().getIntentGoalType();
+        if (StringUtils.equalsIgnoreCase("create", intentGoalType.name())) {
+            return intentInterfaceService.createInterface(entry.getKey().getIntent(), entry.getValue());
+        } else if (StringUtils.equalsIgnoreCase("update", intentGoalType.name())) {
+            return intentInterfaceService.updateInterface(entry.getKey().getIntent(), entry.getValue());
+        } else if (StringUtils.equalsIgnoreCase("delete", intentGoalType.name())) {
+            return intentInterfaceService.deleteInterface(entry.getKey().getIntent(), entry.getValue());
         }
         return false;
     }
+
+    //determine if the intent is to be processed directly or sent to the next-level processor
+    public abstract void fulfillIntent(Intent intent, IntentManagementFunction intentHandler);
 }
index a89656b..52dab8e 100644 (file)
@@ -19,8 +19,7 @@ package org.onap.usecaseui.intentanalysis.intentBaseService.intentModule;
 import org.onap.usecaseui.intentanalysis.bean.models.IntentGoalBean;
 import org.onap.usecaseui.intentanalysis.intentBaseService.IntentManagementFunction;
 
-import java.util.List;
-import java.util.Map;
+import java.util.LinkedHashMap;
 
 public abstract class DecisionModule {
     public abstract void determineUltimateGoal();
@@ -34,6 +33,6 @@ public abstract class DecisionModule {
 
     public abstract  void interactWithTemplateDb();
 
-    public abstract List<Map<IntentGoalBean, IntentManagementFunction>> findHandler(IntentGoalBean intentGoalBean);
 
+    public abstract LinkedHashMap<IntentGoalBean,IntentManagementFunction>  findHandler(IntentGoalBean intentGoalBean);
 }
index 01581c4..31119e1 100644 (file)
@@ -41,10 +41,10 @@ public class IntentDefinitionService {
         }
     }
 
-    public void definitionPorcess(Map<IntentGoalBean,IntentManagementFunction> intentMap) {
+    public void definitionPorcess(Map.Entry<IntentGoalBean, IntentManagementFunction> entry) {
         DecisionModule intentDecisionModule = intentOwner.getDecisionModule();
         ActuationModule intentActuationModule = intentOwner.getActuationModule();
         intentDecisionModule.intentDefinition();
-        intentActuationModule.saveIntentToDb(intentMap);//id  type
+        intentActuationModule.saveIntentToDb(entry.getKey().getIntent());//id  type
     }
 }
index 3a4e48e..83f9b00 100644 (file)
@@ -41,9 +41,9 @@ public class IntentDistributionService {
         }
     }
 
-    public boolean distributionProcess(Map<IntentGoalBean, IntentManagementFunction> intentMap) {
+    public boolean distributionProcess(Map.Entry<IntentGoalBean, IntentManagementFunction> entry) {
 
-        return intentOwner.getActuationModule().distrubuteIntentToHandler(intentMap);
+        return intentOwner.getActuationModule().distrubuteIntentToHandler(entry);
 
     }
 
index 36476b1..ac4612f 100644 (file)
@@ -21,10 +21,7 @@ import org.onap.usecaseui.intentanalysis.intentBaseService.IntentManagementFunct
 import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.DecisionModule;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Service
 public class IntentInvestigationService {
@@ -40,7 +37,7 @@ public class IntentInvestigationService {
         }
     }
 
-    public List<Map<IntentGoalBean,IntentManagementFunction>>  investigationProcess(IntentGoalBean intentGoalBean) {
+    public LinkedHashMap<IntentGoalBean,IntentManagementFunction>  investigationProcess(IntentGoalBean intentGoalBean) {
         DecisionModule intentDecisionModule = intentOwner.getDecisionModule();
        return intentDecisionModule.findHandler(intentGoalBean);
     }
index f26be6c..d2eb313 100644 (file)
@@ -28,24 +28,22 @@ public class IntentOperationService {
     private IntentManagementFunction intentHandler;
     private IntentManagementFunction intentOwner;
 
-    public void setIntentRole(IntentManagementFunction intentOwner, IntentManagementFunction intentHandler){
-        if (intentOwner!= null){
+    public void setIntentRole(IntentManagementFunction intentOwner, IntentManagementFunction intentHandler) {
+        if (intentOwner != null) {
             this.intentOwner = intentOwner;
         }
-        if (intentHandler!= null){
-            this.intentHandler= intentHandler;
+        if (intentHandler != null) {
+            this.intentHandler = intentHandler;
         }
     }
 
     public void operationProcess(Intent intent) {
         DecisionModule intentDecisionModule = intentOwner.getDecisionModule();
-        ActuationModule intentActuationModule = intentOwner.getActuationModule();
+        ActuationModule intentActuationModule = intentHandler.getActuationModule();
 
         //intentDecisionModule.interactWithTemplateDb();
         intentActuationModule.interactWithIntentHandle();
-
-        intentActuationModule.sendToIntentHandler(intent,intentHandler);
-
-        intentActuationModule.sendToNonIntentHandler();
+        //determine whether to operate directly or send to next intent handler
+        intentActuationModule.fulfillIntent(intent, intentHandler);
     }
 }
index df1c437..fc18bf7 100644 (file)
@@ -22,7 +22,8 @@ import org.onap.usecaseui.intentanalysis.service.IntentService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
 import java.util.Map;
 
 @Service
@@ -37,47 +38,44 @@ public class IntentProcessService {
     IntentDistributionService intentDistributionService;
     @Autowired
     IntentOperationService intentOperationService;
-@Autowired
+    @Autowired
     IntentService intentService;
     private IntentManagementFunction intentOwner;
     private IntentManagementFunction intentHandler;
 
 
-    public void setIntentRole(IntentManagementFunction intentOwner, IntentManagementFunction intentHandler){
-        if (intentOwner!= null){
+    public void setIntentRole(IntentManagementFunction intentOwner, IntentManagementFunction intentHandler) {
+        if (intentOwner != null) {
             this.intentOwner = intentOwner;
         }
-        if (intentHandler!= null){
-            this.intentHandler= intentHandler;
+        if (intentHandler != null) {
+            this.intentHandler = intentHandler;
         }
     }
+
     public void intentProcess(Intent intent) {
-        intentDetectionService.setIntentRole(intentOwner,intentHandler);
+        intentDetectionService.setIntentRole(intentOwner, intentHandler);
         IntentGoalBean intentGoalBean = intentDetectionService.detectionProcess(intent);
 
         //investigation process
-        intentInvestigationService.setIntentRole(intentOwner,intentHandler);
-        List<Map<IntentGoalBean,IntentManagementFunction>> intentListMap =
+        intentInvestigationService.setIntentRole(intentOwner, intentHandler);
+        LinkedHashMap<IntentGoalBean, IntentManagementFunction> intentMap =
                 intentInvestigationService.investigationProcess(intentGoalBean);
 
-
-        for (Map<IntentGoalBean,IntentManagementFunction> map : intentListMap) {
+        Iterator<Map.Entry<IntentGoalBean, IntentManagementFunction>> iterator = intentMap.entrySet().iterator();
+        while (iterator.hasNext()) {
+            Map.Entry<IntentGoalBean, IntentManagementFunction> next = iterator.next();
             //definition process  save subintent
-            intentDefinitionService.setIntentRole(intentOwner,intentHandler);
-            intentDefinitionService.definitionPorcess(map);
+            intentDefinitionService.setIntentRole(intentOwner, intentHandler);
+            intentDefinitionService.definitionPorcess(next);
 
             //distribution process
-            intentDistributionService.setIntentRole(intentOwner,intentHandler);
-            intentDistributionService.distributionProcess(map);
-
-            //operation process     enery entry only have one key-value
-            for (Map.Entry<IntentGoalBean, IntentManagementFunction> entry : map.entrySet()) {
-                intentOperationService.setIntentRole(intentOwner,entry.getValue());
-                intentOperationService.operationProcess(entry.getKey().getIntent());
-            }
+            intentDistributionService.setIntentRole(intentOwner, intentHandler);
+            intentDistributionService.distributionProcess(next);
 
+            intentOperationService.setIntentRole(intentOwner, next.getValue());
+            intentOperationService.operationProcess(next.getKey().getIntent());
         }
     }
 
-
 }