001package com.box.sdk.internal.utils;
002
003import java.util.HashMap;
004import java.util.Map;
005
006import com.box.sdk.Metadata;
007import com.eclipsesource.json.JsonObject;
008import com.eclipsesource.json.JsonValue;
009
010/**
011 *
012 */
013public class MetadataUtils {
014    public static Map<String, Map<String, Metadata>> parseAndPopulateMetadataMap(JsonObject jsonObject) {
015        Map<String, Map<String, Metadata>> metadataMap = new HashMap<String, Map<String, Metadata>>();
016        //Parse all templates
017        for (JsonObject.Member templateMember : jsonObject) {
018            if (templateMember.getValue().isNull()) {
019                continue;
020            } else {
021                String templateName = templateMember.getName();
022                Map<String, Metadata> scopeMap = metadataMap.get(templateName);
023                //If templateName doesn't yet exist then create an entry with empty scope map
024                if (scopeMap == null) {
025                    scopeMap = new HashMap<String, Metadata>();
026                    metadataMap.put(templateName, scopeMap);
027                }
028                //Parse all scopes in a template
029                for (JsonObject.Member scopeMember : templateMember.getValue().asObject()) {
030                    String scope = scopeMember.getName();
031                    Metadata metadataObject = new Metadata(scopeMember.getValue().asObject());
032                    scopeMap.put(scope, metadataObject);
033                }
034            }
035
036        }
037        return metadataMap;
038    }
039}