ru.bitel.bgbilling.kernel.network.radius

## Class RadiusAttributeSet

- java.lang.Object
- - ru.bitel.bgbilling.kernel.network.radius.RadiusAttributeSet

- All Implemented Interfaces:
    java.lang.Cloneable
  Direct Known Subclasses:
    RadiusPacket

      public class RadiusAttributeSet
      extends java.lang.Object
      implements java.lang.Cloneable

  Набор радиус атрибутов. RadiusPacket расширяет данный класс.
  vendor - код вендора или -1 для стандартных атрибутов.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.Map<java.lang.Integer,java.util.List<RadiusAttribute<?>>>` | `standartAttributes`
    `protected java.util.Map<java.lang.Integer,java.util.Map<java.lang.Integer,java.util.List<RadiusAttribute<?>>>>` | `vendorAttributes`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `RadiusAttributeSet()`
    `protected` | `RadiusAttributeSet(java.util.Map<java.lang.Integer,java.util.List<RadiusAttribute<?>>> standartAttributes, java.util.Map<java.lang.Integer,java.util.Map<java.lang.Integer,java.util.List<RadiusAttribute<?>>>> vendorAttributes)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAttribute(RadiusAttribute<?> attribute)` Добавление атрибута в набор.
    `void` | `addAttributes(RadiusAttributeSet set)` Добавление атрибутов в данный набор.
    `boolean` | `contains(RadiusAttributeSet attributeSet)`
    `boolean` | `equals(java.lang.Object o)`
    `<A extends RadiusAttribute> A` | `getAttribute(int vendor, int type)` Получение атрибута по коду вендора и типу.
    `java.util.List<RadiusAttribute<?>>` | `getAttributes(int vendor, int type)` Получение списка атрибутов указанного вендора и типа.
    `java.lang.Object` | `getAttributeValue(int vendor, int type, java.lang.String prefix, java.lang.Object def)` Получение значения атрибута с учетом префикса, если установлен.
    `java.lang.Object` | `getAttributeValue(int vendor, int type, java.lang.String prefix, java.util.regex.Pattern regex, java.lang.Object def)` Получение значения атрибута с учетом префикса, если установлен.
    `byte[]` | `getByteAttribute(int vendor, int type, byte[] def)`
    `java.lang.Integer` | `getIntAttribute(int vendor, int type, java.lang.Integer def)`
    `static RadiusAttributeSet` | `getRadiusAttributeSet(java.util.Map<java.lang.Integer,RadiusAttributeSet> setMap, java.util.Set<java.lang.Integer> ids)`
    `static RadiusAttributeSet` | `getRadiusAttributeSet(java.lang.String attributes)`
    `java.lang.String` | `getStringAttribute(int vendor, int type, java.lang.String def)`
    `java.lang.String` | `getStringAttribute(int vendor, int type, java.lang.String prefix, java.lang.String def)` Получение значения строкового атрибута с указанным префиксом.
    `boolean` | `isEmpty()`
    `static java.util.Map<java.lang.String,RadiusAttributeSet>` | `newRadiusAttributeRealmMap(ParameterMap params, java.lang.String prefix, java.lang.String param)`
    `static RadiusAttributeSet` | `newRadiusAttributeSet(java.util.Map<java.lang.Integer,RadiusAttributeSet> setMap, java.util.Set<java.lang.Integer> ids)` Создание набора атрибутов из map наборов.
    `static RadiusAttributeSet` | `newRadiusAttributeSet(java.lang.String attributes)` Создание набора атрибутов из строки, вида: mpd-limit=out#1=all rate-limit 10000000 pass;mpd-limit=in#1=all rate-limit 10000000 pass Атрибуты разделены точкой с запятой.
    `static java.util.Map<java.lang.Integer,RadiusAttributeSet>` | `newRadiusAttributeSetMap(ParameterMap params, java.lang.String prefix, java.lang.String param)` Создание map наборов атрибутов из конфига.
    `static RadiusAttributeSetRealmMap` | `newRadiusAttributeSetRealmMap(ParameterMap params, java.lang.String prefix, java.lang.String param)` Создание map наборов атрибутов по реалмам из конфига.
    `void` | `removeAttributes(int vendor, int type)`
    `void` | `setAttribute(RadiusAttribute<?> attribute)` Установка атрибута
    `void` | `setAttributes(int vendor, int type, java.util.List<RadiusAttribute<?>> attributes)` Установка атрибутов.
    `void` | `setAttributes(RadiusAttributeSet set)` Установка (с заменой совпадающих) атрибутов в данный набор.
    `void` | `setByteAttribute(int vendor, int type, byte[] value)`
    `void` | `setIntAttribute(int vendor, int type, int value)`
    `void` | `setStringAttribute(int vendor, int type, java.lang.String value)`
    `java.lang.String` | `toString()`
    `protected void` | `toString(java.util.Set<java.util.Map.Entry<java.lang.Integer,java.util.List<RadiusAttribute<?>>>> entrySet, java.lang.StringBuilder sb)`

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

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

- - ### Field Detail

    - #### standartAttributes

          protected final java.util.Map<java.lang.Integer,java.util.List<RadiusAttribute<?>>> standartAttributes

    - #### vendorAttributes

          protected final java.util.Map<java.lang.Integer,java.util.Map<java.lang.Integer,java.util.List<RadiusAttribute<?>>>> vendorAttributes

  - ### Constructor Detail

    - #### RadiusAttributeSet

          protected RadiusAttributeSet(java.util.Map<java.lang.Integer,java.util.List<RadiusAttribute<?>>> standartAttributes,
                                       java.util.Map<java.lang.Integer,java.util.Map<java.lang.Integer,java.util.List<RadiusAttribute<?>>>> vendorAttributes)

    - #### RadiusAttributeSet

          public RadiusAttributeSet()

  - ### Method Detail

    - #### newRadiusAttributeSet

          public static RadiusAttributeSet newRadiusAttributeSet(java.lang.String attributes)

      Создание набора атрибутов из строки, вида:
      mpd-limit=out#1=all rate-limit 10000000 pass;mpd-limit=in#1=all rate-limit 10000000 pass
      Атрибуты разделены точкой с запятой.
      Parameters:
        `attributes` -
      Returns:

    - #### getRadiusAttributeSet

          public static RadiusAttributeSet getRadiusAttributeSet(java.lang.String attributes)

    - #### newRadiusAttributeSet

          public static RadiusAttributeSet newRadiusAttributeSet(java.util.Map<java.lang.Integer,RadiusAttributeSet> setMap,
                                                                 java.util.Set<java.lang.Integer> ids)

      Создание набора атрибутов из map наборов.
      Parameters:
        `setMap` -
        `ids` - коды наборов из map, которые нужно добавить в новый набор.
      Returns:

    - #### getRadiusAttributeSet

          public static RadiusAttributeSet getRadiusAttributeSet(java.util.Map<java.lang.Integer,RadiusAttributeSet> setMap,
                                                                 java.util.Set<java.lang.Integer> ids)

    - #### newRadiusAttributeSetMap

          public static java.util.Map<java.lang.Integer,RadiusAttributeSet> newRadiusAttributeSetMap(ParameterMap params,
                                                                                                     java.lang.String prefix,
                                                                                                     java.lang.String param)

      Создание map наборов атрибутов из конфига.
      newRadiusAttributeSetMap( conf, "attrset.", "attributes" ) загрузит атрибуты из конфига вида:
      attrset.1.attributes=... attrset.2.attributes=... attrset.3.attributes=...
      Parameters:
        `params` -
        `prefix` -
        `param` -
      Returns:

    - #### newRadiusAttributeSetRealmMap

          public static RadiusAttributeSetRealmMap newRadiusAttributeSetRealmMap(ParameterMap params,
                                                                                 java.lang.String prefix,
                                                                                 java.lang.String param)

      Создание map наборов атрибутов по реалмам из конфига.
      newRadiusAttributeSetRealmMap( conf, "attrset.", "attributes" ) загрузит атрибуты из конфига вида:
      attrset.1.attributes=... attrset.2.attributes=... attrset.2.local.attributes=... attrset.3.attributes=...
      Parameters:
        `params` -
        `prefix` -
        `param` -
      Returns:

    - #### newRadiusAttributeRealmMap

          public static java.util.Map<java.lang.String,RadiusAttributeSet> newRadiusAttributeRealmMap(ParameterMap params,
                                                                                                      java.lang.String prefix,
                                                                                                      java.lang.String param)

    - #### addAttributes

          public void addAttributes(RadiusAttributeSet set)

      Добавление атрибутов в данный набор.
      Parameters:
        `set` -

    - #### setAttributes

          public void setAttributes(RadiusAttributeSet set)

      Установка (с заменой совпадающих) атрибутов в данный набор.
      Parameters:
        `set` -

    - #### addAttribute

          public void addAttribute(RadiusAttribute<?> attribute)

      Добавление атрибута в набор.
      Parameters:
        `attribute` -

    - #### setAttributes

          public void setAttributes(int vendor,
                                    int type,
                                    java.util.List<RadiusAttribute<?>> attributes)

      Установка атрибутов. Код вендора и тип атрибута должны совпадать со значениями в attributes!
      Parameters:
        `vendor` - - код вендора или -1 для стандартных атрибутов.
        `type` -
        `attributes` -

    - #### setAttribute

          public void setAttribute(RadiusAttribute<?> attribute)

      Установка атрибута
      Parameters:
        `attribute` -

    - #### getAttributes

          public java.util.List<RadiusAttribute<?>> getAttributes(int vendor,
                                                                  int type)

      Получение списка атрибутов указанного вендора и типа.
      Parameters:
        `vendor` - код вендора или -1 для стандартных атрибутов.
        `type` -
      Returns:

    - #### getAttribute

          public <A extends RadiusAttribute> A getAttribute(int vendor,
                                                            int type)

      Получение атрибута по коду вендора и типу.
      Type Parameters:
        `A` -
      Parameters:
        `vendor` - код вендора или -1 для стандартных атрибутов.
        `type` -
      Returns:

    - #### getIntAttribute

          public java.lang.Integer getIntAttribute(int vendor,
                                                   int type,
                                                   java.lang.Integer def)

    - #### getStringAttribute

          public java.lang.String getStringAttribute(int vendor,
                                                     int type,
                                                     java.lang.String def)

    - #### getByteAttribute

          public byte[] getByteAttribute(int vendor,
                                         int type,
                                         byte[] def)

    - #### setIntAttribute

          public void setIntAttribute(int vendor,
                                      int type,
                                      int value)

    - #### setStringAttribute

          public void setStringAttribute(int vendor,
                                         int type,
                                         java.lang.String value)

    - #### setByteAttribute

          public void setByteAttribute(int vendor,
                                       int type,
                                       byte[] value)

    - #### removeAttributes

          public void removeAttributes(int vendor,
                                       int type)

    - #### contains

          public boolean contains(RadiusAttributeSet attributeSet)

    - #### equals

          public boolean equals(java.lang.Object o)

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

    - #### toString

          public java.lang.String toString()

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

    - #### toString

          protected final void toString(java.util.Set<java.util.Map.Entry<java.lang.Integer,java.util.List<RadiusAttribute<?>>>> entrySet,
                                        java.lang.StringBuilder sb)

    - #### isEmpty

          public boolean isEmpty()

    - #### getStringAttribute

          public java.lang.String getStringAttribute(int vendor,
                                                     int type,
                                                     java.lang.String prefix,
                                                     java.lang.String def)

      Получение значения строкового атрибута с указанным префиксом.
      Parameters:
        `vendor` - код вендора или -1 для стандартных атрибутов.
        `type` - тип атрибута.
        `prefix` - необязательный префикс, может быть null.
        `def` - значение, которое будет возвращено, если атрибут с префиксом не найден.
      Returns:
        значение атрибута без префикса.

    - #### getAttributeValue

          public java.lang.Object getAttributeValue(int vendor,
                                                    int type,
                                                    java.lang.String prefix,
                                                    java.lang.Object def)

      Получение значения атрибута с учетом префикса, если установлен.
      Parameters:
        `vendor` - код вендора или -1 для стандартных атрибутов.
        `type` - тип атрибута.
        `prefix` - необязательный префикс, может быть null. Если указан, то атрибут должен быть строковым.
        `def` - значение по умолчанию, если атрибут не найден.
      Returns:
        значение атрибута без префикса.

    - #### getAttributeValue

          public java.lang.Object getAttributeValue(int vendor,
                                                    int type,
                                                    java.lang.String prefix,
                                                    java.util.regex.Pattern regex,
                                                    java.lang.Object def)

      Получение значения атрибута с учетом префикса, если установлен.
      Parameters:
        `vendor` - код вендора или -1 для стандартных атрибутов.
        `type` - тип атрибута.
        `prefix` - необязательный префикс, может быть null. Если указан, то атрибут должен быть строковым.
        `regex` - необязательный regex, но при его использовании значение атрибута должна быть строка.
        `def` - значение по умолчанию, если атрибут не найден.
      Returns:
        значение атрибута без префикса.