Class ParameterMap

java.lang.Object
ru.bitel.common.ParameterMap
Direct Known Subclasses:
ParameterMap.DefaultParameterMap, Preferences

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

TODO: хорошо бы HttpRequest обернуть ParameterMap, тогда в акшенах, которые используются также для рассылки почты request можно было использовать прозрачно HttpRequest или парамерты рассылки почты
  • Constructor Details

    • ParameterMap

      public ParameterMap()
  • Method Details

    • addActionListener

      public void addActionListener(ActionListener al)
    • throwActionEvent

      protected void throwActionEvent(ActionEvent e)
    • get

      public String get(String key)
      Получение значения из конфига.
      Parameters:
      key - ключ
      Returns:
      значение или null, если отсутствует.
    • get

      public abstract String get(String key, String def)
    • getInt

      public int getInt(String key, int def)
    • getFloat

      public float getFloat(String key, float def)
    • getLong

      public long getLong(String key, long def)
    • getDouble

      public double getDouble(String key, double def)
    • getBigDecimal

      public BigDecimal getBigDecimal(String key, BigDecimal def)
    • getBoolean

      public boolean getBoolean(String key, boolean def)
    • getChar

      public char getChar(String key, char def)
    • getLocalDate

      public LocalDate getLocalDate(String key, LocalDate def)
    • getEnum

      public <T extends Enum<T>> T getEnum(Class<T> enumType, String key, T def)
      Получение значения представляющего строковое значение enum-типа
      Type Parameters:
      T - тип, представляющий enum (!)
      Parameters:
      enumType - класс енума, указанный напрямую (если получать например из def то не получится передать def=null)
      key - ключ
      def - значение по умолчанию
      Returns:
      значение enum-типа или значение по умолчанию
    • getIntegerList

      public List<Integer> getIntegerList(String key, List<Integer> defList)
      Получение списка целых чисел из числовой строки разделенной запятыми.
      Parameters:
      key -
      defList -
      Returns:
      если параметр не задан вернет defList, иначе пустой лист или со значениями.
    • entrySet

      public abstract Set<Map.Entry<String,String>> entrySet()
    • extract

      protected void extract(Map<String,String> data)
    • getMap

      public Map<String,String> getMap()
      Возвращает в виде жавовского Map все значения. По-нормальному перегрузить, чтобы брал напрямую оттуда где хранит имплементация, а не юзалась общая entrySet.
    • sub

      public ParameterMap sub(String prefix)
      Возвращает новый подмап объектов, с ключами, начинающимися с префикса. Ключи теряют этот префикс, остаётся часть после префикса. Не забывайте завершающую точку передавать с префиксом. Хак: для клонирования параметрМапа можно передать пустую строку.
       prefix.1=2
       prefix.3=4
       ->
       1=2
       3=4
      Parameters:
      prefix - префикс.
      Returns:
      подмножество исходного мэпа c отрезанными из ключей префиксами. Никогда не null.
    • filter

      public ParameterMap filter(String prefix)
      Аналог sub, но префикс не отрезается, просто в новом ParameterMap остаются ключи с указанным префиксом.
    • subIndexed

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

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

      public void toReference(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 String toString()
      Overrides:
      toString in class Object
    • subLined

      public ParameterMap subLined(String key, String defValue)
      Возвращает новый подмап объектов, с ключами разбитыми из строки вида "custom:Пользовательские;test:Тестовые;0:Активен".
       key=1:2;3:4
       ->
       1=2
       3=4
      Parameters:
      key - ключ.
      defValue - по дефолту значение ключа в исходном виде , или null если пусть вернётся пустой мап
      Returns:
      подмножество исходного мэпа c сформированными ключами из значения. Врзвращается упорядоченный LinkedHashMap, т.е. entrySet выдаст в порядке как описано в строке. Никогда не null.