private void processMap()

in gshell-support/gshell-spring/src/main/java/org/apache/geronimo/gshell/spring/LoggingProcessor.java [565:600]


    private void processMap(final Map map, final ElementBuilder builder) {
        assert map != null;
        assert builder != null;

        builder.addChild(MAP_ELEMENT);

        for (Object key : map.keySet()) {
            Object value = map.get(key);
            builder.addChild(ENTRY_ELEMENT);
            String keyValue;

            if (key instanceof String) {
                keyValue = (String) key;
                builder.addAttribute(KEY_ATTRIBUTE, keyValue);
            }
            else if (key instanceof TypedStringValue) {
                TypedStringValue typedStringValue = (TypedStringValue) key;
                keyValue = typedStringValue.getValue();
                builder.addAttribute(KEY_ATTRIBUTE, keyValue);
            }
            else if (key instanceof RuntimeBeanReference) {
                RuntimeBeanReference reference = (RuntimeBeanReference) key;
                String beanName = reference.getBeanName();
                builder.addAttribute(KEY_REF_ATTRIBUTE, beanName);
            }
            else {
                keyValue = key.toString();
                builder.addAttribute(KEY_ATTRIBUTE, keyValue);
            }

            processValue(value, builder, false, true);
            builder.up();
        }

        builder.up();
    }