code: public JSONObject toJSONObject() throws JSONException {
          final JSONObject ret = new JSONObject();
  
          ret.put(Keys.OBJECT_ID, getId());
          ret.put(Plugin.PLUGIN_NAME, getName());
          ret.put(Plugin.PLUGIN_VERSION, getVersion());
          ret.put(Plugin.PLUGIN_AUTHOR, getAuthor());
          ret.put(Plugin.PLUGIN_STATUS, getStatus().name());
          ret.put(Plugin.PLUGIN_SETTING, getSetting().toString());
  
          return ret;
      }
docs: Converts this plugin to a json object (plugin description).
  
  @return a json object, for example,
  <pre>
  {
  "oId": "",
  "name": "",
  "version": "",
  "author": "",
  "status": "" // Enumeration name of {@link PluginStatus}
  }
  </pre>
  @throws JSONException if can not convert