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}