package com.getcapacitor; import com.getcapacitor.util.JSONUtils; import org.json.JSONObject; /** * Represents the configuration options for plugins used by Capacitor */ public class PluginConfig { /** * The object containing plugin config values. */ private final JSONObject config; /** * Constructs a PluginsConfig with the provided JSONObject value. * * @param config A plugin configuration expressed as a JSON Object */ PluginConfig(JSONObject config) { this.config = config; } /** * Get a string value for a plugin in the Capacitor config. * * @param configKey The key of the value to retrieve * @return The value from the config, if exists. Null if not */ public String getString(String configKey) { return getString(configKey, null); } /** * Get a string value for a plugin in the Capacitor config. * * @param configKey The key of the value to retrieve * @param defaultValue A default value to return if the key does not exist in the config * @return The value from the config, if key exists. Default value returned if not */ public String getString(String configKey, String defaultValue) { return JSONUtils.getString(config, configKey, defaultValue); } /** * Get a boolean value for a plugin in the Capacitor config. * * @param configKey The key of the value to retrieve * @param defaultValue A default value to return if the key does not exist in the config * @return The value from the config, if key exists. Default value returned if not */ public boolean getBoolean(String configKey, boolean defaultValue) { return JSONUtils.getBoolean(config, configKey, defaultValue); } /** * Get an integer value for a plugin in the Capacitor config. * * @param configKey The key of the value to retrieve * @param defaultValue A default value to return if the key does not exist in the config * @return The value from the config, if key exists. Default value returned if not */ public int getInt(String configKey, int defaultValue) { return JSONUtils.getInt(config, configKey, defaultValue); } /** * Get a string array value for a plugin in the Capacitor config. * * @param configKey The key of the value to retrieve * @return The value from the config, if exists. Null if not */ public String[] getArray(String configKey) { return getArray(configKey, null); } /** * Get a string array value for a plugin in the Capacitor config. * * @param configKey The key of the value to retrieve * @param defaultValue A default value to return if the key does not exist in the config * @return The value from the config, if key exists. Default value returned if not */ public String[] getArray(String configKey, String[] defaultValue) { return JSONUtils.getArray(config, configKey, defaultValue); } /** * Get a JSON object value for a plugin in the Capacitor config. * * @param configKey The key of the value to retrieve * @return The value from the config, if exists. Null if not */ public JSONObject getObject(String configKey) { return JSONUtils.getObject(config, configKey); } /** * Check if the PluginConfig is empty. * * @return true if the plugin config has no entries */ public boolean isEmpty() { return config.length() == 0; } /** * Gets the JSON Object containing the config of the the provided plugin ID. * * @return The config for that plugin */ public JSONObject getConfigJSON() { return config; } }