Use DOM API for ORAN Devicemanager
[ccsdk/features.git] / sdnr / wt / devicemanager-o-ran-sc / o-ran / ru-fh / provider / src / main / java / org / onap / ccsdk / features / sdnr / wt / devicemanager / oran / impl / dom / DOMNotificationToXPath.java
index 64fb9b8..abe89df 100644 (file)
@@ -21,6 +21,7 @@
  */
 package org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.dom;
 
+import com.google.common.base.VerifyException;
 import java.time.Instant;
 import java.util.Collection;
 import java.util.HashMap;
@@ -43,193 +44,191 @@ import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.VerifyException;
-
 public class DOMNotificationToXPath {
-       private static final Logger LOG = LoggerFactory.getLogger(DOMNotificationToXPath.class);
-
-       public HashMap<String, String> convertDomNotifToXPath(@NonNull DOMNotification domNotification) {
-               @NonNull
-               ContainerNode notifContainer = domNotification.getBody();
-               HashMap<String, String> xPathData = new HashMap<String, String>();
-
-               Collection<DataContainerChild> data = notifContainer.body();
-               for (DataContainerChild data1 : data) {
-                       String namePath = "";
-                       recurseDOMData(notifContainer, data1, notifContainer, xPathData, namePath);
-               }
-               LOG.debug("XPath Data = {}", xPathData);
-               return xPathData;
-
-       }
-
-       private void recurseDOMData(@NonNull ContainerNode notifContainer, DataContainerChild domData, DataContainerNode cn,
-                       HashMap<String, String> result, String namePath) {
-               PathArgument pa1 = domData.getIdentifier();
-               namePath += "/" + pa1.getNodeType().getLocalName();
-               if (domData.getClass().getSimpleName().equals("ImmutableContainerNode")) {
-                       try {
-                               ContainerNode cn1 = (ContainerNode) cn.getChildByArg(pa1);
-                               for (DataContainerChild data1 : cn1.body()) {
-                                       recurseDOMData(notifContainer, data1, cn1, result, namePath);
-                               }
-                       } catch (VerifyException ve) {
-                               LOG.debug("{} does not exist", pa1);
-                       }
-               }
-
-               if (domData.getClass().getSimpleName().equals("ImmutableChoiceNode")) {
-                       try {
-                               ChoiceNode cn1 = (ChoiceNode) cn.getChildByArg(pa1);
-                               for (DataContainerChild data1 : cn1.body()) {
-                                       // recurseChoiceData(data1, cn1, namePath);
-                                       recurseDOMData(notifContainer, data1, cn1, result, namePath);
-                               }
-                       } catch (VerifyException ve) {
-                               LOG.debug("{} does not exist", pa1);
-                       }
-               }
-
-               if (domData.getClass().getSimpleName().equals("ImmutableUnkeyedListNode")) {
-                       try {
-                               UnkeyedListNode cn1 = (UnkeyedListNode) cn.getChildByArg(pa1);
-                               for (UnkeyedListEntryNode data1 : cn1.body()) {
-                                       recurseUnkeyedListEntryNodeData(data1, cn1, result, namePath);
-                               }
-                       } catch (VerifyException ve) {
-                               LOG.debug("{} does not exist", pa1);
-                       }
-               }
-
-               if (domData.getClass().getSimpleName().equals("ImmutableMapNode")) {
-                       try {
-                               MapNode cn1 = (MapNode) cn.getChildByArg(pa1);
-                               for (MapEntryNode data1 : cn1.body()) {
-                                       recurseMapEntryNodeData(notifContainer, data1, cn1, result, namePath);
-                               }
-                       } catch (VerifyException ve) {
-                               LOG.debug("{} does not exist", pa1);
-                       }
-               }
-
-               if (domData.getClass().getSimpleName().equals("ImmutableLeafSetNode")) {
-                       try {
-                               LeafSetNode<?> cn1 = (LeafSetNode<?>) cn.getChildByArg(pa1);
-                               for (LeafSetEntryNode<?> data1 : cn1.body()) {
-                                       recurseLeafSetEntryNodeData(data1, cn1, result, namePath);
-                               }
-                       } catch (VerifyException ve) {
-                               LOG.debug("{} does not exist", pa1);
-                       }
-               }
-
-               if (domData.getClass().getSimpleName().equals("ImmutableLeafNode")) {
-                       recurseLeafNode(domData, result, namePath);
-               }
-       }
-
-       private void recurseLeafSetEntryNodeData(LeafSetEntryNode<?> data, LeafSetNode<?> cn1,
-                       HashMap<String, String> result, String namePath) {
-               PathArgument pa1 = data.getIdentifier();
-               namePath += "/" + pa1.getNodeType().getLocalName();
-
-               if (data.getClass().getSimpleName().equals("ImmutableLeafSetEntryNode")) {
-                       LOG.debug("{}={}", namePath, data.body());
-                       result.put(namePath, data.body().toString());
-               }
-       }
-
-       private void recurseMapEntryNodeData(@NonNull ContainerNode notifContainer, MapEntryNode data, MapNode cn1,
-                       HashMap<String, String> result, String namePath) {
-               PathArgument pa1 = data.getIdentifier();
-               NodeIdentifierWithPredicates ni = data.getIdentifier();
-
-               for (QName qn : ni.keySet()) {
-                       namePath += "/" + ni.getValue(qn);
-               }
-
-               if (data.getClass().getSimpleName().equals("ImmutableMapEntryNode")) {
-                       for (DataContainerChild data1 : data.body()) {
-                               if (data1.getClass().getSimpleName().equals("ImmutableLeafSetNode")) {
-                                       try {
-                                               LeafSetNode<?> cn2 = (LeafSetNode<?>) data.getChildByArg(data1.getIdentifier());
-                                               for (LeafSetEntryNode<?> data2 : cn2.body()) {
-                                                       recurseLeafSetEntryNodeData(data2, cn2, result, namePath);
-                                               }
-                                       } catch (VerifyException ve) {
-                                               LOG.debug("{} does not exist", data1.getIdentifier());
-                                       }
-                               } else {
-                                       recurseLeafNode(data1, result, namePath);
-                               }
-                       }
-               }
-
-               if (data.getClass().getSimpleName().equals("ImmutableLeafSetNode")) {
-                       try {
-                               LeafSetNode<?> cn2 = (LeafSetNode<?>) notifContainer.getChildByArg(pa1);
-                               for (LeafSetEntryNode<?> data1 : cn2.body()) {
-                                       recurseLeafSetEntryNodeData(data1, cn2, result, namePath);
-                               }
-                       } catch (VerifyException ve) {
-                               LOG.debug("{} does not exist", pa1);
-                       }
-               }
-
-               if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) {
-                       LOG.debug("{}={}", namePath, data.body());
-                       result.put(namePath, data.body().toString());
-               }
-       }
-
-       private void recurseUnkeyedListEntryNodeData(UnkeyedListEntryNode data, UnkeyedListNode cn1,
-                       HashMap<String, String> result, String namePath) {
-               PathArgument pa1 = data.getIdentifier();
-               namePath += "/" + pa1.getNodeType().getLocalName();
-
-               if (data.getClass().getSimpleName().equals("ImmutableUnkeyedListEntryNode")) {
-                       for (DataContainerChild data1 : data.body()) {
-                               recurseLeafNode(data1, result, namePath);
-                       }
-               }
-
-               if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) {
-                       LOG.debug("{}={}", namePath, data.body());
-                       result.put(namePath, data.body().toString());
-               }
-       }
-
-       public void recurseLeafNode(DataContainerChild data, HashMap<String, String> result, String namePath) {
-               PathArgument pa1 = data.getIdentifier();
-               if (!(data.getClass().getSimpleName().equals("ImmutableAugmentationNode")))
-                       namePath += "/" + pa1.getNodeType().getLocalName();
-               if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) {
-                       LOG.debug("{}={}", namePath, data.body());
-                       result.put(namePath, data.body().toString());
-               }
-       }
-
-       public void recurseChoiceData(HashMap<String, String> result, DataContainerChild data, ChoiceNode cn,
-                       String namePath) {
-               PathArgument pa1 = data.getIdentifier();
-               namePath += "/" + pa1.getNodeType().getLocalName();
-               // NodeIdentifier nodeId = new NodeIdentifier(pa1.getNodeType());
-               if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) {
-                       LOG.debug("{}={}", namePath, data.body());
-                       result.put(namePath, data.body().toString());
-               }
-       }
-
-       public Instant getTime(@NonNull DOMNotification domNotification) {
-               @NonNull
-               Instant eventTime;
-               if (domNotification instanceof DOMEvent) {
-                       eventTime = ((DOMEvent) domNotification).getEventInstant();
-                       LOG.info("Event time {}", eventTime);
-               } else {
-                       eventTime = Instant.now();
-                       LOG.info("Defaulting to actual time of processing the notification - {}", eventTime);
-               }
-               return eventTime;
-       }
+    private static final Logger LOG = LoggerFactory.getLogger(DOMNotificationToXPath.class);
+
+    public HashMap<String, String> convertDomNotifToXPath(@NonNull DOMNotification domNotification) {
+        @NonNull
+        ContainerNode notifContainer = domNotification.getBody();
+        HashMap<String, String> xPathData = new HashMap<String, String>();
+
+        Collection<DataContainerChild> data = notifContainer.body();
+        for (DataContainerChild data1 : data) {
+            String namePath = "";
+            recurseDOMData(notifContainer, data1, notifContainer, xPathData, namePath);
+        }
+        LOG.debug("XPath Data = {}", xPathData);
+        return xPathData;
+
+    }
+
+    private void recurseDOMData(@NonNull ContainerNode notifContainer, DataContainerChild domData, DataContainerNode cn,
+            HashMap<String, String> result, String namePath) {
+        PathArgument pa1 = domData.getIdentifier();
+        namePath += "/" + pa1.getNodeType().getLocalName();
+        if (domData.getClass().getSimpleName().equals("ImmutableContainerNode")) {
+            try {
+                ContainerNode cn1 = (ContainerNode) cn.getChildByArg(pa1);
+                for (DataContainerChild data1 : cn1.body()) {
+                    recurseDOMData(notifContainer, data1, cn1, result, namePath);
+                }
+            } catch (VerifyException ve) {
+                LOG.debug("{} does not exist", pa1);
+            }
+        }
+
+        if (domData.getClass().getSimpleName().equals("ImmutableChoiceNode")) {
+            try {
+                ChoiceNode cn1 = (ChoiceNode) cn.getChildByArg(pa1);
+                for (DataContainerChild data1 : cn1.body()) {
+                    // recurseChoiceData(data1, cn1, namePath);
+                    recurseDOMData(notifContainer, data1, cn1, result, namePath);
+                }
+            } catch (VerifyException ve) {
+                LOG.debug("{} does not exist", pa1);
+            }
+        }
+
+        if (domData.getClass().getSimpleName().equals("ImmutableUnkeyedListNode")) {
+            try {
+                UnkeyedListNode cn1 = (UnkeyedListNode) cn.getChildByArg(pa1);
+                for (UnkeyedListEntryNode data1 : cn1.body()) {
+                    recurseUnkeyedListEntryNodeData(data1, cn1, result, namePath);
+                }
+            } catch (VerifyException ve) {
+                LOG.debug("{} does not exist", pa1);
+            }
+        }
+
+        if (domData.getClass().getSimpleName().equals("ImmutableMapNode")) {
+            try {
+                MapNode cn1 = (MapNode) cn.getChildByArg(pa1);
+                for (MapEntryNode data1 : cn1.body()) {
+                    recurseMapEntryNodeData(notifContainer, data1, cn1, result, namePath);
+                }
+            } catch (VerifyException ve) {
+                LOG.debug("{} does not exist", pa1);
+            }
+        }
+
+        if (domData.getClass().getSimpleName().equals("ImmutableLeafSetNode")) {
+            try {
+                LeafSetNode<?> cn1 = (LeafSetNode<?>) cn.getChildByArg(pa1);
+                for (LeafSetEntryNode<?> data1 : cn1.body()) {
+                    recurseLeafSetEntryNodeData(data1, cn1, result, namePath);
+                }
+            } catch (VerifyException ve) {
+                LOG.debug("{} does not exist", pa1);
+            }
+        }
+
+        if (domData.getClass().getSimpleName().equals("ImmutableLeafNode")) {
+            recurseLeafNode(domData, result, namePath);
+        }
+    }
+
+    private void recurseLeafSetEntryNodeData(LeafSetEntryNode<?> data, LeafSetNode<?> cn1,
+            HashMap<String, String> result, String namePath) {
+        PathArgument pa1 = data.getIdentifier();
+        namePath += "/" + pa1.getNodeType().getLocalName();
+
+        if (data.getClass().getSimpleName().equals("ImmutableLeafSetEntryNode")) {
+            LOG.debug("{}={}", namePath, data.body());
+            result.put(namePath, data.body().toString());
+        }
+    }
+
+    private void recurseMapEntryNodeData(@NonNull ContainerNode notifContainer, MapEntryNode data, MapNode cn1,
+            HashMap<String, String> result, String namePath) {
+        PathArgument pa1 = data.getIdentifier();
+        NodeIdentifierWithPredicates ni = data.getIdentifier();
+
+        for (QName qn : ni.keySet()) {
+            namePath += "/" + ni.getValue(qn);
+        }
+
+        if (data.getClass().getSimpleName().equals("ImmutableMapEntryNode")) {
+            for (DataContainerChild data1 : data.body()) {
+                if (data1.getClass().getSimpleName().equals("ImmutableLeafSetNode")) {
+                    try {
+                        LeafSetNode<?> cn2 = (LeafSetNode<?>) data.getChildByArg(data1.getIdentifier());
+                        for (LeafSetEntryNode<?> data2 : cn2.body()) {
+                            recurseLeafSetEntryNodeData(data2, cn2, result, namePath);
+                        }
+                    } catch (VerifyException ve) {
+                        LOG.debug("{} does not exist", data1.getIdentifier());
+                    }
+                } else {
+                    recurseLeafNode(data1, result, namePath);
+                }
+            }
+        }
+
+        if (data.getClass().getSimpleName().equals("ImmutableLeafSetNode")) {
+            try {
+                LeafSetNode<?> cn2 = (LeafSetNode<?>) notifContainer.getChildByArg(pa1);
+                for (LeafSetEntryNode<?> data1 : cn2.body()) {
+                    recurseLeafSetEntryNodeData(data1, cn2, result, namePath);
+                }
+            } catch (VerifyException ve) {
+                LOG.debug("{} does not exist", pa1);
+            }
+        }
+
+        if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) {
+            LOG.debug("{}={}", namePath, data.body());
+            result.put(namePath, data.body().toString());
+        }
+    }
+
+    private void recurseUnkeyedListEntryNodeData(UnkeyedListEntryNode data, UnkeyedListNode cn1,
+            HashMap<String, String> result, String namePath) {
+        PathArgument pa1 = data.getIdentifier();
+        namePath += "/" + pa1.getNodeType().getLocalName();
+
+        if (data.getClass().getSimpleName().equals("ImmutableUnkeyedListEntryNode")) {
+            for (DataContainerChild data1 : data.body()) {
+                recurseLeafNode(data1, result, namePath);
+            }
+        }
+
+        if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) {
+            LOG.debug("{}={}", namePath, data.body());
+            result.put(namePath, data.body().toString());
+        }
+    }
+
+    public void recurseLeafNode(DataContainerChild data, HashMap<String, String> result, String namePath) {
+        PathArgument pa1 = data.getIdentifier();
+        if (!(data.getClass().getSimpleName().equals("ImmutableAugmentationNode")))
+            namePath += "/" + pa1.getNodeType().getLocalName();
+        if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) {
+            LOG.debug("{}={}", namePath, data.body());
+            result.put(namePath, data.body().toString());
+        }
+    }
+
+    public void recurseChoiceData(HashMap<String, String> result, DataContainerChild data, ChoiceNode cn,
+            String namePath) {
+        PathArgument pa1 = data.getIdentifier();
+        namePath += "/" + pa1.getNodeType().getLocalName();
+        // NodeIdentifier nodeId = new NodeIdentifier(pa1.getNodeType());
+        if (data.getClass().getSimpleName().equals("ImmutableLeafNode")) {
+            LOG.debug("{}={}", namePath, data.body());
+            result.put(namePath, data.body().toString());
+        }
+    }
+
+    public Instant getTime(@NonNull DOMNotification domNotification) {
+        @NonNull
+        Instant eventTime;
+        if (domNotification instanceof DOMEvent) {
+            eventTime = ((DOMEvent) domNotification).getEventInstant();
+            LOG.info("Event time {}", eventTime);
+        } else {
+            eventTime = Instant.now();
+            LOG.info("Defaulting to actual time of processing the notification - {}", eventTime);
+        }
+        return eventTime;
+    }
 }