Package ru.bitel.bgbilling.kernel.network.radius

# Class RadiusAttributeSet

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

All Implemented Interfaces:
  `Cloneable`

Direct Known Subclasses:
  `RadiusPacket`

public class RadiusAttributeSet extends Object implements Cloneable
Набор радиус атрибутов. RadiusPacket расширяет данный класс.
vendor - код вендора или -1 для стандартных атрибутов.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final Map<Integer,List<RadiusAttribute<?>>>`
  `standartAttributes`
  `protected final Map<Integer,Map<Integer,List<RadiusAttribute<?>>>>`
  `vendorAttributes`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  ``
  `RadiusAttributeSet()`
  `protected`
  `RadiusAttributeSet(Map<Integer,List<RadiusAttribute<?>>> standartAttributes, Map<Integer,Map<Integer,List<RadiusAttribute<?>>>> vendorAttributes)`

- ## Method Summary

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

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

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

- ## Field Details

  - ### standartAttributes

    protected final Map<Integer,List<RadiusAttribute<?>>> standartAttributes

  - ### vendorAttributes

    protected final Map<Integer,Map<Integer,List<RadiusAttribute<?>>>> vendorAttributes

- ## Constructor Details

  - ### RadiusAttributeSet

    protected RadiusAttributeSet(Map<Integer,List<RadiusAttribute<?>>> standartAttributes, Map<Integer,Map<Integer,List<RadiusAttribute<?>>>> vendorAttributes)

  - ### RadiusAttributeSet

    public RadiusAttributeSet()

- ## Method Details

  - ### newRadiusAttributeSet

    public static RadiusAttributeSet newRadiusAttributeSet(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(String attributes)

  - ### newRadiusAttributeSet

    public static RadiusAttributeSet newRadiusAttributeSet(Map<Integer,RadiusAttributeSet> setMap, Set<Integer> ids)
    Создание набора атрибутов из map наборов.
    Parameters:
      `setMap` -
      `ids` - коды наборов из map, которые нужно добавить в новый набор.
    Returns:

  - ### getRadiusAttributeSet

    public static RadiusAttributeSet getRadiusAttributeSet(Map<Integer,RadiusAttributeSet> setMap, Set<Integer> ids)

  - ### newRadiusAttributeSetMap

    public static Map<Integer,RadiusAttributeSet> newRadiusAttributeSetMap(ParameterMap params, String prefix, 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, String prefix, 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 Map<String,RadiusAttributeSet> newRadiusAttributeRealmMap(ParameterMap params, String prefix, 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, List<RadiusAttribute<?>> attributes)
    Установка атрибутов. Код вендора и тип атрибута должны совпадать со значениями в attributes!
    Parameters:
      `vendor` - - код вендора или -1 для стандартных атрибутов.
      `type` -
      `attributes` -

  - ### setAttribute

    public void setAttribute(RadiusAttribute<?> attribute)
    Установка атрибута
    Parameters:
      `attribute` -

  - ### getAttributes

    public 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 Integer getIntAttribute(int vendor, int type, Integer def)

  - ### getStringAttribute

    public String getStringAttribute(int vendor, int type, 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, 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(Object o)
    Overrides:
      `equals` in class `Object`

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### toString

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

  - ### isEmpty

    public boolean isEmpty()

  - ### getStringAttribute

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

  - ### getAttributeValue

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

  - ### getAttributeValue

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