Redundant code removal and hadrcoded strings 39/13939/4
authorBharat saraswal <bharat.saraswal@huawei.com>
Wed, 20 Sep 2017 16:59:44 +0000 (22:29 +0530)
committerBharat saraswal <bharat.saraswal@huawei.com>
Thu, 21 Sep 2017 15:07:56 +0000 (15:07 +0000)
Issue-Id:POLICY-252
Change-Id: Ifeadfe6dfd0d428a0580c627eeca1fc19b58c856
Signed-off-by: Bharat saraswal <bharat.saraswal@huawei.com>
12 files changed:
ONAP-PAP-REST/src/test/java/org/onap/policy/pap/ia/DbAuditCompareEntriesTest.java
PolicyEngineUtils/src/main/java/org/onap/policy/api/LoadedPolicy.java
PolicyEngineUtils/src/main/java/org/onap/policy/api/NotificationHandler.java
PolicyEngineUtils/src/main/java/org/onap/policy/api/NotificationType.java
PolicyEngineUtils/src/main/java/org/onap/policy/api/PDPNotification.java
PolicyEngineUtils/src/main/java/org/onap/policy/api/RemovedPolicy.java
PolicyEngineUtils/src/main/java/org/onap/policy/api/UpdateType.java
PolicyEngineUtils/src/main/java/org/onap/policy/jpa/BackUpMonitorEntity.java
PolicyEngineUtils/src/main/java/org/onap/policy/std/NotificationStore.java
PolicyEngineUtils/src/main/java/org/onap/policy/std/StdPDPNotification.java
PolicyEngineUtils/src/main/java/org/onap/policy/utils/BackUpMonitor.java
PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/testBackUpMonitor.java

