Add support for ABATED alerts within CDAP TCA
[dcaegen2/analytics/tca.git] / dcae-analytics-model / src / main / java / org / openecomp / dcae / apod / analytics / model / domain / policy / tca / MetricsPerEventName.java
@@ -27,24 +27,32 @@ import java.util.ArrayList;
 import java.util.List;
 
 /**
- * TCA Metrics that need to applied to each functional Role
+ * TCA Metrics that need to applied to each Event Name
  *
  * @author Rajiv Singla . Creation Date: 11/5/2016.
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-public class MetricsPerFunctionalRole extends BaseTCAPolicyModel{
+public class MetricsPerEventName extends BaseTCAPolicyModel{
 
 
     private static final long serialVersionUID = 1L;
 
     /**
-     * Functional Role to which TCA Policy needs to applied.
+     * Event Name to which TCA Policy needs to applied.
      *
-     * @param functionalRole New value for Functional Role to which TCA Policy needs to applied
-     * @return Functional Role to which TCA Policy needs to applied
+     * @param eventName New value for eventName to which TCA Policy needs to applied
+     * @return Event Name to which TCA Policy needs to applied
      */
-    private String functionalRole;
+    private String eventName;
+
+    /**
+     * Control Loop Schema Type
+     *
+     * @param controlLoopSchemaType New value for Control Loop Schema Type
+     * @return Control Loop Schema Type
+     */
+    private ControlLoopSchemaType controlLoopSchemaType;
 
     /**
      * Policy Scope
@@ -80,22 +88,27 @@ public class MetricsPerFunctionalRole extends BaseTCAPolicyModel{
 
 
     /**
-     * Creates a copy of given {@link MetricsPerFunctionalRole}
+     * Creates a deep copy of given {@link MetricsPerEventName}
      *
-     * @param metricsPerFunctionalRole metrics Per functional role that need to copied
+     * @param metricsPerEventName metrics Per Event Name that need to copied
      *
-     * @return copy of new metrics per function role with values copied from given metrics per functional role
+     * @return copy of new metrics per event Name with values copied from given metrics per Event Name
      */
-    public static MetricsPerFunctionalRole copy(final MetricsPerFunctionalRole metricsPerFunctionalRole) {
-        final MetricsPerFunctionalRole newMetricsPerFunctionalRole = new MetricsPerFunctionalRole();
-        newMetricsPerFunctionalRole.setFunctionalRole(metricsPerFunctionalRole.getFunctionalRole());
-        newMetricsPerFunctionalRole.setPolicyScope(metricsPerFunctionalRole.getPolicyScope());
-        newMetricsPerFunctionalRole.setPolicyName(metricsPerFunctionalRole.getPolicyName());
-        newMetricsPerFunctionalRole.setPolicyVersion(metricsPerFunctionalRole.getPolicyVersion());
-        if (metricsPerFunctionalRole.getThresholds() != null) {
-            newMetricsPerFunctionalRole.setThresholds(new ArrayList<>(metricsPerFunctionalRole.getThresholds()));
+    public static MetricsPerEventName copy(final MetricsPerEventName metricsPerEventName) {
+        final MetricsPerEventName newMetricsPerEventName = new MetricsPerEventName();
+        newMetricsPerEventName.setEventName(metricsPerEventName.getEventName());
+        newMetricsPerEventName.setControlLoopSchemaType(metricsPerEventName.getControlLoopSchemaType());
+        newMetricsPerEventName.setPolicyScope(metricsPerEventName.getPolicyScope());
+        newMetricsPerEventName.setPolicyName(metricsPerEventName.getPolicyName());
+        newMetricsPerEventName.setPolicyVersion(metricsPerEventName.getPolicyVersion());
+        if (metricsPerEventName.getThresholds() != null) {
+            List<Threshold> newThresholds = new ArrayList<>(metricsPerEventName.getThresholds().size());
+            for( Threshold threshold : metricsPerEventName.getThresholds()) {
+                newThresholds.add(Threshold.copy(threshold));
+            }
+            newMetricsPerEventName.setThresholds(newThresholds);
         }
-        return newMetricsPerFunctionalRole;
+        return newMetricsPerEventName;
     }