X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fdatarouter%2Futil%2FRouterServiceUtil.java;h=f2f5801305c7f9ec065cf65a5776f7f66ea9bb2d;hb=aa8813209e1de064eb2beb4dbabdea9a083d7f0c;hp=ae0efee0a9d183b96aafceb8664c59b83a9692e8;hpb=2a5ff133471c5a69b0dfd760d2743f48112da9a0;p=aai%2Fdata-router.git 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 ae0efee..f2f5801 100644 --- a/src/main/java/org/onap/aai/datarouter/util/RouterServiceUtil.java +++ b/src/main/java/org/onap/aai/datarouter/util/RouterServiceUtil.java @@ -2,8 +2,8 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017 Amdocs + * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-2018 Amdocs * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,8 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.onap.aai.datarouter.util; @@ -31,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; @@ -140,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); @@ -165,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); + } + + return; + } + + if (!node.isObject()) { + return; + } - while (nodeIterator.hasNext()) { - Map.Entry entry = (Map.Entry) nodeIterator.next(); - if (!entry.getValue().isValueNode()) { - extractObjectsByKey(entry.getValue(), searchKey, foundObjects); - } + Iterator> nodeIterator = node.fields(); - String name = entry.getKey(); - if (name.equalsIgnoreCase(searchKey)) { + while (nodeIterator.hasNext()) { + Map.Entry entry = nodeIterator.next(); + if (!entry.getValue().isValueNode()) { + extractObjectsByKey(entry.getValue(), searchKey, foundObjects); + } - JsonNode entryValue = entry.getValue(); + String name = entry.getKey(); + if (!name.equalsIgnoreCase(searchKey)) { + continue; + } - if (entryValue.isArray()) { + JsonNode entryValue = entry.getValue(); - Iterator arrayItemsIterator = entryValue.elements(); - while (arrayItemsIterator.hasNext()) { - foundObjects.add(arrayItemsIterator.next()); - } + if (entryValue.isArray()) { - } else { - foundObjects.add(entry.getValue()); - } + 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()); } } } @@ -221,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(); } /**