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 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 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

    Modifier and Type Method 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.lang.String attributes)  
    static RadiusAttributeSet getRadiusAttributeSet​(java.util.Map<java.lang.Integer,​RadiusAttributeSet> setMap, java.util.Set<java.lang.Integer> ids)  
    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.lang.String attributes)
    Создание набора атрибутов из строки, вида:
    mpd-limit=out#1=all rate-limit 10000000 pass;mpd-limit=in#1=all rate-limit 10000000 pass
    Атрибуты разделены точкой с запятой.
    static RadiusAttributeSet newRadiusAttributeSet​(java.util.Map<java.lang.Integer,​RadiusAttributeSet> setMap, java.util.Set<java.lang.Integer> ids)
    Создание набора атрибутов из map наборов.
    static java.util.Map<java.lang.Integer,​RadiusAttributeSet> newRadiusAttributeSetMap​(ParameterMap params, java.lang.String prefix, java.lang.String param)
    Создание map наборов атрибутов из конфига.
    newRadiusAttributeSetMap( conf, "attrset
    static RadiusAttributeSetRealmMap newRadiusAttributeSetRealmMap​(ParameterMap params, java.lang.String prefix, java.lang.String param)
    Создание map наборов атрибутов по реалмам из конфига.
    newRadiusAttributeSetRealmMap( conf, "attrset
    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 Details

    • 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 Details

    • 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 Details

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