protected void traverseMap(Deque<JsonObject<String, Object>> stack, JsonObject<String, Object> jsonObj) {
    """
	Process java.util.Map and it's derivatives.  These can be written specially
	so that the serialization would not expose the derivative class internals
	(internal fields of TreeMap for example).
	
	@param stack   a Stack (Deque) used to support graph traversal.
	@param jsonObj a Map-of-Map representation of the JSON input stream.
    """
        // Convert @keys to a Collection of Java objects.
        convertMapToKeysItems(jsonObj);
        final Object[] keys = (Object[]) jsonObj.get("@keys");
        final Object[] items = jsonObj.getArray();

        if (keys == null || items == null)
        {
            if (keys != items)
            {
                throw new JsonIoException("Map written where one of @keys or @items is empty");
            }
            return;
        }

        final int size = keys.length;
        if (size != items.length)
        {
            throw new JsonIoException("Map written with @keys and @items entries of different sizes");
        }

        Object[] mapKeys = buildCollection(stack, keys, size);
        Object[] mapValues = buildCollection(stack, items, size);

        // Save these for later so that unresolved references inside keys or values
        // get patched first, and then build the Maps.
        prettyMaps.add(new Object[]{jsonObj, mapKeys, mapValues});
    }
protected void traverseMap(Deque<JsonObject<String, Object>> stack, JsonObject<String, Object> jsonObj)
    {
        // Convert @keys to a Collection of Java objects.
        convertMapToKeysItems(jsonObj);
        final Object[] keys = (Object[]) jsonObj.get("@keys");
        final Object[] items = jsonObj.getArray();

        if (keys == null || items == null)
        {
            if (keys != items)
            {
                throw new JsonIoException("Map written where one of @keys or @items is empty");
            }
            return;
        }

        final int size = keys.length;
        if (size != items.length)
        {
            throw new JsonIoException("Map written with @keys and @items entries of different sizes");
        }

        Object[] mapKeys = buildCollection(stack, keys, size);
        Object[] mapValues = buildCollection(stack, items, size);

        // Save these for later so that unresolved references inside keys or values
        // get patched first, and then build the Maps.
        prettyMaps.add(new Object[]{jsonObj, mapKeys, mapValues});
    }
protected void traverseMap ( Deque < JsonObject < String , Object > > stack , JsonObject < String , Object > jsonObj ) { // Convert @keys to a Collection of Java objects. convertMapToKeysItems ( jsonObj ) ; final Object [ ] keys = ( Object [ ] ) jsonObj . get ( "@keys" ) ; final Object [ ] items = jsonObj . getArray ( ) ; if ( keys == null || items == null ) { if ( keys != items ) { throw new JsonIoException ( "Map written where one of @keys or @items is empty" ) ; } return ; } final int size = keys . length ; if ( size != items . length ) { throw new JsonIoException ( "Map written with @keys and @items entries of different sizes" ) ; } Object [ ] mapKeys = buildCollection ( stack , keys , size ) ; Object [ ] mapValues = buildCollection ( stack , items , size ) ; // Save these for later so that unresolved references inside keys or values // get patched first, and then build the Maps. prettyMaps . add ( new Object [ ] { jsonObj , mapKeys , mapValues } ) ; }
Process java.util.Map and it's derivatives.  These can be written specially
so that the serialization would not expose the derivative class internals
(internal fields of TreeMap for example).

@param stack   a Stack (Deque) used to support graph traversal.
@param jsonObj a Map-of-Map representation of the JSON input stream.
Process java . util . Map and it s derivatives . These can be written specially so that the serialization would not expose the derivative class internals ( internal fields of TreeMap for example ) .