Interface AllocationRetentionPriority

  • All Superinterfaces:
    Cloneable, DiameterAvp, GroupedAvp

    public interface AllocationRetentionPriority
    extends GroupedAvp
    Defines an interface representing the Allocation-Retention-Priority grouped AVP type. From the Diameter Rf Reference Point Protocol Details (3GPP TS 32.299 V12.11.0) specification:
     5.3.32  Allocation-Retention-Priority AVP (All access types)
     
     The Allocation-Retention-Priority AVP (AVP code 1034) is of type Grouped, and it is used to indicate 
     the priority of allocation and retention, the pre-emption capability and pre-emption vulnerability 
     for the SDF if provided within the QoS-Information-AVP or for the EPS default bearer if provided 
     within the Default-EPS-Bearer-QoS AVP.
     The Priority-Level AVP of the default bearer will be set to a sufficiently high level of priority 
     to minimize the risk for unexpected PDN disconnection or UE detach from the network according to operator specific policies.
     AVP Format:
     
         Allocation-Retention-Priority ::= < AVP Header: 1034 >
                                             {Priority-Level}
                                             [Pre-emption-Capability]
                                             [Pre-emption-Vulnerability]
     
    Note:
    The support for extension AVPs is present even thou the ABNF grammar for this AVP does not contain the "* [ AVP ]" line. Be aware that adding any extension AVPs may result in interoperability problems with products that strongly validate the incoming diameter message for it's adherence to the specification.
    • Method Detail

      • hasPriorityLevel

        boolean hasPriorityLevel()
        Returns true if the Priority-Level AVP is present in the Allocation-Retention-Priority AVP.
      • getPriorityLevel

        long getPriorityLevel()
        Returns the value of the Priority-Level AVP, of type Unsigned32. Use hasPriorityLevel() to check the existence of this AVP.
        Returns:
        the value of the Priority-Level AVP
        Throws:
        IllegalStateException - if the Priority-Level AVP has not been set.
      • setPriorityLevel

        void setPriorityLevel​(long priorityLevel)
        Sets the value of the Priority-Level AVP, of type Unsigned32.
      • removePriorityLevel

        void removePriorityLevel()
        Removes the Priority-Level AVP from the Allocation-Retention-Priority AVP. If the Priority-Level AVP is not present, this method returns silently.
      • hasPreEmptionCapability

        boolean hasPreEmptionCapability()
        Returns true if the Pre-emption-Capability AVP is present in the Allocation-Retention-Priority AVP.
      • getPreEmptionCapability

        PreEmptionCapability getPreEmptionCapability()
        Returns the value of the Pre-emption-Capability AVP, of type Enumerated.
        Returns:
        the value of the Pre-emption-Capability AVP, or null if it has not been set.
      • setPreEmptionCapability

        void setPreEmptionCapability​(PreEmptionCapability preEmptionCapability)
        Sets the value of the Pre-emption-Capability AVP, of type Enumerated.
        Throws:
        NullPointerException - if preEmptionCapability is null.
      • removePreEmptionCapability

        void removePreEmptionCapability()
        Removes the Pre-emption-Capability AVP from the Allocation-Retention-Priority AVP. If the Pre-emption-Capability AVP is not present, this method returns silently.
      • hasPreEmptionVulnerability

        boolean hasPreEmptionVulnerability()
        Returns true if the Pre-emption-Vulnerability AVP is present in the Allocation-Retention-Priority AVP.
      • getPreEmptionVulnerability

        PreEmptionVulnerability getPreEmptionVulnerability()
        Returns the value of the Pre-emption-Vulnerability AVP, of type Enumerated.
        Returns:
        the value of the Pre-emption-Vulnerability AVP, or null if it has not been set.
      • setPreEmptionVulnerability

        void setPreEmptionVulnerability​(PreEmptionVulnerability preEmptionVulnerability)
        Sets the value of the Pre-emption-Vulnerability AVP, of type Enumerated.
        Throws:
        NullPointerException - if preEmptionVulnerability is null.
      • removePreEmptionVulnerability

        void removePreEmptionVulnerability()
        Removes the Pre-emption-Vulnerability AVP from the Allocation-Retention-Priority AVP. If the Pre-emption-Vulnerability 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 Allocation-Retention-Priority 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 Allocation-Retention-Priority 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 Allocation-Retention-Priority AVP. If no extension AVPs are present, this method returns silently.