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 / TcaDomainFilter.java
index a54b615..2e3a1f5 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.
 
 package org.onap.dcae.analytics.tca.core.util.function.calculation;
 
+import java.util.List;
 import java.util.Optional;
 
 import org.onap.dcae.analytics.model.cef.CommonEventHeader;
 import org.onap.dcae.analytics.model.cef.Domain;
 import org.onap.dcae.analytics.model.cef.Event;
 import org.onap.dcae.analytics.model.cef.EventListener;
+import org.onap.dcae.analytics.tca.model.policy.TcaPolicy;
 import org.onap.dcae.analytics.tca.core.service.TcaExecutionContext;
 import org.onap.dcae.analytics.tca.core.service.TcaProcessingContext;
 
@@ -54,19 +57,25 @@ public class TcaDomainFilter implements TcaCalculationFunction {
         }
 
         // Get Policy and CEF Message Domain
-        final String policyDomain = tcaExecutionContext.getTcaPolicy().getDomain();
+        final List<TcaPolicy> tcaPolList = tcaExecutionContext.getTcaPolicy();
         final String cefMessageDomain = domainOptional.get().name();
-
-        // Check Policy domain matches CEF message domain
-        if (!policyDomain.equalsIgnoreCase(cefMessageDomain)) {
-            final String earlyTerminationMessage = String.format(
-                    "Policy Domain does not match CEF Message Domain. Policy Domain: %s, CEF  Message Domain: %s",
-                    policyDomain, cefMessageDomain);
-            setTerminatingMessage(earlyTerminationMessage, tcaExecutionContext, false);
-            return tcaExecutionContext;
+         
+        for( TcaPolicy tcaPol : tcaPolList){   
+            String policyDomain = tcaPol.getDomain();
+            int size = tcaPolList.size();
+            int count = 0;
+            // Check Policy domain matches CEF message domain
+            if (!policyDomain.equalsIgnoreCase(cefMessageDomain)) {
+                count++;
+                if (count >= size){
+                    final String earlyTerminationMessage = String.format(
+                        "Policy Domain does not match CEF Message Domain. Policy Domain: %s, CEF  Message Domain: %s",
+                         policyDomain, cefMessageDomain);
+                    setTerminatingMessage(earlyTerminationMessage, tcaExecutionContext, false);
+                    return tcaExecutionContext;
+                 }
+            }
         }
-
-
         // Policy Domain and CEF Message Domain match successful
         // do nothing