Removed db-based statistics feature
[policy/models.git] / models-pdp / src / main / java / org / onap / policy / models / pdp / concepts / PdpStatus.java
index 5858b6a..c51c1b2 100644 (file)
@@ -1,7 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- *  Modifications Copyright (C) 2019 AT&T Intellectual Property.
+ *  Copyright (C) 2019-2021 Nordix Foundation.
+ *  Modifications Copyright (C) 2019, 2021 AT&T Intellectual Property.
+ *  Modifications Copyright (C) 2023 Bell Canada. 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.policy.models.pdp.concepts;
 
+import java.util.ArrayList;
 import java.util.List;
+import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
+import org.onap.policy.models.base.PfUtils;
 import org.onap.policy.models.pdp.enums.PdpHealthStatus;
 import org.onap.policy.models.pdp.enums.PdpMessageType;
 import org.onap.policy.models.pdp.enums.PdpState;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 
 /**
  * Class to represent the PDP_STATUS message that all the PDP's will send to PAP.
@@ -39,6 +42,7 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifi
 @Getter
 @Setter
 @ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
 public class PdpStatus extends PdpMessage {
 
     private String pdpType;
@@ -46,15 +50,13 @@ public class PdpStatus extends PdpMessage {
     private PdpHealthStatus healthy;
 
     /**
-     * Description of the PDP or the PDP type.  May be left {@code null}.
+     * Description of the PDP or the PDP type. May be left {@code null}.
      */
     private String description;
 
-    private List<ToscaPolicyTypeIdentifier> supportedPolicyTypes;
-    private List<ToscaPolicyIdentifier> policies;
+    private List<ToscaConceptIdentifier> policies;
     private String deploymentInstanceInfo;
     private String properties;
-    private PdpStatistics statistics;
     private PdpResponseDetails response;
 
     /**
@@ -64,4 +66,22 @@ public class PdpStatus extends PdpMessage {
     public PdpStatus() {
         super(PdpMessageType.PDP_STATUS);
     }
+
+    /**
+     * Constructs the object, making a deep copy.
+     *
+     * @param source source from which to copy
+     */
+    public PdpStatus(final PdpStatus source) {
+        super(source);
+
+        this.pdpType = source.pdpType;
+        this.state = source.state;
+        this.healthy = source.healthy;
+        this.description = source.description;
+        this.policies = PfUtils.mapList(source.policies, ToscaConceptIdentifier::new, new ArrayList<>(0));
+        this.deploymentInstanceInfo = source.deploymentInstanceInfo;
+        this.properties = source.properties;
+        this.response = (source.response == null ? null : new PdpResponseDetails(source.response));
+    }
 }