index f913c18..13255ba 100644 (file)
@@ -233,7 +233,7 @@ public class DbAuditCompareEntriesTest {
                 
                
                entry1.setFlag("flag1");
-               entry1.setResoruceNodeName("node1");
+               entry1.setResourceNodeName("node1");
                entry1.setResourceName("resourceName");
                entry1.setTimeStamp(new Date());
                
index 25636fb..862b654 100644 (file)
 package org.onap.policy.api;
 
 import java.util.Map;
+
 /**
  * <code>LoadedPolicy</code> defines the Policy that has been Loaded into the PDP. 
- * 
- * @version 0.2 
+ *
+ * @version 0.2
  */
 public interface LoadedPolicy {
-       /**
-        * Gets the <code>String</code> format of the Policy Name that has been Loaded into the PDP. 
-        * 
-        * @return <code>String</code> format of Policy Name
-        */
-       public String getPolicyName();
-       
-       /**
-        * Gets the <code>String</code> format of the Policy Version that has been Loaded into the PDP. 
-        * 
-        * @return <code>String</code> format of the Policy Version. 
-        */
-       public String getVersionNo();
-       
-       /**
-        * Gets the <code>Map</code> of <code>String,String</code> format of the Matches if the policy Loaded is of Config Type. 
-        * 
-        * @return the <code>Map</code> of <code>String,String</code> format of the matches in the policy. 
-        */
-       public Map<String, String> getMatches();
-       
-       /**
-        * Gets the <code>UpdateType</code> of {@link org.onap.policy.api.UpdateType} received.
-        * 
-        * @return <code>UpdateType</code> associated with this <code>PDPNotification</code>
-        */
-       public UpdateType getUpdateType();
+
+    /**
+     * Gets the <code>String</code> format of the Policy Name that has been Loaded into the PDP.
+     *
+     * @return <code>String</code> format of Policy Name
+     */
+    String getPolicyName();
+
+    /**
+     * Gets the <code>String</code> format of the Policy Version that has been Loaded into the PDP.
+     *
+     * @return <code>String</code> format of the Policy Version.
+     */
+    String getVersionNo();
+
+    /**
+     * Gets the <code>Map</code> of <code>String,String</code> format of the Matches if the policy Loaded is of Config Type.
+     *
+     * @return the <code>Map</code> of <code>String,String</code> format of the matches in the policy.
+     */
+    Map<String, String> getMatches();
+
+    /**
+     * Gets the <code>UpdateType</code> of {@link org.onap.policy.api.UpdateType} received.
+     *
+     * @return <code>UpdateType</code> associated with this <code>PDPNotification</code>
+     */
+    UpdateType getUpdateType();
 }
index 837eba9..78b79a0 100644 (file)
  */
 
 package org.onap.policy.api;
+
 /**
  * Defines the methods which need to run when an Event or Notification is received.
- *  
+ *
  * @version 0.1
  */
 @FunctionalInterface
 public interface NotificationHandler {
-       /**
-        * <code>notificationReceived</code> method will be triggered automatically whenever a Notification is received by the PEP.
-        * 
-        * @param notification <code>PDPNotification</code> of {@link org.onap.policy.api.PDPNotification} is the object that has information of the notification.
-        */
-       public void notificationReceived(PDPNotification notification);
+
+    /**
+     * <code>notificationReceived</code> method will be triggered automatically whenever a Notification is received by the PEP.
+     *
+     * @param notification <code>PDPNotification</code> of {@link org.onap.policy.api.PDPNotification}
+     * is the object that has information of the notification.
+     */
+    void notificationReceived(PDPNotification notification);
 }
index 730ad02..8b65a42 100644 (file)
@@ -23,36 +23,35 @@ package org.onap.policy.api;
 /**
  * Enumeration of the Update Type that has occurred in the <code>PDPNotification</code> of 
  * {@link org.onap.policy.api.PDPNotification}
- * 
+ *
  * @version 0.1
  */
 public enum NotificationType {
-       /**
-        * Indicates that a policy has been updated
-        */
-       UPDATE("update"),
-       /**
-        * Indicates that a policy has been removed
-        */
-       REMOVE("remove"),
-       /**
-        * Indicates that both update and removal of policy events has occurred.
-        */
-       BOTH("both")
-       ;
-       
-       private String name;
-       
-       private NotificationType(String name){
-               this.name = name;
-       }
-       
-       /**
-        * Returns the <code>String</code> format of the Type for this <code>UpdateType</code>
-        * @return the <code>String</code> Type of <code>UpdateType</code>
-        */
-       @Override
-       public String toString(){
-               return this.name;
-       }
+    /**
+     * Indicates that a policy has been updated
+     */
+    UPDATE("update"),
+    /**
+     * Indicates that a policy has been removed
+     */
+    REMOVE("remove"),
+    /**
+     * Indicates that both update and removal of policy events has occurred.
+     */
+    BOTH("both");
+
+    private String name;
+
+    NotificationType(String name) {
+        this.name = name;
+    }
+
+    /**
+     * Returns the <code>String</code> format of the Type for this <code>UpdateType</code>
+     * @return the <code>String</code> Type of <code>UpdateType</code>
+     */
+    @Override
+    public String toString() {
+        return this.name;
+    }
 }
index a88ec06..9ab5082 100644 (file)
@@ -24,29 +24,29 @@ import java.util.Collection;
 
 /**
  * Defines the <code>Notification</code> event sent from PDP to Client PEP.  
- * 
+ *
  * @version 0.2
  */
 public interface PDPNotification {
-       /**
-        * Gets the <code>Collection</code> of {@link org.onap.policy.api.RemovedPolicy} objects received. 
-        * 
-        * @return the <code>Collection</code> which consists of <code>RemovedPolicy</code> objects.
-        */
-       public Collection<RemovedPolicy> getRemovedPolicies();
-       
-       /**
-        * Gets the <code>Collection</code> of {@link org.onap.policy.api.LoadedPolicy} objects receieved.
-        *
-        * @return the <code>Collection</code> which consists of <code>UpdatedPolicy</code> objects.
-        */
-       public Collection<LoadedPolicy> getLoadedPolicies();
-       
-       /**
-        * Gets the <code>NotificationType</code> of {@link org.onap.policy.api.NotificationType} received.
-        * 
-        * @return <code>NotificationType</code> associated with this <code>PDPNotification</code>
-        */
-       public NotificationType getNotificationType();
-       
+
+    /**
+     * Gets the <code>Collection</code> of {@link org.onap.policy.api.RemovedPolicy} objects received.
+     *
+     * @return the <code>Collection</code> which consists of <code>RemovedPolicy</code> objects.
+     */
+    Collection<RemovedPolicy> getRemovedPolicies();
+
+    /**
+     * Gets the <code>Collection</code> of {@link org.onap.policy.api.LoadedPolicy} objects receieved.
+     *
+     * @return the <code>Collection</code> which consists of <code>UpdatedPolicy</code> objects.
+     */
+    Collection<LoadedPolicy> getLoadedPolicies();
+
+    /**
+     * Gets the <code>NotificationType</code> of {@link org.onap.policy.api.NotificationType} received.
+     *
+     * @return <code>NotificationType</code> associated with this <code>PDPNotification</code>
+     */
+    NotificationType getNotificationType();
 }
index f26c149..e8125a1 100644 (file)
  */
 
 package org.onap.policy.api;
+
 /**
  * <code>RemovedPolicy</code> defines the Policy that has been removed 
- * 
+ *
  * @version 0.1
  */
 public interface RemovedPolicy {
-       /**
-        * Gets the <code>String</code> format of the Policy Name that has been removed.
-        * 
-        * @return <code>String</code> format of Policy Name
-        */
-       public String getPolicyName();
-       
-       /**
-        * Gets the <code>String</code> format of the Policy Version that has been removed.
-        * 
-        * @return <code>String</code> format of Policy Version
-        */
-       public String getVersionNo();
+
+    /**
+     * Gets the <code>String</code> format of the Policy Name that has been removed.
+     *
+     * @return <code>String</code> format of Policy Name
+     */
+    String getPolicyName();
+
+    /**
+     * Gets the <code>String</code> format of the Policy Version that has been removed.
+     *
+     * @return <code>String</code> format of Policy Version
+     */
+    String getVersionNo();
 }
index deeecdd..7f401fe 100644 (file)
@@ -23,32 +23,31 @@ package org.onap.policy.api;
 /**
  * Enumeration of the Update Type that has occurred in the <code>UpdatedPolicy</code> of 
  * {@link org.onap.policy.api.LoadedPolicy}
- * 
+ *
  * @version 0.1
  */
 public enum UpdateType {
-       /**
-        * Indicates that a policy has been updated
-        */
-       UPDATE("update"),
-       /**
-        * Indicates that a policy is new
-        */
-       NEW("new")
-       ;
-       
-       private String name;
-       
-       private UpdateType(String name){
-               this.name = name;
-       }
-       
-       /**
-        * Returns the <code>String</code> format of the Type for this <code>UpdateType</code>
-        * @return the <code>String</code> Type of <code>UpdateType</code>
-        */
-       @Override
-       public String toString(){
-               return this.name;
-       }
+    /**
+     * Indicates that a policy has been updated
+     */
+    UPDATE("update"),
+    /**
+     * Indicates that a policy is new
+     */
+    NEW("new");
+
+    private String name;
+
+    UpdateType(String name) {
+        this.name = name;
+    }
+
+    /**
+     * Returns the <code>String</code> format of the Type for this <code>UpdateType</code>
+     * @return the <code>String</code> Type of <code>UpdateType</code>
+     */
+    @Override
+    public String toString() {
+        return this.name;
+    }
 }
index f2e7f3f..1bfffce 100644 (file)
@@ -22,7 +22,6 @@ package org.onap.policy.jpa;
 
 import java.io.Serializable;
 import java.util.Date;
-
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
@@ -38,80 +37,81 @@ import javax.persistence.TemporalType;
 
 
 @Entity
-@Table(name="BackUpMonitorEntity")
-@NamedQuery(name="BackUpMonitorEntity.findAll", query= "SELECT b FROM BackUpMonitorEntity b ")
-public class BackUpMonitorEntity implements Serializable{
-       private static final long serialVersionUID = -9190606334322230630L;
-       
-       @Id
-       @GeneratedValue(strategy = GenerationType.AUTO)
-       @Column(name="id")
-       private int id;
-       
-       @Column(name="node_name", nullable=false)
-       private String resourceNodeName;
-       
-       @Column(name="resource_name", nullable=false, unique=true)
-       private String resourceName;
-       
-       @Column(name="flag", nullable=false)
-       private String flag;
-       
-       @Lob
-       @Column(name="notification_record")
-       private String notificationRecord;
-       
-       @Temporal(TemporalType.TIMESTAMP)
-       @Column(name="last_seen")
-       private Date timeStamp;
-       
-       @PrePersist
-       public void prePersist(){
-               this.timeStamp = new Date();
-       }
-       
-       @PreUpdate
-       public void preUpdate(){
-               this.timeStamp = new Date();
-       }
-       
-       public String getResourceName(){
-               return this.resourceName;
-       }
-       
-       public String getResourceNodeName(){
-               return this.resourceNodeName;
-       }
-       
-       public String getFlag(){
-               return this.flag;
-       }
-       
-       public String getNotificationRecord(){
-               return this.notificationRecord;
-       }
-       
-       public Date getTimeStamp(){
-               return this.timeStamp;
-       }
-       
-       public void setResourceName(String resourceName){
-               this.resourceName = resourceName;
-       }
-       
-       public void setResoruceNodeName(String resourceNodeName){
-               this.resourceNodeName = resourceNodeName;
-       }
-       
-       public void setFlag(String flag){
-               this.flag = flag;
-       }
-       
-       public void setNotificationRecord(String notificationRecord){
-               this.notificationRecord = notificationRecord;
-       }
-       
-       public void setTimeStamp(Date timeStamp){
-               this.timeStamp = timeStamp;
-       }
+@Table(name = "BackUpMonitorEntity")
+@NamedQuery(name = "BackUpMonitorEntity.findAll", query = "SELECT b FROM BackUpMonitorEntity b ")
+public class BackUpMonitorEntity implements Serializable {
+
+    private static final long serialVersionUID = -9190606334322230630L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    @Column(name = "id")
+    private int id;
+
+    @Column(name = "node_name", nullable = false)
+    private String resourceNodeName;
+
+    @Column(name = "resource_name", nullable = false, unique = true)
+    private String resourceName;
+
+    @Column(name = "flag", nullable = false)
+    private String flag;
+
+    @Lob
+    @Column(name = "notification_record")
+    private String notificationRecord;
+
+    @Temporal(TemporalType.TIMESTAMP)
+    @Column(name = "last_seen")
+    private Date timeStamp;
+
+    @PrePersist
+    public void prePersist() {
+        this.timeStamp = new Date();
+    }
+
+    @PreUpdate
+    public void preUpdate() {
+        this.timeStamp = new Date();
+    }
+
+    public String getResourceName() {
+        return this.resourceName;
+    }
+
+    public String getResourceNodeName() {
+        return this.resourceNodeName;
+    }
+
+    public String getFlag() {
+        return this.flag;
+    }
+
+    public String getNotificationRecord() {
+        return this.notificationRecord;
+    }
+
+    public Date getTimeStamp() {
+        return this.timeStamp;
+    }
+
+    public void setResourceName(String resourceName) {
+        this.resourceName = resourceName;
+    }
+
+    public void setResourceNodeName(String resourceNodeName) {
+        this.resourceNodeName = resourceNodeName;
+    }
+
+    public void setFlag(String flag) {
+        this.flag = flag;
+    }
+
+    public void setNotificationRecord(String notificationRecord) {
+        this.notificationRecord = notificationRecord;
+    }
+
+    public void setTimeStamp(Date timeStamp) {
+        this.timeStamp = timeStamp;
+    }
 }
index 259a70d..8c6c958 100644 (file)
@@ -24,7 +24,6 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Iterator;
-
 import org.onap.policy.api.LoadedPolicy;
 import org.onap.policy.api.NotificationType;
 import org.onap.policy.api.PDPNotification;
@@ -38,229 +37,221 @@ import org.onap.policy.api.RemovedPolicy;
  * 
  */
 public class NotificationStore {
-       private static StdPDPNotification notificationRecord = new StdPDPNotification();
-       
-       public static StdPDPNotification getDeltaNotification(StdPDPNotification newNotification){
-               StdPDPNotification notificationDelta = new StdPDPNotification();
-               ArrayList<StdRemovedPolicy> removedDelta = new ArrayList<>();
-               ArrayList<StdLoadedPolicy> updatedDelta = new ArrayList<>();
-               Collection<StdLoadedPolicy> newUpdatedPolicies = new ArrayList<>();
-               Collection<StdRemovedPolicy> newRemovedPolicies = new ArrayList<>();
-               Collection<LoadedPolicy> oldUpdatedLostPolicies = notificationRecord.getLoadedPolicies();
-               Collection<RemovedPolicy> oldRemovedPolicies = notificationRecord.getRemovedPolicies();
-               Collection<LoadedPolicy> oldUpdatedPolicies = notificationRecord.getLoadedPolicies();
-               Boolean update = false;
-               Boolean remove = false;
-               // if the NotificationRecord is empty
-               if(notificationRecord.getRemovedPolicies()==null || notificationRecord.getLoadedPolicies()==null){
-                       if(newNotification!=null){
-                               notificationRecord = newNotification;
-                       }
-                       return notificationDelta;
-               }
-               // do the Delta operation. 
-               if(newNotification!=null){
-                       // check for old removed policies.
-                       if(!newNotification.getRemovedPolicies().isEmpty()){
-                               for(RemovedPolicy newRemovedPolicy: newNotification.getRemovedPolicies()){
-                                       //Look for policy Not in Remove
-                                       Boolean removed = true;
-                                       for(RemovedPolicy oldRemovedPolicy: notificationRecord.getRemovedPolicies()){
-                                               if(newRemovedPolicy.getPolicyName().equals(oldRemovedPolicy.getPolicyName())){
-                                                       if(newRemovedPolicy.getVersionNo().equals(oldRemovedPolicy.getVersionNo())){
-                                                               removed = false;
-                                                               // Don't want a duplicate. 
-                                                               oldRemovedPolicies.remove(oldRemovedPolicy);
-                                                       }
-                                               }
-                                       }
-                                       //We need to change our record we have an Update record of this remove.  
-                                       for(LoadedPolicy oldUpdatedPolicy: notificationRecord.getLoadedPolicies()){
-                                               if(newRemovedPolicy.getPolicyName().equals(oldUpdatedPolicy.getPolicyName())){
-                                                       if(newRemovedPolicy.getVersionNo().equals(oldUpdatedPolicy.getVersionNo())){
-                                                               oldUpdatedPolicies.remove(oldUpdatedPolicy);
-                                                               oldUpdatedLostPolicies.remove(oldUpdatedPolicy);
-                                                       }
-                                               }
-                                       }
-                                       if(removed){
-                                               remove = true;
-                                               notificationRecord.getRemovedPolicies().add(newRemovedPolicy);
-                                               removedDelta.add((StdRemovedPolicy)newRemovedPolicy);
-                                       }
-                                       // This will be converted to New Later. 
-                                       oldRemovedPolicies.add(newRemovedPolicy);
-                               }
-                       }
-                       // Check for old Updated Policies. 
-                       if(!newNotification.getLoadedPolicies().isEmpty()){
-                               for(LoadedPolicy newUpdatedPolicy: newNotification.getLoadedPolicies()){
-                                       // Look for policies which are not in Update
-                                       Boolean updated = true;
-                                       for(LoadedPolicy oldUpdatedPolicy: notificationRecord.getLoadedPolicies()){
-                                               if(newUpdatedPolicy.getPolicyName().equals(oldUpdatedPolicy.getPolicyName())){
-                                                       if(newUpdatedPolicy.getVersionNo().equals(oldUpdatedPolicy.getVersionNo())){
-                                                               updated = false;
-                                                               // Remove the policy from copy. 
-                                                               oldUpdatedLostPolicies.remove(oldUpdatedPolicy);
-                                                               // Eliminating Duplicate. 
-                                                               oldUpdatedPolicies.remove(oldUpdatedPolicy);
-                                                       }
-                                               }
-                                       }
-                                       // Change the record if the policy has been Removed earlier. 
-                                       for(RemovedPolicy oldRemovedPolicy: notificationRecord.getRemovedPolicies()){
-                                               if(oldRemovedPolicy.getPolicyName().equals(newUpdatedPolicy.getPolicyName())){
-                                                       if(oldRemovedPolicy.getVersionNo().equals(newUpdatedPolicy.getVersionNo())){
-                                                               oldRemovedPolicies.remove(oldRemovedPolicy);
-                                                       }
-                                               }
-                                       }
-                                       if(updated){
-                                               update = true;
-                                               updatedDelta.add((StdLoadedPolicy)newUpdatedPolicy);
-                                       }
-                                       // This will be converted to new Later
-                                       oldUpdatedPolicies.add(newUpdatedPolicy);
-                               }
-                               // Conversion of Update to Remove if that occurred.
-                               if(!oldUpdatedLostPolicies.isEmpty()){
-                                       for(LoadedPolicy updatedPolicy: oldUpdatedLostPolicies){
-                                               StdRemovedPolicy removedPolicy = new StdRemovedPolicy();
-                                               removedPolicy.setPolicyName(updatedPolicy.getPolicyName());
-                                               removedPolicy.setVersionNo(updatedPolicy.getVersionNo());
-                                               removedDelta.add(removedPolicy);
-                                               remove = true;
-                                       }
-                               }
-                       }
-                       // Update our Record. 
-                       if(!oldUpdatedPolicies.isEmpty()){
-                               for(LoadedPolicy updatedPolicy: oldUpdatedPolicies){
-                                       newUpdatedPolicies.add((StdLoadedPolicy)updatedPolicy);
-                               }
-                       }
-                       if(!oldRemovedPolicies.isEmpty()){
-                               for(RemovedPolicy removedPolicy: oldRemovedPolicies){
-                                       newRemovedPolicies.add((StdRemovedPolicy)removedPolicy);
-                               }
-                       }
-                       notificationRecord.setRemovedPolicies(newRemovedPolicies);
-                       notificationRecord.setLoadedPolicies(newUpdatedPolicies);
-                       // Update the notification Result. 
-                       notificationDelta.setRemovedPolicies(removedDelta);
-                       notificationDelta.setLoadedPolicies(updatedDelta);
-                       if(remove&&update){
-                               notificationDelta.setNotificationType(NotificationType.BOTH);
-                       }else if(remove){
-                               notificationDelta.setNotificationType(NotificationType.REMOVE);
-                       }else if(update){
-                               notificationDelta.setNotificationType(NotificationType.UPDATE);
-                       }
-               }
-               return notificationDelta;
-       }
-       
-       public static void recordNotification(StdPDPNotification notification){
-               if(notification!=null){
-                       if(notificationRecord.getRemovedPolicies()==null || notificationRecord.getLoadedPolicies()==null){
-                               notificationRecord = notification;
-                       }else{
-                               // Check if there is anything new and update the record. 
-                               if(notificationRecord.getLoadedPolicies()!=null || notificationRecord.getRemovedPolicies()!=null){
-                                       HashSet<StdRemovedPolicy> removedPolicies = new HashSet<>();
-                                       for(RemovedPolicy rPolicy: notificationRecord.getRemovedPolicies()){
-                                               StdRemovedPolicy sRPolicy = new StdRemovedPolicy();
-                                               sRPolicy.setPolicyName(rPolicy.getPolicyName());
-                                               sRPolicy.setVersionNo(rPolicy.getVersionNo());
-                                               removedPolicies.add(sRPolicy);
-                                       }
-                                       HashSet<StdLoadedPolicy> updatedPolicies = new HashSet<>();
-                                       for(LoadedPolicy uPolicy: notificationRecord.getLoadedPolicies()){
-                                               StdLoadedPolicy sUPolicy = new StdLoadedPolicy();
-                                               sUPolicy.setMatches(uPolicy.getMatches());
-                                               sUPolicy.setPolicyName(uPolicy.getPolicyName());
-                                               sUPolicy.setVersionNo(uPolicy.getVersionNo());
-                                               sUPolicy.setUpdateType(uPolicy.getUpdateType());
-                                               updatedPolicies.add(sUPolicy);
-                                       }
-                                       
-                                       // Checking with the new updated policies.
-                                       if(notification.getLoadedPolicies()!=null && !notification.getLoadedPolicies().isEmpty()){
-                                               for(LoadedPolicy newUpdatedPolicy: notification.getLoadedPolicies()){
-                                                       // If it was removed earlier then we need to remove from our record
-                                                       Iterator<StdRemovedPolicy> oldRemovedPolicy = removedPolicies.iterator();
-                                                       while(oldRemovedPolicy.hasNext()){
-                                                               RemovedPolicy policy = oldRemovedPolicy.next(); 
-                                                               if(newUpdatedPolicy.getPolicyName().equals(policy.getPolicyName())) {
-                                                                       if(newUpdatedPolicy.getVersionNo().equals(policy.getVersionNo())) {
-                                                                               oldRemovedPolicy.remove();
-                                                                       }
-                                                               }
-                                                       }
-                                                       // If it was previously updated need to Overwrite it to the record. 
-                                                       Iterator<StdLoadedPolicy> oldUpdatedPolicy = updatedPolicies.iterator();
-                                                       while(oldUpdatedPolicy.hasNext()){
-                                                               LoadedPolicy policy = oldUpdatedPolicy.next();
-                                                               if(newUpdatedPolicy.getPolicyName().equals(policy.getPolicyName())) {
-                                                                       if(newUpdatedPolicy.getVersionNo().equals(policy.getVersionNo())) {
-                                                                               oldUpdatedPolicy.remove();
-                                                                       }
-                                                               }
-                                                       }
-                                                       StdLoadedPolicy sUPolicy = new StdLoadedPolicy();
-                                                       sUPolicy.setMatches(newUpdatedPolicy.getMatches());
-                                                       sUPolicy.setPolicyName(newUpdatedPolicy.getPolicyName());
-                                                       sUPolicy.setVersionNo(newUpdatedPolicy.getVersionNo());
-                                                       sUPolicy.setUpdateType(newUpdatedPolicy.getUpdateType());
-                                                       updatedPolicies.add(sUPolicy);
-                                               }
-                                       }
-                                       // Checking with New Removed Policies.
-                                       if(notification.getRemovedPolicies()!=null && !notification.getRemovedPolicies().isEmpty()){
-                                               for(RemovedPolicy newRemovedPolicy : notification.getRemovedPolicies()){
-                                                       // If it was previously removed Overwrite it to the record. 
-                                                       Iterator<StdRemovedPolicy> oldRemovedPolicy = removedPolicies.iterator();
-                                                       while(oldRemovedPolicy.hasNext()){
-                                                               RemovedPolicy policy = oldRemovedPolicy.next(); 
-                                                               if(newRemovedPolicy.getPolicyName().equals(policy.getPolicyName())) {
-                                                                       if(newRemovedPolicy.getVersionNo().equals(policy.getVersionNo())) {
-                                                                               oldRemovedPolicy.remove();
-                                                                       }
-                                                               }
-                                                       }
-                                                       // If it was added earlier then we need to remove from our record. 
-                                                       Iterator<StdLoadedPolicy> oldUpdatedPolicy = updatedPolicies.iterator();
-                                                       while(oldUpdatedPolicy.hasNext()){
-                                                               LoadedPolicy policy = oldUpdatedPolicy.next();
-                                                               if(newRemovedPolicy.getPolicyName().equals(policy.getPolicyName())) {
-                                                                       if(newRemovedPolicy.getVersionNo().equals(policy.getVersionNo())) {
-                                                                               oldUpdatedPolicy.remove();
-                                                                       }
-                                                               }
-                                                       }
-                                                       StdRemovedPolicy sRPolicy = new StdRemovedPolicy();
-                                                       sRPolicy.setPolicyName(newRemovedPolicy.getPolicyName());
-                                                       sRPolicy.setVersionNo(newRemovedPolicy.getVersionNo());
-                                                       removedPolicies.add(sRPolicy);
-                                               }
-                                       }
-                                       notificationRecord.setRemovedPolicies(removedPolicies);
-                                       notificationRecord.setLoadedPolicies(updatedPolicies);
-                               }
-                               if(!notificationRecord.getLoadedPolicies().isEmpty() && !notificationRecord.getRemovedPolicies().isEmpty()){
-                                       notificationRecord.setNotificationType(NotificationType.BOTH);
-                               }else if(!notificationRecord.getLoadedPolicies().isEmpty()){
-                                       notificationRecord.setNotificationType(NotificationType.UPDATE);
-                               }else if(!notificationRecord.getRemovedPolicies().isEmpty()){
-                                       notificationRecord.setNotificationType(NotificationType.REMOVE);
-                               }
-                       }
-               }
-       }
-       
-       // This should return the current Notification Record. 
-       public static PDPNotification getNotificationRecord(){
-               return notificationRecord;
-       }
+
+    private static StdPDPNotification notificationRecord = new StdPDPNotification();
+
+    public static StdPDPNotification getDeltaNotification(StdPDPNotification newNotification) {
+        StdPDPNotification notificationDelta = new StdPDPNotification();
+        ArrayList<StdRemovedPolicy> removedDelta = new ArrayList<>();
+        ArrayList<StdLoadedPolicy> updatedDelta = new ArrayList<>();
+        Collection<StdLoadedPolicy> newUpdatedPolicies = new ArrayList<>();
+        Collection<StdRemovedPolicy> newRemovedPolicies = new ArrayList<>();
+        Collection<LoadedPolicy> oldUpdatedLostPolicies = notificationRecord.getLoadedPolicies();
+        Collection<RemovedPolicy> oldRemovedPolicies = notificationRecord.getRemovedPolicies();
+        Collection<LoadedPolicy> oldUpdatedPolicies = notificationRecord.getLoadedPolicies();
+        Boolean update = false;
+        Boolean remove = false;
+        // if the NotificationRecord is empty
+        if (notificationRecord.getRemovedPolicies() == null || notificationRecord.getLoadedPolicies() == null) {
+            if (newNotification != null) {
+                notificationRecord = newNotification;
+            }
+            return notificationDelta;
+        }
+        // do the Delta operation.
+        if (newNotification != null) {
+            // check for old removed policies.
+            if (!newNotification.getRemovedPolicies().isEmpty()) {
+                for (RemovedPolicy newRemovedPolicy : newNotification.getRemovedPolicies()) {
+                    //Look for policy Not in Remove
+                    Boolean removed = true;
+                    String policyName = newRemovedPolicy.getPolicyName();
+                    String ver = newRemovedPolicy.getVersionNo();
+                    for (RemovedPolicy oldRemovedPolicy : notificationRecord.getRemovedPolicies()) {
+                        if (policyName.equals(oldRemovedPolicy.getPolicyName())
+                            && ver.equals(oldRemovedPolicy.getVersionNo())) {
+                            removed = false;
+                            // Don't want a duplicate.
+                            oldRemovedPolicies.remove(oldRemovedPolicy);
+                        }
+                    }
+                    //We need to change our record we have an Update record of this remove.
+                    for (LoadedPolicy oldUpdatedPolicy : notificationRecord.getLoadedPolicies()) {
+                        if (policyName.equals(oldUpdatedPolicy.getPolicyName())
+                            && ver.equals(oldUpdatedPolicy.getVersionNo())) {
+                            oldUpdatedPolicies.remove(oldUpdatedPolicy);
+                            oldUpdatedLostPolicies.remove(oldUpdatedPolicy);
+                        }
+                    }
+                    if (removed) {
+                        remove = true;
+                        notificationRecord.getRemovedPolicies().add(newRemovedPolicy);
+                        removedDelta.add((StdRemovedPolicy) newRemovedPolicy);
+                    }
+                    // This will be converted to New Later.
+                    oldRemovedPolicies.add(newRemovedPolicy);
+                }
+            }
+            // Check for old Updated Policies.
+            if (!newNotification.getLoadedPolicies().isEmpty()) {
+                for (LoadedPolicy newUpdatedPolicy : newNotification.getLoadedPolicies()) {
+                    // Look for policies which are not in Update
+                    Boolean updated = true;
+                    String policyName = newUpdatedPolicy.getPolicyName();
+                    String ver = newUpdatedPolicy.getVersionNo();
+                    for (LoadedPolicy oldUpdatedPolicy : notificationRecord.getLoadedPolicies()) {
+                        if (policyName.equals(oldUpdatedPolicy.getPolicyName())
+                            && ver.equals(oldUpdatedPolicy.getVersionNo())) {
+                            updated = false;
+                            // Remove the policy from copy.
+                            oldUpdatedLostPolicies.remove(oldUpdatedPolicy);
+                            // Eliminating Duplicate.
+                            oldUpdatedPolicies.remove(oldUpdatedPolicy);
+                        }
+                    }
+                    // Change the record if the policy has been Removed earlier.
+                    for (RemovedPolicy oldRemovedPolicy : notificationRecord.getRemovedPolicies()) {
+                        if (oldRemovedPolicy.getPolicyName().equals(policyName)
+                            && oldRemovedPolicy.getVersionNo().equals(ver)) {
+                            oldRemovedPolicies.remove(oldRemovedPolicy);
+                        }
+                    }
+                    if (updated) {
+                        update = true;
+                        updatedDelta.add((StdLoadedPolicy) newUpdatedPolicy);
+                    }
+                    // This will be converted to new Later
+                    oldUpdatedPolicies.add(newUpdatedPolicy);
+                }
+                // Conversion of Update to Remove if that occurred.
+                if (!oldUpdatedLostPolicies.isEmpty()) {
+                    for (LoadedPolicy updatedPolicy : oldUpdatedLostPolicies) {
+                        StdRemovedPolicy removedPolicy = new StdRemovedPolicy();
+                        removedPolicy.setPolicyName(updatedPolicy.getPolicyName());
+                        removedPolicy.setVersionNo(updatedPolicy.getVersionNo());
+                        removedDelta.add(removedPolicy);
+                        remove = true;
+                    }
+                }
+            }
+            // Update our Record.
+            if (!oldUpdatedPolicies.isEmpty()) {
+                for (LoadedPolicy updatedPolicy : oldUpdatedPolicies) {
+                    newUpdatedPolicies.add((StdLoadedPolicy) updatedPolicy);
+                }
+            }
+            if (!oldRemovedPolicies.isEmpty()) {
+                for (RemovedPolicy removedPolicy : oldRemovedPolicies) {
+                    newRemovedPolicies.add((StdRemovedPolicy) removedPolicy);
+                }
+            }
+            notificationRecord.setRemovedPolicies(newRemovedPolicies);
+            notificationRecord.setLoadedPolicies(newUpdatedPolicies);
+            // Update the notification Result.
+            notificationDelta.setRemovedPolicies(removedDelta);
+            notificationDelta.setLoadedPolicies(updatedDelta);
+            if (remove && update) {
+                notificationDelta.setNotificationType(NotificationType.BOTH);
+            } else if (remove) {
+                notificationDelta.setNotificationType(NotificationType.REMOVE);
+            } else if (update) {
+                notificationDelta.setNotificationType(NotificationType.UPDATE);
+            }
+        }
+        return notificationDelta;
+    }
+
+    public static void recordNotification(StdPDPNotification notification) {
+        if (notification != null) {
+            if (notificationRecord.getRemovedPolicies() == null || notificationRecord.getLoadedPolicies() == null) {
+                notificationRecord = notification;
+            } else {
+                // Check if there is anything new and update the record.
+                if (notificationRecord.getLoadedPolicies() != null || notificationRecord.getRemovedPolicies() != null) {
+                    HashSet<StdRemovedPolicy> removedPolicies = new HashSet<>();
+                    for (RemovedPolicy rPolicy : notificationRecord.getRemovedPolicies()) {
+                        StdRemovedPolicy sRPolicy = new StdRemovedPolicy();
+                        sRPolicy.setPolicyName(rPolicy.getPolicyName());
+                        sRPolicy.setVersionNo(rPolicy.getVersionNo());
+                        removedPolicies.add(sRPolicy);
+                    }
+                    HashSet<StdLoadedPolicy> updatedPolicies = new HashSet<>();
+                    for (LoadedPolicy uPolicy : notificationRecord.getLoadedPolicies()) {
+                        StdLoadedPolicy sUPolicy = new StdLoadedPolicy();
+                        sUPolicy.setMatches(uPolicy.getMatches());
+                        sUPolicy.setPolicyName(uPolicy.getPolicyName());
+                        sUPolicy.setVersionNo(uPolicy.getVersionNo());
+                        sUPolicy.setUpdateType(uPolicy.getUpdateType());
+                        updatedPolicies.add(sUPolicy);
+                    }
+
+                    // Checking with the new updated policies.
+                    if (notification.getLoadedPolicies() != null && !notification.getLoadedPolicies().isEmpty()) {
+                        for (LoadedPolicy newUpdatedPolicy : notification.getLoadedPolicies()) {
+                            // If it was removed earlier then we need to remove from our record
+                            Iterator<StdRemovedPolicy> oldRemovedPolicy = removedPolicies.iterator();
+                            String policyName = newUpdatedPolicy.getPolicyName();
+                            String ver = newUpdatedPolicy.getVersionNo();
+                            while (oldRemovedPolicy.hasNext()) {
+                                RemovedPolicy policy = oldRemovedPolicy.next();
+                                if (policyName.equals(policy.getPolicyName())
+                                    && ver.equals(policy.getVersionNo())) {
+                                    oldRemovedPolicy.remove();
+                                }
+                            }
+                            // If it was previously updated need to Overwrite it to the record.
+                            updatedPolicies.removeIf(policy -> policyName.equals(policy.getPolicyName())
+                                && ver.equals(policy.getVersionNo()));
+
+                            StdLoadedPolicy sUPolicy = new StdLoadedPolicy();
+                            sUPolicy.setMatches(newUpdatedPolicy.getMatches());
+                            sUPolicy.setPolicyName(newUpdatedPolicy.getPolicyName());
+                            sUPolicy.setVersionNo(newUpdatedPolicy.getVersionNo());
+                            sUPolicy.setUpdateType(newUpdatedPolicy.getUpdateType());
+                            updatedPolicies.add(sUPolicy);
+                        }
+                    }
+                    // Checking with New Removed Policies.
+                    if (notification.getRemovedPolicies() != null && !notification.getRemovedPolicies().isEmpty()) {
+                        for (RemovedPolicy newRemovedPolicy : notification.getRemovedPolicies()) {
+                            // If it was previously removed Overwrite it to the record.
+                            Iterator<StdRemovedPolicy> oldRemovedPolicy = removedPolicies.iterator();
+                            String policyName = newRemovedPolicy.getPolicyName();
+                            String ver = newRemovedPolicy.getVersionNo();
+                            while (oldRemovedPolicy.hasNext()) {
+                                RemovedPolicy policy = oldRemovedPolicy.next();
+                                if (policyName.equals(policy.getPolicyName())
+                                    && ver.equals(policy.getVersionNo())) {
+                                    oldRemovedPolicy.remove();
+                                }
+                            }
+                            // If it was added earlier then we need to remove from our record.
+                            updatedPolicies.removeIf(policy -> policyName.equals(policy.getPolicyName())
+                                && ver.equals(policy.getVersionNo()));
+
+                            StdRemovedPolicy sRPolicy = new StdRemovedPolicy();
+                            sRPolicy.setPolicyName(policyName);
+                            sRPolicy.setVersionNo(ver);
+                            removedPolicies.add(sRPolicy);
+                        }
+                    }
+                    notificationRecord.setRemovedPolicies(removedPolicies);
+                    notificationRecord.setLoadedPolicies(updatedPolicies);
+                }
+                if (!notificationRecord.getLoadedPolicies().isEmpty() && !notificationRecord.getRemovedPolicies()
+                    .isEmpty()) {
+                    notificationRecord.setNotificationType(NotificationType.BOTH);
+                } else if (!notificationRecord.getLoadedPolicies().isEmpty()) {
+                    notificationRecord.setNotificationType(NotificationType.UPDATE);
+                } else if (!notificationRecord.getRemovedPolicies().isEmpty()) {
+                    notificationRecord.setNotificationType(NotificationType.REMOVE);
+                }
+            }
+        }
+    }
+
+    // This should return the current Notification Record.
+    public static PDPNotification getNotificationRecord() {
+        return notificationRecord;
+    }
 }
index fe78071..1640fe8 100644 (file)
@@ -22,59 +22,53 @@ package org.onap.policy.std;
 
 import java.util.Collection;
 import java.util.HashSet;
-
 import org.onap.policy.api.LoadedPolicy;
 import org.onap.policy.api.NotificationType;
 import org.onap.policy.api.PDPNotification;
 import org.onap.policy.api.RemovedPolicy;
 
-public class StdPDPNotification implements PDPNotification{
-       private Collection<StdRemovedPolicy> removedPolicies = null;
-       private Collection<StdLoadedPolicy> loadedPolicies = null;
-       private Collection<RemovedPolicy> removed = null;
-       private Collection<LoadedPolicy> updated = null;
-       private NotificationType notificationType= null;
-       
-       @Override
-       public Collection<RemovedPolicy> getRemovedPolicies() {
-               removed = new HashSet<RemovedPolicy>();
-               if(removedPolicies!=null){
-                       for(RemovedPolicy removedPolicy: removedPolicies){
-                               removed.add(removedPolicy);
-                       }
-                       return this.removed;
-               }else{
-                       return null;
-               }
-       }
+public class StdPDPNotification implements PDPNotification {
+
+    private Collection<StdRemovedPolicy> removedPolicies = null;
+    private Collection<StdLoadedPolicy> loadedPolicies = null;
+    private Collection<RemovedPolicy> removed = null;
+    private Collection<LoadedPolicy> updated = null;
+    private NotificationType notificationType = null;
+
+    @Override
+    public Collection<RemovedPolicy> getRemovedPolicies() {
+        removed = new HashSet<>();
+        if (removedPolicies != null) {
+            removed.addAll(removedPolicies);
+            return this.removed;
+        }
+        return null;
+    }
+
+    @Override
+    public Collection<LoadedPolicy> getLoadedPolicies() {
+        updated = new HashSet<>();
+        if (loadedPolicies != null) {
+            updated.addAll(loadedPolicies);
+            return updated;
+        }
+        return null;
+    }
+
+    @Override
+    public NotificationType getNotificationType() {
+        return notificationType;
+    }
 
-       @Override
-       public Collection<LoadedPolicy> getLoadedPolicies() {
-               updated = new HashSet<LoadedPolicy>();
-               if(loadedPolicies!=null){
-                       for(LoadedPolicy updatedPolicy: loadedPolicies){
-                               updated.add(updatedPolicy);
-                       }
-                       return updated;
-               }else{
-                       return null;
-               }
-       }
+    public void setNotificationType(NotificationType notificationType) {
+        this.notificationType = notificationType;
+    }
 
-       @Override
-       public NotificationType getNotificationType() {
-               return notificationType;
-       }
+    public void setLoadedPolicies(Collection<StdLoadedPolicy> loadedPolicies) {
+        this.loadedPolicies = loadedPolicies;
+    }
 
-       public void setNotificationType(NotificationType notificationType){
-               this.notificationType= notificationType;
-       }
-       
-       public void setLoadedPolicies(Collection<StdLoadedPolicy> loadedPolicies) {
-               this.loadedPolicies = loadedPolicies;
-       }
-       
-       public void setRemovedPolicies(Collection<StdRemovedPolicy> removedPolicies) {
-               this.removedPolicies = removedPolicies;
-       }
+    public void setRemovedPolicies(Collection<StdRemovedPolicy> removedPolicies) {
+        this.removedPolicies = removedPolicies;
+    }
 }
index 3cdb515..9aab2ad 100644 (file)
@@ -248,7 +248,7 @@ public class BackUpMonitor {
                 // This is New. create an entry as Master.
                 LOGGER.info("Adding resource " + resourceName + " to Database");
                 BackUpMonitorEntity bMEntity = new BackUpMonitorEntity();
-                bMEntity.setResoruceNodeName(resourceNodeName);
+                bMEntity.setResourceNodeName(resourceNodeName);
                 bMEntity.setResourceName(resourceName);
                 bMEntity = setMaster(bMEntity);
                 bMEntity.setTimeStamp(new Date());
@@ -297,7 +297,7 @@ public class BackUpMonitor {
                 } else {
                     // Resource name is null -> No resource with same name.
                     selfEntity = new BackUpMonitorEntity();
-                    selfEntity.setResoruceNodeName(resourceNodeName);
+                    selfEntity.setResourceNodeName(resourceNodeName);
                     selfEntity.setResourceName(resourceName);
                     selfEntity.setTimeStamp(new Date());
                     selfEntity = setSlave(selfEntity);
index afc3d0d..5b3bbdf 100644 (file)
@@ -252,7 +252,7 @@ public class testBackUpMonitor {
            origBM.setFlag("SLAVE");
            origBM.setTimeStamp(new Date());
            BackUpMonitorEntity bMEntity = new BackUpMonitorEntity();
-        bMEntity.setResoruceNodeName(ResourceNode.BRMS.toString());
+        bMEntity.setResourceNodeName(ResourceNode.BRMS.toString());
         bMEntity.setResourceName("brms_test2");
         bMEntity.setFlag("MASTER");
         bMEntity.setTimeStamp(new Date());