diff options
Diffstat (limited to 'intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/intentBaseService/IntentManagementFunction.java')
-rw-r--r-- | intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/intentBaseService/IntentManagementFunction.java | 57 |
1 files changed, 56 insertions, 1 deletions
diff --git a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/intentBaseService/IntentManagementFunction.java b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/intentBaseService/IntentManagementFunction.java index 7c01c81..65f40cb 100644 --- a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/intentBaseService/IntentManagementFunction.java +++ b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/intentBaseService/IntentManagementFunction.java @@ -15,8 +15,12 @@ */ package org.onap.usecaseui.intentanalysis.intentBaseService; - import lombok.Data; +import lombok.extern.log4j.Log4j2; +import org.onap.usecaseui.intentanalysis.bean.enums.ExpectationType; +import org.onap.usecaseui.intentanalysis.bean.models.Condition; +import org.onap.usecaseui.intentanalysis.bean.models.Expectation; +import org.onap.usecaseui.intentanalysis.bean.models.ExpectationTarget; import org.onap.usecaseui.intentanalysis.bean.models.FulfillmentInfo; import org.onap.usecaseui.intentanalysis.bean.models.Intent; import org.onap.usecaseui.intentanalysis.bean.models.IntentGoalBean; @@ -24,11 +28,22 @@ import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.Actuatio import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.DecisionModule; import org.onap.usecaseui.intentanalysis.intentBaseService.intentModule.KnowledgeModule; import org.onap.usecaseui.intentanalysis.service.FulfillmentInfoService; +import org.onap.usecaseui.intentanalysis.service.IntentReportService; import org.onap.usecaseui.intentanalysis.service.ObjectInstanceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import javax.annotation.Resource; +import java.util.List; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import static org.onap.usecaseui.intentanalysis.bean.enums.IntentGoalType.CREATE; + +@Log4j2 @Data @Configuration @Component @@ -43,6 +58,12 @@ public class IntentManagementFunction { @Autowired private ObjectInstanceService objectInstanceService; + @Autowired + private IntentReportService intentReportService; + + @Resource(name = "intentReportExecutor") + private ScheduledThreadPoolExecutor scheduledThreadPoolExecutor; + public void receiveIntentAsOwner(IntentGoalBean intentGoalBean){}; public void receiveIntentAsHandler(Intent originalIntent, IntentGoalBean intentGoalBean, IntentManagementFunction handler){}; public void createReport(String intentId, FulfillmentInfo fulfillmentInfo){}; @@ -52,4 +73,38 @@ public class IntentManagementFunction { fulfillmentInfoService.saveFulfillmentInfo(intentId, fulfillmentInfo); objectInstanceService.saveObjectInstances(intentId, fulfillmentInfo); } + + protected void generationIntentReport(IntentGoalBean intentGoalBean) { + if (CREATE != intentGoalBean.getIntentGoalType()) { + return; + } + Intent intent = intentGoalBean.getIntent(); + List<Expectation> intentExpectations = intent.getIntentExpectations(); + List<Expectation> report = intentExpectations.stream() + .filter(expectation -> ExpectationType.REPORT.equals(expectation.getExpectationType())) + .collect(Collectors.toList()); + if (CollectionUtils.isEmpty(report)) { + log.info("No expectation of type report is entered"); + return; + } + List<ExpectationTarget> expectationTargets = report.get(0).getExpectationTargets(); + if (CollectionUtils.isEmpty(expectationTargets)) { + log.error("The expectation target is empty,expectationId is {}", report.get(0).getExpectationId()); + return; + } + ExpectationTarget expectationTarget = expectationTargets.get(0); + List<Condition> targetConditions = expectationTarget.getTargetConditions(); + if (CollectionUtils.isEmpty(targetConditions)) { + log.error("The target condition is empty,expectationId is {}", report.get(0).getExpectationId()); + return; + } + Condition condition = targetConditions.get(0); + try { + int conditionValue = Integer.parseInt(condition.getConditionValue()); + log.info("Start executing scheduled intent report generation task "); + scheduledThreadPoolExecutor.scheduleAtFixedRate(() -> intentReportService.saveIntentReportByIntentId(intent.getIntentId()), 2, conditionValue, TimeUnit.SECONDS); + } catch (Exception e) { + log.error("The exception is {}", e.getMessage()); + } + } } |