Class PluginConfigSourceImpl

java.lang.Object
com.biglybt.pifimpl.local.config.PluginConfigSourceImpl
All Implemented Interfaces:
COConfigurationListener, ParameterListener, PluginConfigSource

public class PluginConfigSourceImpl extends Object implements COConfigurationListener, ParameterListener, PluginConfigSource
  • Field Details

    • plugin_config

      private PluginConfig plugin_config
    • source_file

      private File source_file
    • initialised

      private boolean initialised
    • data_map

      private Map data_map
    • key_prefix

      private String key_prefix
    • dirty

      private boolean dirty
    • migrate_settings

      private boolean migrate_settings
    • params_monitored

      private LightHashSet params_monitored
  • Constructor Details

    • PluginConfigSourceImpl

      public PluginConfigSourceImpl(PluginConfig plugin_config, String plugin_id)
  • Method Details

    • initialize

      public void initialize()
      Description copied from interface: PluginConfigSource
      This initializes this configuration object and gets the external configuration file integrated with the client.

      It performs the following steps:

      • Loads the data of any existing config file into the client.
      • Registers all parameters in the file to be stored inside this configuration file (so all changes will be stored here).
      • Adds a hook to allow it to be automatically saved when the client autosaves its own internal configuration files.
      • Adds a hook to intercept any configuration settings created and used by the plugin and stores it internally (rather than being saved in the main the client config file).
      Specified by:
      initialize in interface PluginConfigSource
    • getConfigFile

      public File getConfigFile()
      Description copied from interface: PluginConfigSource
      Returns a file object which represents the location of the configuration file that this object interacts with.
      Specified by:
      getConfigFile in interface PluginConfigSource
    • setConfigFilename

      public void setConfigFilename(String filename)
      Description copied from interface: PluginConfigSource
      This method sets the filename for the configuration file that this object links to - this must be done before the PluginConfigSource.initialize() method is called.
      Specified by:
      setConfigFilename in interface PluginConfigSource
      Parameters:
      filename - The filename to use.
    • save

      public void save(boolean force)
      Description copied from interface: PluginConfigSource
      Manually saves the configuration settings recorded by this object to disk. This isn't normally required, as the client will automatically save the configuration file when the main configuration file is saved, but you can choose to save on demand if you wish.

      Specified by:
      save in interface PluginConfigSource
      Parameters:
      force - true if you want the file to be written to regardless of whether there are any changes, false if you only want to save the file if there are unsaved changes.
    • configurationSaved

      public void configurationSaved()
      Specified by:
      configurationSaved in interface COConfigurationListener
    • parameterChanged

      public void parameterChanged(String full_param)
      Description copied from interface: ParameterListener
      Called, when a parameter has changed. The listener could only react if the parameter name is relevant. Or the listener can just read all parameters again.
      Specified by:
      parameterChanged in interface ParameterListener
      Parameters:
      full_param - the name of the parameter that has changed
    • registerParameter

      public void registerParameter(String full_param)
    • getUsedKeyPrefix

      public String getUsedKeyPrefix()
    • toPluginName

      private String toPluginName(String name)
    • shouldBeInitialised

      private void shouldBeInitialised(boolean yes)
    • forceSettingsMigration

      public void forceSettingsMigration()
      Description copied from interface: PluginConfigSource
      If your plugin previously used to store data in the main configuration file, you can call this method (which needs to be done soon after initialization) which will move all monitored parameters over to this object.

      You have to call this method before you initialize the object. It's also recommended that if you call this method, that you call PluginConfigSource.save(boolean) to save any settings copied across - probably best to be done as the last thing of the Plugin.initialize(PluginInterface) method.

      Specified by:
      forceSettingsMigration in interface PluginConfigSource