Class AbstractPreferences

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.lang.String KEY_SENSITIVE_KEYS
      The preference key for sensitive keys
      private static java.util.Set<java.lang.String> SENSITIVE_KEYS
      A set of sensitive keys that should not be seen/distributed outside of specific callers (like a CredentialsAgent)
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void addSensitive​(CredentialsAgent caller, java.lang.String key)
      Add sensitive keys
      java.lang.String get​(java.lang.String key, java.lang.String def)
      Get settings value for a certain key and provide a default value.
      java.util.Map<java.lang.String,​java.lang.String> getAllPrefix​(java.lang.String prefix)
      Gets all normal (string) settings that have a key starting with the prefix
      java.util.List<java.lang.String> getAllPrefixCollectionKeys​(java.lang.String prefix)
      Gets all list settings that have a key starting with the prefix
      abstract java.util.Map<java.lang.String,​Setting<?>> getAllSettings()
      Gets a map of all settings that are currently stored
      boolean getBoolean​(java.lang.String key, boolean def)
      Gets a boolean preference
      double getDouble​(java.lang.String key, double def)
      Gets a double preference
      int getInt​(java.lang.String key, int def)
      Gets an integer preference
      java.util.List<java.lang.String> getList​(java.lang.String key, java.util.List<java.lang.String> def)
      Get a list of values for a certain key
      java.util.List<java.util.List<java.lang.String>> getListOfLists​(java.lang.String key, java.util.List<java.util.List<java.lang.String>> def)
      Get an array of values (list of lists) for a certain key
      java.util.List<java.util.Map<java.lang.String,​java.lang.String>> getListOfMaps​(java.lang.String key, java.util.List<java.util.Map<java.lang.String,​java.lang.String>> def)
      Gets a list of key/value maps.
      long getLong​(java.lang.String key, long def)
      Gets a long preference
      java.util.Collection<java.lang.String> getSensitive()
      Get sensitive keys
      abstract <T extends Setting<?>>
      T
      getSetting​(java.lang.String key, T def, java.lang.Class<T> klass)
      Get settings value for a certain key and provide default a value.
      private void populateSensitiveKeys()
      Populate the sensitive key set from preferences
      boolean put​(java.lang.String key, java.lang.String value)
      Set a value for a certain setting.
      boolean putBoolean​(java.lang.String key, boolean value)
      Set a boolean value for a certain setting.
      boolean putDouble​(java.lang.String key, double value)
      Set a boolean value for a certain setting.
      boolean putInt​(java.lang.String key, int value)
      Set an integer value for a certain setting.
      boolean putList​(java.lang.String key, java.util.List<java.lang.String> value)
      Set a list of values for a certain key.
      boolean putListOfLists​(java.lang.String key, java.util.List<java.util.List<java.lang.String>> value)
      Set an array of values (list of lists) for a certain key.
      boolean putListOfMaps​(java.lang.String key, java.util.List<java.util.Map<java.lang.String,​java.lang.String>> value)
      Set an a list of key/value maps.
      boolean putLong​(java.lang.String key, long value)
      Set a long value for a certain setting.
      abstract boolean putSetting​(java.lang.String key, Setting<?> setting)
      Set a value for a certain setting.
      void removeSensitive​(java.lang.String key)
      Remove sensitive keys.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • get

        public java.lang.String get​(java.lang.String key,
                                    java.lang.String def)
        Description copied from interface: IPreferences
        Get settings value for a certain key and provide a default value.
        Specified by:
        get in interface IPreferences
        Parameters:
        key - the identifier for the setting
        def - the default value. For each call of get() with a given key, the default value must be the same. def may be null.
        Returns:
        the corresponding value if the property has been set before, def otherwise
      • put

        public boolean put​(java.lang.String key,
                           java.lang.String value)
        Description copied from interface: IPreferences
        Set a value for a certain setting.
        Specified by:
        put in interface IPreferences
        Parameters:
        key - the unique identifier for the setting
        value - the value of the setting. Can be null or "" which both removes the key-value entry.
        Returns:
        true, if something has changed (i.e. value is different than before)
      • getBoolean

        public boolean getBoolean​(java.lang.String key,
                                  boolean def)
        Description copied from interface: IPreferences
        Gets a boolean preference
        Specified by:
        getBoolean in interface IPreferences
        Parameters:
        key - The preference key
        def - The default value to use
        Returns:
        The boolean, false if it could not be parsed, the default value if it is unset
      • putBoolean

        public boolean putBoolean​(java.lang.String key,
                                  boolean value)
        Description copied from interface: IPreferences
        Set a boolean value for a certain setting.
        Specified by:
        putBoolean in interface IPreferences
        Parameters:
        key - the unique identifier for the setting
        value - The new value
        Returns:
        true, if something has changed (i.e. value is different than before)
      • getInt

        public int getInt​(java.lang.String key,
                          int def)
        Description copied from interface: IPreferences
        Gets an integer preference
        Specified by:
        getInt in interface IPreferences
        Parameters:
        key - The preference key
        def - The default value to use
        Returns:
        The integer
      • putInt

        public boolean putInt​(java.lang.String key,
                              int value)
        Description copied from interface: IPreferences
        Set an integer value for a certain setting.
        Specified by:
        putInt in interface IPreferences
        Parameters:
        key - the unique identifier for the setting
        value - The new value
        Returns:
        true, if something has changed (i.e. value is different than before)
      • getLong

        public long getLong​(java.lang.String key,
                            long def)
        Description copied from interface: IPreferences
        Gets a long preference
        Specified by:
        getLong in interface IPreferences
        Parameters:
        key - The preference key
        def - The default value to use
        Returns:
        The long value or the default value if it could not be parsed
      • putLong

        public boolean putLong​(java.lang.String key,
                               long value)
        Description copied from interface: IPreferences
        Set a long value for a certain setting.
        Specified by:
        putLong in interface IPreferences
        Parameters:
        key - the unique identifier for the setting
        value - The new value
        Returns:
        true, if something has changed (i.e. value is different than before)
      • getDouble

        public double getDouble​(java.lang.String key,
                                double def)
        Description copied from interface: IPreferences
        Gets a double preference
        Specified by:
        getDouble in interface IPreferences
        Parameters:
        key - The preference key
        def - The default value to use
        Returns:
        The double value or the default value if it could not be parsed
      • putDouble

        public boolean putDouble​(java.lang.String key,
                                 double value)
        Description copied from interface: IPreferences
        Set a boolean value for a certain setting.
        Specified by:
        putDouble in interface IPreferences
        Parameters:
        key - the unique identifier for the setting
        value - The new value
        Returns:
        true, if something has changed (i.e. value is different than before)
      • getList

        public java.util.List<java.lang.String> getList​(java.lang.String key,
                                                        java.util.List<java.lang.String> def)
        Description copied from interface: IPreferences
        Get a list of values for a certain key
        Specified by:
        getList in interface IPreferences
        Parameters:
        key - the identifier for the setting
        def - the default value.
        Returns:
        the corresponding value if the property has been set before, def otherwise
      • putList

        public boolean putList​(java.lang.String key,
                               java.util.List<java.lang.String> value)
        Description copied from interface: IPreferences
        Set a list of values for a certain key.
        Specified by:
        putList in interface IPreferences
        Parameters:
        key - the identifier for the setting
        value - The new value
        Returns:
        true, if something has changed (i.e. value is different than before)
      • getListOfLists

        public java.util.List<java.util.List<java.lang.String>> getListOfLists​(java.lang.String key,
                                                                               java.util.List<java.util.List<java.lang.String>> def)
        Description copied from interface: IPreferences
        Get an array of values (list of lists) for a certain key
        Specified by:
        getListOfLists in interface IPreferences
        Parameters:
        key - the identifier for the setting
        def - the default value.
        Returns:
        the corresponding value if the property has been set before, def otherwise
      • putListOfLists

        public boolean putListOfLists​(java.lang.String key,
                                      java.util.List<java.util.List<java.lang.String>> value)
        Description copied from interface: IPreferences
        Set an array of values (list of lists) for a certain key.
        Specified by:
        putListOfLists in interface IPreferences
        Parameters:
        key - the identifier for the setting
        value - the new value
        Returns:
        true, if something has changed (i.e. value is different than before)
      • getListOfMaps

        public java.util.List<java.util.Map<java.lang.String,​java.lang.String>> getListOfMaps​(java.lang.String key,
                                                                                                    java.util.List<java.util.Map<java.lang.String,​java.lang.String>> def)
        Description copied from interface: IPreferences
        Gets a list of key/value maps.
        Specified by:
        getListOfMaps in interface IPreferences
        Parameters:
        key - the key to search at
        def - the default value to use
        Returns:
        the corresponding value if the property has been set before, def otherwise
      • putListOfMaps

        public boolean putListOfMaps​(java.lang.String key,
                                     java.util.List<java.util.Map<java.lang.String,​java.lang.String>> value)
        Description copied from interface: IPreferences
        Set an a list of key/value maps.
        Specified by:
        putListOfMaps in interface IPreferences
        Parameters:
        key - the key to store the list in
        value - a list of key/value maps
        Returns:
        true if the value was changed
      • getAllSettings

        public abstract java.util.Map<java.lang.String,​Setting<?>> getAllSettings()
        Gets a map of all settings that are currently stored
        Returns:
        The settings
      • putSetting

        public abstract boolean putSetting​(java.lang.String key,
                                           Setting<?> setting)
        Set a value for a certain setting. The changed setting is saved to the preference file immediately. Due to caching mechanisms on modern operating systems and hardware, this shouldn't be a performance problem.
        Parameters:
        key - the unique identifier for the setting
        setting - the value of the setting. In case it is null, the key-value entry will be removed.
        Returns:
        true, if something has changed (i.e. value is different than before)
      • getSetting

        public abstract <T extends Setting<?>> T getSetting​(java.lang.String key,
                                                            T def,
                                                            java.lang.Class<T> klass)
        Get settings value for a certain key and provide default a value.
        Type Parameters:
        T - the setting type
        Parameters:
        key - the identifier for the setting
        def - the default value. For each call of getSetting() with a given key, the default value must be the same. def must not be null, but the value of def can be null.
        klass - the setting type (same as T)
        Returns:
        the corresponding value if the property has been set before, def otherwise
      • getAllPrefix

        public java.util.Map<java.lang.String,​java.lang.String> getAllPrefix​(java.lang.String prefix)
        Gets all normal (string) settings that have a key starting with the prefix
        Parameters:
        prefix - The start of the key
        Returns:
        The key names of the settings
      • getAllPrefixCollectionKeys

        public java.util.List<java.lang.String> getAllPrefixCollectionKeys​(java.lang.String prefix)
        Gets all list settings that have a key starting with the prefix
        Parameters:
        prefix - The start of the key
        Returns:
        The key names of the list settings
      • removeSensitive

        public void removeSensitive​(java.lang.String key)
        Description copied from interface: IPreferences
        Remove sensitive keys. This removes the key from the sensitive list and removes the stored preference value.
        Specified by:
        removeSensitive in interface IPreferences
        Parameters:
        key - The key to remove
      • populateSensitiveKeys

        private void populateSensitiveKeys()
        Populate the sensitive key set from preferences