Support 7.2.1 VES in TCAGEN2
[dcaegen2/analytics/tca-gen2.git] / dcae-analytics / dcae-analytics-tca-core / src / main / java / org / onap / dcae / analytics / tca / core / util / function / calculation / TcaEventNameFilter.java
index 574e9ba..e5f501e 100644 (file)
@@ -1,6 +1,7 @@
 /*
- * ================================================================================
+ * ==========LICENSE_START=========================================================
  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (c) 2022 Wipro Limited Intellectual Property. 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.
@@ -21,6 +22,7 @@ package org.onap.dcae.analytics.tca.core.util.function.calculation;
 
 import java.util.Optional;
 import java.util.Set;
+import java.util.List;
 import java.util.stream.Collectors;
 
 import org.onap.dcae.analytics.model.cef.CommonEventHeader;
@@ -56,17 +58,23 @@ public class TcaEventNameFilter implements TcaCalculationFunction {
 
         // Get CEF Message Event name and Event names in tca policy
         final String cefMessageEventName = eventNameOptional.get();
-        final TcaPolicy tcaPolicy = tcaExecutionContext.getTcaPolicy();
-        final Set<String> policyEventNames = tcaPolicy.getMetricsPerEventName().stream()
+        final List<TcaPolicy> tcaPolList = tcaExecutionContext.getTcaPolicy();
+        int count = 0;
+        int size = tcaPolList.size();
+        for( TcaPolicy tcaPol : tcaPolList){
+            final Set<String> policyEventNames = tcaPol.getMetricsPerEventName().stream()
                 .map(MetricsPerEventName::getEventName).collect(Collectors.toSet());
-
-        // Check CEF Message Event name matches any Policy Event names
-        if (!policyEventNames.contains(cefMessageEventName)) {
-            final String earlyTerminationMessage = String.format(
-                    "CEF Message Event name does not match any Policy Event Names. " +
+            // Check CEF Message Event name matches any Policy Event names
+            if (!policyEventNames.contains(cefMessageEventName)) {
+                    count++;
+                    if(count >= size) {
+                         final String earlyTerminationMessage = String.format(
+                            "CEF Message Event name does not match any Policy Event Names. " +
                             "Message EventName: %s, Policy Event Names: %s", cefMessageEventName, policyEventNames);
-            setTerminatingMessage(earlyTerminationMessage, tcaExecutionContext, false);
-            return tcaExecutionContext;
+                         setTerminatingMessage(earlyTerminationMessage, tcaExecutionContext, false);
+                         return tcaExecutionContext;
+                    }
+            }      
         }
 
         // CEF Messages one of the the Policy Event names