Class Avp

java.lang.Object
com.bea.wcp.diameter.Avp
All Implemented Interfaces:
Serializable

public final class Avp extends Object implements Serializable
Represents a Diameter AVP (Attribute-Value Pair).
     0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                           AVP Code                            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |V M P r r r r r|                  AVP Length                   |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                        Vendor-ID (opt)                        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                          ... Data ...                         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
Author:
Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
See Also:
  • Constructor Details

    • Avp

      public Avp(Attribute attr, Object value)
      Creates a new AVP for the specified Attribute and value. The value must be valid for the specified attribute type.
      Parameters:
      attr - the Attribute for the AVP
      value - the value of the AVP
      Throws:
      IllegalArgumentException - if the value is inappropriate for the given attribute type
      See Also:
    • Avp

      public Avp(String name, Object value)
      Creates a new AVP for the specified attribute name and value. The value type must be valid for the specified attribute type.
      Parameters:
      name - the attribute name
      value - the AVP value
    • Avp

      public Avp(Avp avp)
      Creates a new Avp copied from the specified Avp.
  • Method Details

    • validate

      public void validate() throws AvpException
      Validates an AVP. A decoded AVP must be validated before getValue() or any of its variants can be called. A Diameter agent on the other hand may skip validation of one or more message AVPs.
      Throws:
      AvpException
    • isValidated

      public boolean isValidated()
      Returns:
      true if this AVP has already been validated
    • getAttribute

      public Attribute getAttribute()
      Returns the Attribute for this AVP.
    • getCode

      public int getCode()
      Returns the AVP code.
    • isVendorSpecific

      public boolean isVendorSpecific()
      Returns true if this AVP is vendor specific, false if it is defined by the Diameter base protocol (RFC 3588).
    • isGrouped

      public boolean isGrouped()
      Returns true if this is a grouped AVP, false otherwise.
    • getValue

      public Object getValue()
      Returns the AVP value, which is one of the following Java types depending on the attribute Diameter type:
         Diameter Type        Java Type
         -------------        ---------
         Signed32             Integer
         Unsigned32           Long
         Signed64             Long
         Unsigned64           BigInteger
         Address              InetAddress
         OctetString          ByteBuffer
         UTF8String           String
         Time                 Long
         Grouped              AvpList
       
    • setValue

      public void setValue(Object value)
    • getInt

      public int getInt()
      Returns the int value of an Integer32 AVP.
    • getUnsigned32

      public Long getUnsigned32()
      Returns the long value of an Unsigned32 AVP.
      Returns:
      the Long value.
    • getLong

      public long getLong()
      Returns the long value of an Integer64 AVP.
    • getUnsigned64

      public BigInteger getUnsigned64()
      Returns the BigInteger value of an Unsigned64 AVP.
      Returns:
      the BigInteger value
    • getString

      public String getString()
      Returns the String value of a UTF8String AVP.
    • getAddress

      public InetAddress getAddress()
      Returns the InetAddress value of an Address AVP.
    • getBytes

      public ByteBuffer getBytes()
      Returns the ByteBuffer value of an OctetString AVP.
    • getAvpList

      public AvpList getAvpList()
      Returns the AvpList value of a Grouped AVP.
    • getDate

      public Date getDate()
      Returns the Date value of a Time AVP.
    • hashCode

      public int hashCode()
      Returns the hash code for this AVP.
      Overrides:
      hashCode in class Object
      Returns:
      the AVP hash code
    • equals

      public boolean equals(Object obj)
      Compares this AVP to another object for equality. Two AVPs are equal if they have the same attribute and value.
      Overrides:
      equals in class Object
      Parameters:
      obj - the object to be compared to this AVP
      Returns:
      true if equal, false otherwise
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • appendXml

      public XmlBuffer appendXml(XmlBuffer xb)