X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=appc-config%2Fappc-config-adaptor%2Fprovider%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fappc%2Fccadaptor%2FXmlUtil.java;h=8f9d70252de67ae6579faea8586f15b1492c9ccc;hb=e7752e8d2dd4e4460bf68a7b36548282cc68d0e9;hp=bc8d968f29aef395f1765f99414eff0ef2e4ac22;hpb=7ed69b1e3f118f0fb19efecf46607c0debb2ea82;p=appc.git diff --git a/appc-config/appc-config-adaptor/provider/src/main/java/org/onap/appc/ccadaptor/XmlUtil.java b/appc-config/appc-config-adaptor/provider/src/main/java/org/onap/appc/ccadaptor/XmlUtil.java index bc8d968f2..8f9d70252 100644 --- a/appc-config/appc-config-adaptor/provider/src/main/java/org/onap/appc/ccadaptor/XmlUtil.java +++ b/appc-config/appc-config-adaptor/provider/src/main/java/org/onap/appc/ccadaptor/XmlUtil.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -24,140 +24,129 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class XmlUtil -{ - - private static final Logger log = LoggerFactory.getLogger(XmlUtil.class); - - public static String getXml(Map varmap, String var) - { - Object o = createStructure(varmap, var); - return generateXml(o, 0); - } - - private static Object createStructure(Map flatmap, String var) - { - if (flatmap.containsKey(var)) - return flatmap.get(var); - - Map mm = new HashMap<>(); - for (String k : flatmap.keySet()) - if (k.startsWith(var + ".")) - { - int i1 = k.indexOf('.', var.length() + 1); - int i2 = k.indexOf('[', var.length() + 1); - int i3 = k.length(); - if (i1 > 0 && i1 < i3) - i3 = i1; - if (i2 > 0 && i2 < i3) - i3 = i2; - String k1 = k.substring(var.length() + 1, i3); - String var1 = k.substring(0, i3); - if (!mm.containsKey(k1)) - { - Object str = createStructure(flatmap, var1); - if (str != null && (!(str instanceof String) || ((String) str).trim().length() > 0)) - mm.put(k1, str); +public class XmlUtil { + + private static final Logger log = LoggerFactory.getLogger(XmlUtil.class); + + public static String getXml(Map varmap, String var) { + Object o = createStructure(varmap, var); + return generateXml(o, 0); + } + + private static Object createStructure(Map flatmap, String var) { + if (flatmap.containsKey(var)) { + return flatmap.get(var); } - } - if (!mm.isEmpty()) - return mm; - - boolean arrayFound = false; - for (String k : flatmap.keySet()) - if (k.startsWith(var + "[")) - { - arrayFound = true; - break; - } - - if (arrayFound) - { - List ll = new ArrayList<>(); - - int length = Integer.MAX_VALUE; - String lengthStr = flatmap.get(var + "_length"); - if (lengthStr != null) - { - try - { - length = Integer.parseInt(lengthStr); + + Map mm = new HashMap<>(); + for (String k : flatmap.keySet()) { + if (k.startsWith(var + ".")) { + int i1 = k.indexOf('.', var.length() + 1); + int i2 = k.indexOf('[', var.length() + 1); + int i3 = k.length(); + if (i1 > 0 && i1 < i3) { + i3 = i1; + } + if (i2 > 0 && i2 < i3) { + i3 = i2; + } + String k1 = k.substring(var.length() + 1, i3); + String var1 = k.substring(0, i3); + if (!mm.containsKey(k1)) { + Object str = createStructure(flatmap, var1); + if (str != null && (!(str instanceof String) || ((String) str).trim().length() > 0)) { + mm.put(k1, str); + } + } + } + } + if (!mm.isEmpty()) { + return mm; } - catch (Exception e) - { - log.warn("Invalid number for " + var + "_length:" + lengthStr); + + boolean arrayFound = false; + for (String k : flatmap.keySet()) { + if (k.startsWith(var + "[")) { + arrayFound = true; + break; + } } - } - - for (int i = 0; i < length; i++) - { - Object v = createStructure(flatmap, var + '[' + i + ']'); - if (v == null) - break; - ll.add(v); - } - - if (!ll.isEmpty()) - return ll; + + if (arrayFound) { + List ll = new ArrayList<>(); + + int length = Integer.MAX_VALUE; + String lengthStr = flatmap.get(var + "_length"); + if (lengthStr != null) { + try { + length = Integer.parseInt(lengthStr); + } catch (Exception e) { + log.warn("Invalid number for " + var + "_length:" + lengthStr); + } + } + + for (int i = 0; i < length; i++) { + Object v = createStructure(flatmap, var + '[' + i + ']'); + if (v == null) { + break; + } + ll.add(v); + } + + if (!ll.isEmpty()) { + return ll; + } + } + + return null; } - return null; - } - - @SuppressWarnings("unchecked") - private static String generateXml(Object o, int indent) - { - if (o == null) - return null; - - if (o instanceof String) - return (String) o; - - if (o instanceof Map) - { - StringBuilder ss = new StringBuilder(); - Map mm = (Map) o; - for (String k : mm.keySet()) - { - Object v = mm.get(k); - if (v instanceof String) - { - ss.append(pad(indent)).append('<').append(k).append('>'); - ss.append(v); - ss.append("').append('\n'); + @SuppressWarnings("unchecked") + private static String generateXml(Object o, int indent) { + if (o == null) { + return null; } - else if (v instanceof Map) - { - ss.append(pad(indent)).append('<').append(k).append('>').append('\n'); - ss.append(generateXml(v, indent + 1)); - ss.append(pad(indent)).append("').append('\n'); + + if (o instanceof String) { + return (String) o; } - else if (v instanceof List) - { - List ll = (List) v; - for (Object o1 : ll) - { - ss.append(pad(indent)).append('<').append(k).append('>').append('\n'); - ss.append(generateXml(o1, indent + 1)); - ss.append(pad(indent)).append("').append('\n'); - } + + if (o instanceof Map) { + StringBuilder ss = new StringBuilder(); + Map mm = (Map) o; + for (String k : mm.keySet()) { + Object v = mm.get(k); + if (v instanceof String) { + ss.append(pad(indent)).append('<').append(k).append('>'); + ss.append(v); + ss.append("').append('\n'); + } else if (v instanceof Map) { + ss.append(pad(indent)).append('<').append(k).append('>').append('\n'); + ss.append(generateXml(v, indent + 1)); + ss.append(pad(indent)).append("').append('\n'); + } else if (v instanceof List) { + List ll = (List) v; + for (Object o1 : ll) { + ss.append(pad(indent)).append('<').append(k).append('>').append('\n'); + ss.append(generateXml(o1, indent + 1)); + ss.append(pad(indent)).append("').append('\n'); + } + } + } + return ss.toString(); } - } - return ss.toString(); - } - return null; - } + return null; + } - private static String pad(int n) - { - String s = ""; - for (int i = 0; i < n; i++) - s += '\t'; - return s; - } + private static String pad(int n) { + String s = ""; + for (int i = 0; i < n; i++) { + s += '\t'; + } + return s; + } }