From: burdziak Date: Thu, 22 Mar 2018 12:20:25 +0000 (+0100) Subject: Fixes in RouterServiceUtil X-Git-Tag: v1.2.0~7^2 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=aai%2Fdata-router.git;a=commitdiff_plain;h=aa8813209e1de064eb2beb4dbabdea9a083d7f0c Fixes in RouterServiceUtil Change-Id: I4fba9bc38674d4ce82f360f2ea96752f4cca57dd Issue-ID: AAI-921 Signed-off-by: burdziak --- diff --git a/src/main/java/org/onap/aai/datarouter/util/RouterServiceUtil.java b/src/main/java/org/onap/aai/datarouter/util/RouterServiceUtil.java index d24a153..f2f5801 100644 --- a/src/main/java/org/onap/aai/datarouter/util/RouterServiceUtil.java +++ b/src/main/java/org/onap/aai/datarouter/util/RouterServiceUtil.java @@ -29,7 +29,6 @@ import org.json.JSONObject; import org.onap.aai.cl.mdc.MdcContext; import org.onap.aai.restclient.client.Headers; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; @@ -138,24 +137,8 @@ public class RouterServiceUtil { public static String recursivelyLookupJsonPayload(JsonNode node, String key) { String value = null; - if (node.isObject()) { - Iterator> nodeIterator = node.fields(); - - while (nodeIterator.hasNext()) { - Map.Entry entry = (Map.Entry) nodeIterator.next(); - if (!entry.getValue().isValueNode()) { - value = recursivelyLookupJsonPayload(entry.getValue(), key); - if (value != null) { - return value; - } - } - String name = entry.getKey(); - if (name.equalsIgnoreCase(key)) { - return entry.getValue().asText(); - } - } - } else if (node.isArray()) { + if (node.isArray()) { Iterator arrayItemsIterator = node.elements(); while (arrayItemsIterator.hasNext()) { value = recursivelyLookupJsonPayload(arrayItemsIterator.next(), key); @@ -163,43 +146,74 @@ public class RouterServiceUtil { return value; } } + + return value; + } + + if (!node.isObject()) { + return value; + } + + Iterator> nodeIterator = node.fields(); + + while (nodeIterator.hasNext()) { + Map.Entry entry = nodeIterator.next(); + if (!entry.getValue().isValueNode()) { + value = recursivelyLookupJsonPayload(entry.getValue(), key); + if (value != null) { + return value; + } + } + + String name = entry.getKey(); + if (name.equalsIgnoreCase(key)) { + return entry.getValue().asText(); + } } + return value; } public static void extractObjectsByKey(JsonNode node, String searchKey, Collection foundObjects) { - if (node.isObject()) { - Iterator> nodeIterator = node.fields(); + if (node.isArray()) { + Iterator arrayItemsIterator = node.elements(); + while (arrayItemsIterator.hasNext()) { + extractObjectsByKey(arrayItemsIterator.next(), searchKey, foundObjects); + } - while (nodeIterator.hasNext()) { - Map.Entry entry = (Map.Entry) nodeIterator.next(); - if (!entry.getValue().isValueNode()) { - extractObjectsByKey(entry.getValue(), searchKey, foundObjects); - } + return; + } + + if (!node.isObject()) { + return; + } - String name = entry.getKey(); - if (name.equalsIgnoreCase(searchKey)) { + Iterator> nodeIterator = node.fields(); - JsonNode entryValue = entry.getValue(); + while (nodeIterator.hasNext()) { + Map.Entry entry = nodeIterator.next(); + if (!entry.getValue().isValueNode()) { + extractObjectsByKey(entry.getValue(), searchKey, foundObjects); + } - if (entryValue.isArray()) { + String name = entry.getKey(); + if (!name.equalsIgnoreCase(searchKey)) { + continue; + } - Iterator arrayItemsIterator = entryValue.elements(); - while (arrayItemsIterator.hasNext()) { - foundObjects.add(arrayItemsIterator.next()); - } + JsonNode entryValue = entry.getValue(); - } else { - foundObjects.add(entry.getValue()); - } + if (entryValue.isArray()) { + + Iterator arrayItemsIterator = entryValue.elements(); + while (arrayItemsIterator.hasNext()) { + foundObjects.add(arrayItemsIterator.next()); } - } - } else if (node.isArray()) { - Iterator arrayItemsIterator = node.elements(); - while (arrayItemsIterator.hasNext()) { - extractObjectsByKey(arrayItemsIterator.next(), searchKey, foundObjects); + + } else { + foundObjects.add(entry.getValue()); } } } @@ -219,29 +233,25 @@ public class RouterServiceUtil { public static void extractFieldValuesFromObject(JsonNode node, Collection attributesToExtract, Collection fieldValues) { - if (node.isObject()) { - - JsonNode valueNode; + if (node==null || !node.isObject()) { + return; + } - for (String attrToExtract : attributesToExtract) { + JsonNode valueNode; - valueNode = node.get(attrToExtract); + for (String attrToExtract : attributesToExtract) { - if (valueNode != null) { + valueNode = node.get(attrToExtract); - if (valueNode.isValueNode()) { - fieldValues.add(valueNode.asText()); - } - } + if (valueNode != null && valueNode.isValueNode()) { + fieldValues.add(valueNode.asText()); } } } - public static String objToJson(Object obj) { JSONObject jsonObject = new JSONObject(obj); - String json = jsonObject.toString(); - return json; + return jsonObject.toString(); } /**