예제 #1
0
 private ConfigurationMetadataHint parseHint(JSONObject json) {
   ConfigurationMetadataHint hint = new ConfigurationMetadataHint();
   hint.setId(json.getString("name"));
   if (json.has("values")) {
     JSONArray values = json.getJSONArray("values");
     for (int i = 0; i < values.length(); i++) {
       JSONObject value = values.getJSONObject(i);
       ValueHint valueHint = new ValueHint();
       valueHint.setValue(readItemValue(value.get("value")));
       String description = value.optString("description", null);
       valueHint.setDescription(description);
       valueHint.setShortDescription(extractShortDescription(description));
       hint.getValueHints().add(valueHint);
     }
   }
   if (json.has("providers")) {
     JSONArray providers = json.getJSONArray("providers");
     for (int i = 0; i < providers.length(); i++) {
       JSONObject provider = providers.getJSONObject(i);
       ValueProvider valueProvider = new ValueProvider();
       valueProvider.setName(provider.getString("name"));
       if (provider.has("parameters")) {
         JSONObject parameters = provider.getJSONObject("parameters");
         Iterator<?> keys = parameters.keys();
         while (keys.hasNext()) {
           String key = (String) keys.next();
           valueProvider.getParameters().put(key, readItemValue(parameters.get(key)));
         }
       }
       hint.getValueProviders().add(valueProvider);
     }
   }
   return hint;
 }