Package ru.bgcrm.util

Class ParameterMap

  • All Implemented Interfaces:
    java.util.Map<java.lang.String,​java.lang.String>
    Direct Known Subclasses:
    Preferences

    public abstract class ParameterMap
    extends java.util.AbstractMap<java.lang.String,​java.lang.String>
    Key - value strings map.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class java.util.AbstractMap

        java.util.AbstractMap.SimpleEntry<K extends java.lang.Object,​V extends java.lang.Object>, java.util.AbstractMap.SimpleImmutableEntry<K extends java.lang.Object,​V extends java.lang.Object>
      • Nested classes/interfaces inherited from interface java.util.Map

        java.util.Map.Entry<K extends java.lang.Object,​V extends java.lang.Object>
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.concurrent.ConcurrentHashMap<java.lang.Class<?>,​Config> configMap
      Конфигурации, разбираются при первом обращении и кешируются далее.
      static ParameterMap EMPTY  
      protected java.lang.String mapPrint  
    • Constructor Summary

      Constructors 
      Constructor Description
      ParameterMap()  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      abstract java.util.Set<java.util.Map.Entry<java.lang.String,​java.lang.String>> entrySet()  
      java.lang.String fingerprint()  
      java.lang.String get​(java.lang.Object key)  
      abstract java.lang.String get​(java.lang.String key, java.lang.String def)  
      java.math.BigDecimal getBigDecimal​(java.lang.String key, java.math.BigDecimal def)  
      boolean getBoolean​(java.lang.String key, boolean defaultValue)  
      <K extends Config>
      K
      getConfig​(java.lang.Class<K> clazz)
      Creates if needed and gets pre parsed and cached configuration.
      java.lang.Object getConfig​(java.lang.String className)
      Same with getConfig(Class), but with string parameter for calling from JSP and JEXL.
      java.lang.String getDataString()
      Сериализация набора параметров в строку <ключ>=<значение> с переносами строк.
      java.lang.String getDataString​(java.lang.String prefix)
      Сериализация набора параметров в строку <ключ>=<значение> с переносами строк.
      static java.lang.String getDataString​(ParameterMap config)
      Для JSP получение конфига в текстовом виде.
      double getDouble​(java.lang.String key, double def)
      Deprecated.
      float getFloat​(java.lang.String key, float def)
      Deprecated.
      int getInt​(java.lang.String key)  
      int getInt​(java.lang.String key, int def)  
      long getLong​(java.lang.String key)  
      long getLong​(java.lang.String key, long def)  
      java.lang.String getSok​(java.lang.String... keys)
      Calls getSok(String, boolean, String...) with def = null and validate = false.
      java.lang.String getSok​(java.lang.String def, boolean validate, java.lang.String... keys)
      Retrieves value with Support of Old Keys.
      boolean getSokBoolean​(boolean def, boolean validate, java.lang.String... keys)
      Analog of getSok(String, boolean, String...) for boolean values.
      boolean getSokBoolean​(boolean def, java.lang.String... keys)
      Calls #getSokLong(boolean, boolean, String...) with validate=false.
      long getSokLong​(long def, boolean validate, java.lang.String... keys)
      Analog of getSok(String, boolean, String...) for long values.
      long getSokLong​(long def, java.lang.String... keys)
      Calls getSokLong(long, boolean, String...) with validate=false.
      static ParameterMap of​(java.lang.Object... keyValues)
      Creates ParameterMap object from key values pairs.
      java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​java.lang.String>> parseObjectsNoOrder​(java.lang.String prefix)
      Deprecated.
      <K extends Config>
      void
      removeConfig​(java.lang.Class<K> clazz)
      Removes config from cache.
      ParameterMap sub​(java.lang.String... prefixies)
      Извлечение поднабора параметров по префиксу.
      java.util.SortedMap<java.lang.Integer,​ParameterMap> subIndexed​(java.lang.String... prefixies)
      Возвращает новый мап.
      java.util.Map<java.lang.String,​ParameterMap> subKeyed​(java.lang.String... prefixies)
      Возвращает новый мап.
      <K extends Config>
      void
      validateConfig​(java.lang.Class<K> clazz)
      Creates a configuration for validation purposes only..
      • Methods inherited from class java.util.AbstractMap

        clear, clone, containsKey, containsValue, equals, hashCode, isEmpty, keySet, put, putAll, remove, size, toString, values
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Map

        compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
    • Field Detail

      • configMap

        protected volatile java.util.concurrent.ConcurrentHashMap<java.lang.Class<?>,​Config> configMap
        Конфигурации, разбираются при первом обращении и кешируются далее.
      • mapPrint

        protected java.lang.String mapPrint
    • Constructor Detail

      • ParameterMap

        public ParameterMap()
    • Method Detail

      • of

        public static ParameterMap of​(java.lang.Object... keyValues)
        Creates ParameterMap object from key values pairs.
        Parameters:
        keyValues - key1, value1,... String.valueOf() is applied to each argument.
        Returns:
      • get

        public abstract java.lang.String get​(java.lang.String key,
                                             java.lang.String def)
      • get

        public java.lang.String get​(java.lang.Object key)
        Specified by:
        get in interface java.util.Map<java.lang.String,​java.lang.String>
        Overrides:
        get in class java.util.AbstractMap<java.lang.String,​java.lang.String>
      • getSok

        public java.lang.String getSok​(java.lang.String def,
                                       boolean validate,
                                       java.lang.String... keys)
                                throws BGMessageException
        Retrieves value with Support of Old Keys.
        Parameters:
        def - default value
        validate - true - throw an exception on using old keys
        keys - first element is actual ond, after - old values
        Returns:
        Throws:
        BGMessageException
      • getInt

        public int getInt​(java.lang.String key,
                          int def)
      • getInt

        public int getInt​(java.lang.String key)
      • getLong

        public long getLong​(java.lang.String key,
                            long def)
      • getLong

        public long getLong​(java.lang.String key)
      • getBoolean

        public final boolean getBoolean​(java.lang.String key,
                                        boolean defaultValue)
      • getSokBoolean

        public boolean getSokBoolean​(boolean def,
                                     java.lang.String... keys)
                              throws BGMessageException
        Calls #getSokLong(boolean, boolean, String...) with validate=false.
        Throws:
        BGMessageException
      • getBigDecimal

        public java.math.BigDecimal getBigDecimal​(java.lang.String key,
                                                  java.math.BigDecimal def)
      • getFloat

        @Deprecated
        public float getFloat​(java.lang.String key,
                              float def)
        Deprecated.
        The data type is not needed in business app.
      • getDouble

        @Deprecated
        public double getDouble​(java.lang.String key,
                                double def)
        Deprecated.
        The data type is not needed in business app.
      • entrySet

        public abstract java.util.Set<java.util.Map.Entry<java.lang.String,​java.lang.String>> entrySet()
        Specified by:
        entrySet in interface java.util.Map<java.lang.String,​java.lang.String>
        Specified by:
        entrySet in class java.util.AbstractMap<java.lang.String,​java.lang.String>
      • fingerprint

        public java.lang.String fingerprint()
      • sub

        public ParameterMap sub​(java.lang.String... prefixies)
        Извлечение поднабора параметров по префиксу.
        Parameters:
        prefix -
        Returns:
      • getDataString

        public java.lang.String getDataString()
        Сериализация набора параметров в строку <ключ>=<значение> с переносами строк.
        Returns:
      • getDataString

        public java.lang.String getDataString​(java.lang.String prefix)
        Сериализация набора параметров в строку <ключ>=<значение> с переносами строк. К каждой строке добавляется префикс.
        Parameters:
        prefix -
        Returns:
      • getDataString

        public static final java.lang.String getDataString​(ParameterMap config)
        Для JSP получение конфига в текстовом виде. Нельзя использовать .dataString, т.к. ParameterMap будет отдавать как Map.
        Returns:
      • subIndexed

        public java.util.SortedMap<java.lang.Integer,​ParameterMap> subIndexed​(java.lang.String... prefixies)
        Возвращает новый мап. Берёт всё под префиксами и иставляет мэп из числовых ид за ними и последующих значений, формируя из них ParameterMap. Аналогична subKeyed, но составляет сортированный мэп с числовыми ключами.
         prefix.1.12=2
         prefix.1.34=4
         prefix.2.56=2
         prefix.2.78=4
         ->
         сортированный мэп
         1={12=2,34=4}
         2={56=2,78=4}
        Parameters:
        prefix - префикс определяющий мэп
        Returns:
        SortedMap. Никогда не null.
        See Also:
        #subKeyed(String)
      • subKeyed

        public java.util.Map<java.lang.String,​ParameterMap> subKeyed​(java.lang.String... prefixies)
        Возвращает новый мап. Берёт всё под префиксами и иставляет мэп из строковых ид за ними и последующих значений, формируя из них ParameterMap. Аналогична subIndexed, но составляет несортированный мэп со строковыми ключами.
         prefix.a.12=2
         prefix.a.34=4
         prefix.b.56=2
         prefix.b.78=4
         ->
         несортированный мэп
         a={12=2,34=4}
         b={56=2,78=4}
        Parameters:
        prefix - префикс определяющий мэп
        Returns:
        Map. Никогда не null.
        See Also:
        #subIndexed(String)
      • parseObjectsNoOrder

        @Deprecated
        public java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​java.lang.String>> parseObjectsNoOrder​(java.lang.String prefix)
        Deprecated.
        Parameters:
        prefix -
        Returns:
      • getConfig

        public final <K extends Config> K getConfig​(java.lang.Class<K> clazz)
        Creates if needed and gets pre parsed and cached configuration. Cache key - the class object of the configuration.
        Parameters:
        clazz -
        Returns:
      • getConfig

        public final java.lang.Object getConfig​(java.lang.String className)
        Same with getConfig(Class), but with string parameter for calling from JSP and JEXL.
        Parameters:
        className -
        Returns:
      • removeConfig

        public <K extends Config> void removeConfig​(java.lang.Class<K> clazz)
        Removes config from cache.
        Type Parameters:
        K -
        Parameters:
        clazz -
      • validateConfig

        public final <K extends Config> void validateConfig​(java.lang.Class<K> clazz)
                                                     throws BGMessageException
        Creates a configuration for validation purposes only..
        Parameters:
        clazz -
        Throws:
        BGMessageException