001package de.deepamehta.plugins.config; 002 003import de.deepamehta.core.JSONEnabled; 004 005import org.codehaus.jettison.json.JSONArray; 006import org.codehaus.jettison.json.JSONObject; 007 008import java.util.List; 009import java.util.Map; 010 011 012 013class ConfigDefinitions implements JSONEnabled { 014 015 // ---------------------------------------------------------------------------------------------- Instance Variables 016 017 private Map<String, List<ConfigDefinition>> registry; 018 019 // ---------------------------------------------------------------------------------------------------- Constructors 020 021 ConfigDefinitions(Map<String, List<ConfigDefinition>> registry) { 022 this.registry = registry; 023 } 024 025 // -------------------------------------------------------------------------------------------------- Public Methods 026 027 @Override 028 public JSONObject toJSON() { 029 try { 030 JSONObject o = new JSONObject(); 031 for (String configurableUri: registry.keySet()) { 032 List<ConfigDefinition> configDefs = registry.get(configurableUri); 033 JSONArray array = new JSONArray(); 034 o.put(configurableUri, array); 035 for (ConfigDefinition configDef : configDefs) { 036 array.put(configDef.getConfigTypeUri()); 037 } 038 } 039 return o; 040 } catch (Exception e) { 041 throw new RuntimeException("Serialization failed (" + this + ")", e); 042 } 043 } 044}