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 Details

  • Constructor Details

  • 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:
      значение атрибута без префикса.