Interface SupportedFeatures

  • All Superinterfaces:
    Cloneable, DiameterAvp, GroupedAvp

    public interface SupportedFeatures
    extends GroupedAvp
    Defines an interface representing the Supported-Features grouped AVP type. From the Diameter Sh Reference Point Protocol Details (3GPP TS 29.329 V11.6.0) specification:
     6.3.29        Supported-Features AVP
     
     The Supported-Features AVP is of type Grouped. If this AVP is present it may inform the
     destination host about the features that the origin host supports. The Feature-List AVP
     contains a list of supported features of the origin host. The Vendor-ID AVP and the
     Feature-List AVP shall together identify which feature list is carried in the
     Supported-Features AVP.
     
     Where a Supported-Features AVP is used to identify features that have been defined by
     3GPP, the Vendor-ID AVP shall contain the vendor ID of 3GPP. Vendors may define
     proprietary features, but it is strongly recommended that the possibility is used only as
     the last resort. Where the Supported-Features AVP is used to identify features that have
     been defined by a vendor other than 3GPP, it shall contain the vendor ID of the specific
     vendor in question. 
     
     If there are multiple feature lists defined by the same vendor, the Feature-List-ID AVP
     shall differentiate those lists from one another. The destination host shall use the value
     of the Feature-List-ID AVP to identify the feature list. 
     
     AVP format
     Supported-Features ::=  < AVP Header: 628 10415 >
                             { Vendor-Id }
                             { Feature-List-ID }
                             { Feature-List }
                             *[AVP]
     
    • Method Detail

      • hasVendorId

        boolean hasVendorId()
        Returns true if the Vendor-Id AVP is present in the Supported-Features AVP.
      • getVendorId

        long getVendorId()
        Returns the value of the Vendor-Id AVP, of type Unsigned32. Use hasVendorId() to check the existence of this AVP.
        Returns:
        the value of the Vendor-Id AVP
        Throws:
        IllegalStateException - if the Vendor-Id AVP has not been set.
      • setVendorId

        void setVendorId​(long vendorId)
        Sets the value of the Vendor-Id AVP, of type Unsigned32.
      • removeVendorId

        void removeVendorId()
        Removes the Vendor-Id AVP from the Supported-Features AVP. If the Vendor-Id AVP is not present, this method returns silently.
      • hasFeatureListId

        boolean hasFeatureListId()
        Returns true if the Feature-List-ID AVP is present in the Supported-Features AVP.
      • getFeatureListId

        long getFeatureListId()
        Returns the value of the Feature-List-ID AVP, of type Unsigned32. Use hasFeatureListId() to check the existence of this AVP.
        Returns:
        the value of the Feature-List-ID AVP
        Throws:
        IllegalStateException - if the Feature-List-ID AVP has not been set.
      • setFeatureListId

        void setFeatureListId​(long featureListId)
        Sets the value of the Feature-List-ID AVP, of type Unsigned32.
      • removeFeatureListId

        void removeFeatureListId()
        Removes the Feature-List-ID AVP from the Supported-Features AVP. If the Feature-List-ID AVP is not present, this method returns silently.
      • hasFeatureList

        boolean hasFeatureList()
        Returns true if the Feature-List AVP is present in the Supported-Features AVP.
      • getFeatureList

        long getFeatureList()
        Returns the value of the Feature-List AVP, of type Unsigned32. Use hasFeatureList() to check the existence of this AVP.
        Returns:
        the value of the Feature-List AVP
        Throws:
        IllegalStateException - if the Feature-List AVP has not been set.
      • setFeatureList

        void setFeatureList​(long featureList)
        Sets the value of the Feature-List AVP, of type Unsigned32.
      • removeFeatureList

        void removeFeatureList()
        Removes the Feature-List AVP from the Supported-Features AVP. If the Feature-List AVP is not present, this method returns silently.
      • getExtensionAvps

        DiameterAvp[] getExtensionAvps()
        Returns the set of extension AVPs. The returned array contains the extension AVPs in the order they appear in the Supported-Features AVP. A return value of null implies that no extensions AVPs have been set.
      • setExtensionAvps

        void setExtensionAvps​(DiameterAvp[] avps)
                       throws AvpNotAllowedException
        Sets the set of extension AVPs with all the values in the given array. The AVPs will be added to Supported-Features AVP in the order in which they appear in the array. Note: the array must not be altered by the caller following this call, and getExtensionAvps() is not guaranteed to return the same array instance, e.g. an "==" check would fail.
        Throws:
        AvpNotAllowedException - if an AVP is encountered of a type already known to this class (i.e. an AVP for which get/set methods already appear in this class)
        NullPointerException - if avps is null.
      • removeExtensionAvps

        void removeExtensionAvps()
        Removes all extension AVPs from the Supported-Features AVP. If no extension AVPs are present, this method returns silently.