Class SettingsService

java.lang.Object
ai.nervemind.app.service.SettingsService
All Implemented Interfaces:
ai.nervemind.common.service.SettingsServiceInterface

@Service @Transactional public class SettingsService extends Object implements ai.nervemind.common.service.SettingsServiceInterface
Service for managing application settings. Provides caching, validation, and change notification.
  • Constructor Details

    • SettingsService

      public SettingsService(SettingRepository settingRepository, EncryptionService encryptionService, com.fasterxml.jackson.databind.ObjectMapper objectMapper)
      Creates a new settings service.
      Parameters:
      settingRepository - the repository for setting persistence
      encryptionService - the service for encrypting sensitive settings
      objectMapper - the ObjectMapper for JSON serialization
  • Method Details

    • init

      @PostConstruct public void init()
      Initializes the settings service after construction. Loads default settings and populates the cache.
    • initializeDefaults

      public void initializeDefaults()
      Specified by:
      initializeDefaults in interface ai.nervemind.common.service.SettingsServiceInterface
    • findAll

      @Transactional(readOnly=true) public List<ai.nervemind.common.dto.SettingDTO> findAll()
      Specified by:
      findAll in interface ai.nervemind.common.service.SettingsServiceInterface
    • findAllVisible

      @Transactional(readOnly=true) public List<ai.nervemind.common.dto.SettingDTO> findAllVisible()
      Specified by:
      findAllVisible in interface ai.nervemind.common.service.SettingsServiceInterface
    • findByCategory

      @Transactional(readOnly=true) public List<ai.nervemind.common.dto.SettingDTO> findByCategory(ai.nervemind.common.enums.SettingCategory category)
      Specified by:
      findByCategory in interface ai.nervemind.common.service.SettingsServiceInterface
    • findByKey

      @Transactional(readOnly=true) public Optional<ai.nervemind.common.dto.SettingDTO> findByKey(String key)
      Specified by:
      findByKey in interface ai.nervemind.common.service.SettingsServiceInterface
    • getValue

      public String getValue(String key, String defaultValue)
      Specified by:
      getValue in interface ai.nervemind.common.service.SettingsServiceInterface
    • getBoolean

      public boolean getBoolean(String key, boolean defaultValue)
      Specified by:
      getBoolean in interface ai.nervemind.common.service.SettingsServiceInterface
    • getInt

      public int getInt(String key, int defaultValue)
      Specified by:
      getInt in interface ai.nervemind.common.service.SettingsServiceInterface
    • getLong

      public long getLong(String key, long defaultValue)
      Specified by:
      getLong in interface ai.nervemind.common.service.SettingsServiceInterface
    • getDouble

      public double getDouble(String key, double defaultValue)
      Specified by:
      getDouble in interface ai.nervemind.common.service.SettingsServiceInterface
    • setValue

      public ai.nervemind.common.dto.SettingDTO setValue(String key, String value)
      Specified by:
      setValue in interface ai.nervemind.common.service.SettingsServiceInterface
    • setValues

      public List<ai.nervemind.common.dto.SettingDTO> setValues(Map<String,String> settings)
      Specified by:
      setValues in interface ai.nervemind.common.service.SettingsServiceInterface
    • resetToDefault

      public ai.nervemind.common.dto.SettingDTO resetToDefault(String key)
      Specified by:
      resetToDefault in interface ai.nervemind.common.service.SettingsServiceInterface
    • resetCategoryToDefaults

      public List<ai.nervemind.common.dto.SettingDTO> resetCategoryToDefaults(ai.nervemind.common.enums.SettingCategory category)
      Specified by:
      resetCategoryToDefaults in interface ai.nervemind.common.service.SettingsServiceInterface
    • resetAllToDefaults

      public void resetAllToDefaults()
      Specified by:
      resetAllToDefaults in interface ai.nervemind.common.service.SettingsServiceInterface
    • search

      @Transactional(readOnly=true) public List<ai.nervemind.common.dto.SettingDTO> search(String query)
      Specified by:
      search in interface ai.nervemind.common.service.SettingsServiceInterface
    • exportAsJson

      @Transactional(readOnly=true) public String exportAsJson()
      Specified by:
      exportAsJson in interface ai.nervemind.common.service.SettingsServiceInterface
    • importFromJson

      public void importFromJson(String json)
      Specified by:
      importFromJson in interface ai.nervemind.common.service.SettingsServiceInterface
    • addChangeListener

      public void addChangeListener(ai.nervemind.common.service.SettingsServiceInterface.SettingsChangeListener listener)
      Specified by:
      addChangeListener in interface ai.nervemind.common.service.SettingsServiceInterface
    • removeChangeListener

      public void removeChangeListener(ai.nervemind.common.service.SettingsServiceInterface.SettingsChangeListener listener)
      Specified by:
      removeChangeListener in interface ai.nervemind.common.service.SettingsServiceInterface