package org.ovirt.engine.core.vdsbroker; import java.util.Arrays; import java.util.Map; public class ObjectDescriptor { public static void toStringBuilder(Map<String, ?> map, StringBuilder builder) { if (map == null) { return; } for (Map.Entry<String, ?> entry : map.entrySet()) { if (entry.getValue() instanceof Map) { builder.append(String.format("%1$s:", entry.getKey())); builder.append("\n"); toStringBuilder((Map<String, Object>) entry.getValue(), builder); builder.append("\n"); } else if (!(entry.getValue() instanceof String) && entry.getValue() instanceof Iterable) { builder.append(String.format("%1$s:", entry.getKey())); builder.append("\n"); toStringBuilder((Iterable) entry.getValue(), builder); builder.append("\n"); } else if (entry.getValue() instanceof Object[]) { builder.append(String.format("%1$s:", entry.getKey())); builder.append("\n"); builder.append(Arrays.deepToString((Object[]) entry.getValue())); builder.append("\n"); } else { builder.append(String.format("%1$s = %2$s", entry.getKey(), entry.getValue().toString())); builder.append("\n"); } } } public static void toStringBuilder(Map[] map, StringBuilder builder) { if (map == null) { return; } for (Map entry : map) { toStringBuilder(entry, builder); } } private static void toStringBuilder(Iterable iterable, StringBuilder builder) { if (iterable == null) { return; } for (Object value : iterable) { if (value instanceof Iterable) { toStringBuilder((Iterable) value, builder); } else { builder.append(value.toString()); builder.append("\n"); } } } }