import java.io.Serializable;
import java.util.Date;
-
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
@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;
+ }
}
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;
*
*/
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;
+ }
}