ru.bitel.common

## Class ParameterMap

- java.lang.Object
- - ru.bitel.common.ParameterMap

- Direct Known Subclasses:
    ParameterMap.DefaultParameterMap, Preferences

      public abstract class ParameterMap
      extends java.lang.Object

  Исходный map параметров.
  Его главная ф-ция - get( key, value ). Остальные используют эту функцию для парсинга значений (float, double). Можно врапить различные объекты, например сделать ParameterMap из XML элемента, из Map, из HttpRequest.
  TODO: хорошо бы HttpRequest обернуть ParameterMap, тогда в акшенах, которые используются также для рассылки почты request можно было использовать прозрачно HttpRequest или парамерты рассылки почты

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ParameterMap.DefaultParameterMap`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.lang.String` | `mapPrint`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ParameterMap()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addActionListener(java.awt.event.ActionListener al)`
    `abstract java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.String>>` | `entrySet()`
    `protected void` | `extract(java.util.Map<java.lang.String,java.lang.String> data)`
    `java.lang.String` | `fingerprint()`
    `java.lang.String` | `get(java.lang.String 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 def)`
    `char` | `getChar(java.lang.String key, char def)`
    `double` | `getDouble(java.lang.String key, double def)`
    `<T extends java.lang.Enum<T>> T` | `getEnum(java.lang.Class<T> enumType, java.lang.String key, T def)`
    `float` | `getFloat(java.lang.String key, float def)`
    `int` | `getInt(java.lang.String key, int def)`
    `java.util.List<java.lang.Integer>` | `getIntegerList(java.lang.String key, java.util.List<java.lang.Integer> defList)` Получение списка целых чисел из числовой строки разделенной запятыми.
    `java.time.LocalDate` | `getLocalDate(java.lang.String key, java.time.LocalDate def)`
    `long` | `getLong(java.lang.String key, long def)`
    `java.util.Map<java.lang.String,java.lang.String>` | `getMap()` Возвращает в виде жавовского Map все значения.
    `ParameterMap` | `inherit(ParameterMap parameterMap)` Создает новый ParameterMap, где текущий становится родительским к аргументу parameterMap.
    `ParameterMap` | `sub(java.lang.String prefix)` Возвращает новый подмап объектов, с ключами, начинающимися с префикса.
    `java.util.SortedMap<java.lang.Integer,ParameterMap>` | `subIndexed(java.lang.String prefix)` Возвращает новый мап.
    `java.util.Map<java.lang.String,ParameterMap>` | `subKeyed(java.lang.String prefix)` Возвращает новый мап.
    `ParameterMap` | `subLined(java.lang.String key, java.lang.String defValue)` Возвращает новый подмап объектов, с ключами разбитыми из строки вида "custom:Пользовательские;test:Тестовые;0:Активен".
    `protected void` | `throwActionEvent(java.awt.event.ActionEvent e)`
    `void` | `toReference(javax.naming.Reference ref)`
    `java.lang.String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### mapPrint

          protected java.lang.String mapPrint

  - ### Constructor Detail

    - #### ParameterMap

          public ParameterMap()

  - ### Method Detail

    - #### addActionListener

          public void addActionListener(java.awt.event.ActionListener al)

    - #### throwActionEvent

          protected void throwActionEvent(java.awt.event.ActionEvent e)

    - #### get

          public java.lang.String get(java.lang.String key)

    - #### get

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

    - #### getInt

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

    - #### getFloat

          public float getFloat(java.lang.String key,
                                float def)

    - #### getLong

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

    - #### getDouble

          public double getDouble(java.lang.String key,
                                  double def)

    - #### getBigDecimal

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

    - #### getBoolean

          public boolean getBoolean(java.lang.String key,
                                    boolean def)

    - #### getChar

          public char getChar(java.lang.String key,
                              char def)

    - #### getLocalDate

          public java.time.LocalDate getLocalDate(java.lang.String key,
                                                  java.time.LocalDate def)

    - #### getEnum

          public <T extends java.lang.Enum<T>> T getEnum(java.lang.Class<T> enumType,
                                                         java.lang.String key,
                                                         T def)

    - #### getIntegerList

          public java.util.List<java.lang.Integer> getIntegerList(java.lang.String key,
                                                                  java.util.List<java.lang.Integer> defList)

      Получение списка целых чисел из числовой строки разделенной запятыми.
      Parameters:
        `key` -
        `defList` -
      Returns:
        если параметр не задан вернет defList, иначе пустой лист или со значениями.

    - #### entrySet

          public abstract java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.String>> entrySet()

    - #### extract

          protected void extract(java.util.Map<java.lang.String,java.lang.String> data)

    - #### getMap

          public java.util.Map<java.lang.String,java.lang.String> getMap()

      Возвращает в виде жавовского Map все значения.

    - #### fingerprint

          public java.lang.String fingerprint()

    - #### sub

          public ParameterMap sub(java.lang.String prefix)

      Возвращает новый подмап объектов, с ключами, начинающимися с префикса. Ключи теряют этот префикс, остаётся часть после префикса. Хак: для клонирования параметрМапа можно передать пустую строку.

           prefix.1=2
           prefix.3=4
           ->
           1=2
           3=4

      Parameters:
        `prefix` - префикс.
      Returns:
        подмножество исходного мэпа c отрезанными из ключей префиксами. Никогда не null.

    - #### subIndexed

          public java.util.SortedMap<java.lang.Integer,ParameterMap> subIndexed(java.lang.String prefix)

      Возвращает новый мап. Берёт всё под префиксами и составляет мэп из числовых ид за ними и последующих значений, формируя из них 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 prefix)

      Возвращает новый мап. Берёт всё под префиксами и иставляет мэп из строковых ид за ними и последующих значений, формируя из них 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)`

    - #### toReference

          public void toReference(javax.naming.Reference ref)

    - #### inherit

          public ParameterMap inherit(ParameterMap parameterMap)

      Создает новый ParameterMap, где текущий становится родительским к аргументу parameterMap.
      Т.е. при вызове `get(String, String)` у результата значение будет взято у аргумента parameterMap, а при отсутсвии - у текущего (ставшего родительским).
      `

           ParameterMap parent;
           ParameterMap child;
           ...
           ParameterMap current = parent.inherit( child );

      `
      Parameters:
        `parameterMap` -
      Returns:

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### subLined

          public ParameterMap subLined(java.lang.String key,
                                       java.lang.String defValue)

      Возвращает новый подмап объектов, с ключами разбитыми из строки вида "custom:Пользовательские;test:Тестовые;0:Активен".

           key=1:2;3:4
           ->
           1=2
           3=4

      Parameters:
        `key` - ключ.
        `defValue` - по дефолту значение ключа в исходном виде , или null если пусть вернётся пустой мап
      Returns:
        подмножество исходного мэпа c сформированными ключами из значения. Врзвращается упорядоченный LinkedHashMap, т.е. entrySet выдаст в порядке как описано в строке. Никогда не null.