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}