Class Settings

  • Direct Known Subclasses:
    MapSettings

    public abstract class Settings
    extends org.sonar.api.config.Settings
    Implementation of the deprecated Settings interface
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected Settings​(org.sonar.api.config.PropertyDefinitions definitions, Encryption encryption)  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      Settings addProperties​(java.util.Map<java.lang.String,​java.lang.String> props)  
      Settings addProperties​(java.util.Properties props)  
      Settings appendProperty​(java.lang.String key, java.lang.String value)  
      protected abstract java.util.Optional<java.lang.String> get​(java.lang.String key)  
      boolean getBoolean​(java.lang.String key)
      Effective value as boolean.
      java.util.Date getDate​(java.lang.String key)
      Effective value as Date, without time fields.
      java.util.Date getDateTime​(java.lang.String key)
      Effective value as Date, with time fields.
      java.lang.String getDefaultValue​(java.lang.String key)  
      java.util.Optional<org.sonar.api.config.PropertyDefinition> getDefinition​(java.lang.String key)
      The definition related to the specified property.
      org.sonar.api.config.PropertyDefinitions getDefinitions()
      All the property definitions declared by core and plugins.
      java.lang.Double getDouble​(java.lang.String key)
      Effective value as Double.
      Encryption getEncryption()  
      java.lang.Float getFloat​(java.lang.String key)
      Effective value as Float.
      int getInt​(java.lang.String key)
      Effective value as int.
      java.util.List<java.lang.String> getKeysStartingWith​(java.lang.String prefix)  
      long getLong​(java.lang.String key)
      Effective value as long.
      abstract java.util.Map<java.lang.String,​java.lang.String> getProperties()
      Immutable map of the properties that have non-default values.
      java.util.Optional<java.lang.String> getRawString​(java.lang.String key)
      The value that overrides the default value.
      java.lang.String getString​(java.lang.String key)
      The effective value of the specified property.
      java.lang.String[] getStringArray​(java.lang.String key)
      Value is split by comma and trimmed.
      java.lang.String[] getStringArrayBySeparator​(java.lang.String key, java.lang.String separator)
      Value is split and trimmed.
      java.lang.String[] getStringLines​(java.lang.String key)
      Value is split by carriage returns.
      boolean hasDefaultValue​(java.lang.String key)  
      boolean hasKey​(java.lang.String key)  
      protected abstract void remove​(java.lang.String key)  
      Settings removeProperty​(java.lang.String key)  
      protected abstract void set​(java.lang.String key, java.lang.String value)
      Add the settings with the specified key and value, both are trimmed and neither can be null.
      Settings setProperty​(java.lang.String key, java.lang.Boolean value)  
      Settings setProperty​(java.lang.String key, java.lang.Double value)  
      Settings setProperty​(java.lang.String key, java.lang.Float value)  
      Settings setProperty​(java.lang.String key, java.lang.Integer value)  
      Settings setProperty​(java.lang.String key, java.lang.Long value)  
      Settings setProperty​(java.lang.String key, java.lang.String value)
      Change a property value in a restricted scope only, depending on execution context.
      Settings setProperty​(java.lang.String key, java.lang.String[] values)  
      Settings setProperty​(java.lang.String key, java.util.Date date)  
      Settings setProperty​(java.lang.String key, java.util.Date date, boolean includeTime)  
      • Methods inherited from class java.lang.Object

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

      • Settings

        protected Settings​(org.sonar.api.config.PropertyDefinitions definitions,
                           Encryption encryption)
    • Method Detail

      • get

        protected abstract java.util.Optional<java.lang.String> get​(java.lang.String key)
      • set

        protected abstract void set​(java.lang.String key,
                                    java.lang.String value)
        Add the settings with the specified key and value, both are trimmed and neither can be null.
        Throws:
        java.lang.NullPointerException - if key and/or value is null.
      • remove

        protected abstract void remove​(java.lang.String key)
      • getProperties

        public abstract java.util.Map<java.lang.String,​java.lang.String> getProperties()
        Immutable map of the properties that have non-default values. The default values defined by PropertyDefinitions are ignored, so the returned values are not the effective values. Basically only the non-empty results of getRawString(String) are returned.

        Values are not decrypted if they are encrypted with a secret key.

      • getEncryption

        public Encryption getEncryption()
      • getRawString

        public java.util.Optional<java.lang.String> getRawString​(java.lang.String key)
        The value that overrides the default value. It may be encrypted with a secret key. Use getString(String) to get the effective and decrypted value.
        Since:
        6.1
      • getDefinitions

        public org.sonar.api.config.PropertyDefinitions getDefinitions()
        All the property definitions declared by core and plugins.
      • getDefinition

        public java.util.Optional<org.sonar.api.config.PropertyDefinition> getDefinition​(java.lang.String key)
        The definition related to the specified property. It may be empty.
        Since:
        6.1
      • hasKey

        public boolean hasKey​(java.lang.String key)
        Specified by:
        hasKey in class org.sonar.api.config.Settings
        Returns:
        true if the property has a non-default value, else false.
      • getDefaultValue

        @CheckForNull
        public java.lang.String getDefaultValue​(java.lang.String key)
      • hasDefaultValue

        public boolean hasDefaultValue​(java.lang.String key)
      • getString

        @CheckForNull
        public java.lang.String getString​(java.lang.String key)
        The effective value of the specified property. Can return null if the property is not set and has no defined default value.

        If the property is encrypted with a secret key, then the returned value is decrypted.

        Specified by:
        getString in class org.sonar.api.config.Settings
        Throws:
        java.lang.IllegalStateException - if value is encrypted but fails to be decrypted.
      • getBoolean

        public boolean getBoolean​(java.lang.String key)
        Effective value as boolean. It is false if getString(String) does not return "true", even if it's not a boolean representation.
        Specified by:
        getBoolean in class org.sonar.api.config.Settings
        Returns:
        true if the effective value is "true", else false.
      • getInt

        public int getInt​(java.lang.String key)
        Effective value as int.
        Specified by:
        getInt in class org.sonar.api.config.Settings
        Returns:
        the value as int. If the property does not have value nor default value, then 0 is returned.
        Throws:
        java.lang.NumberFormatException - if value is not empty and is not a parsable integer
      • getLong

        public long getLong​(java.lang.String key)
        Effective value as long.
        Specified by:
        getLong in class org.sonar.api.config.Settings
        Returns:
        the value as long. If the property does not have value nor default value, then 0L is returned.
        Throws:
        java.lang.NumberFormatException - if value is not empty and is not a parsable long
      • getDate

        @CheckForNull
        public java.util.Date getDate​(java.lang.String key)
        Effective value as Date, without time fields. Format is DateUtils.DATE_FORMAT.
        Specified by:
        getDate in class org.sonar.api.config.Settings
        Returns:
        the value as a Date. If the property does not have value nor default value, then null is returned.
        Throws:
        java.lang.RuntimeException - if value is not empty and is not in accordance with DateUtils.DATE_FORMAT.
      • getDateTime

        @CheckForNull
        public java.util.Date getDateTime​(java.lang.String key)
        Effective value as Date, with time fields. Format is DateUtils.DATETIME_FORMAT.
        Specified by:
        getDateTime in class org.sonar.api.config.Settings
        Returns:
        the value as a Date. If the property does not have value nor default value, then null is returned.
        Throws:
        java.lang.RuntimeException - if value is not empty and is not in accordance with DateUtils.DATETIME_FORMAT.
      • getFloat

        @CheckForNull
        public java.lang.Float getFloat​(java.lang.String key)
        Effective value as Float.
        Specified by:
        getFloat in class org.sonar.api.config.Settings
        Returns:
        the value as Float. If the property does not have value nor default value, then null is returned.
        Throws:
        java.lang.NumberFormatException - if value is not empty and is not a parsable number
      • getDouble

        @CheckForNull
        public java.lang.Double getDouble​(java.lang.String key)
        Effective value as Double.
        Specified by:
        getDouble in class org.sonar.api.config.Settings
        Returns:
        the value as Double. If the property does not have value nor default value, then null is returned.
        Throws:
        java.lang.NumberFormatException - if value is not empty and is not a parsable number
      • getStringArray

        public java.lang.String[] getStringArray​(java.lang.String key)
        Value is split by comma and trimmed. Never returns null.
        Examples :
        • "one,two,three " -> ["one", "two", "three"]
        • " one, two, three " -> ["one", "two", "three"]
        • "one, , three" -> ["one", "", "three"]
        Specified by:
        getStringArray in class org.sonar.api.config.Settings
      • getStringLines

        public java.lang.String[] getStringLines​(java.lang.String key)
        Value is split by carriage returns.
        Specified by:
        getStringLines in class org.sonar.api.config.Settings
        Returns:
        non-null array of lines. The line termination characters are excluded.
        Since:
        3.2
      • getStringArrayBySeparator

        public java.lang.String[] getStringArrayBySeparator​(java.lang.String key,
                                                            java.lang.String separator)
        Value is split and trimmed.
        Specified by:
        getStringArrayBySeparator in class org.sonar.api.config.Settings
      • appendProperty

        public Settings appendProperty​(java.lang.String key,
                                       @Nullable
                                       java.lang.String value)
      • setProperty

        public Settings setProperty​(java.lang.String key,
                                    @Nullable
                                    java.lang.String[] values)
      • setProperty

        public Settings setProperty​(java.lang.String key,
                                    @Nullable
                                    java.lang.String value)
        Change a property value in a restricted scope only, depending on execution context. New value is never persisted. New value is ephemeral and kept in memory only:
        • during current analysis in the case of scanner stack
        • during processing of current HTTP request in the case of web server stack
        • during execution of current task in the case of Compute Engine stack
        Property is temporarily removed if the parameter value is null
      • addProperties

        public Settings addProperties​(java.util.Map<java.lang.String,​java.lang.String> props)
      • addProperties

        public Settings addProperties​(java.util.Properties props)
      • removeProperty

        public Settings removeProperty​(java.lang.String key)
      • getKeysStartingWith

        public java.util.List<java.lang.String> getKeysStartingWith​(java.lang.String prefix)
        Specified by:
        getKeysStartingWith in class org.sonar.api.config.Settings