Interface OfflineCharging

  • All Superinterfaces:
    Cloneable, DiameterAvp, GroupedAvp

    public interface OfflineCharging
    extends GroupedAvp
    Defines an interface representing the Offline-Charging grouped AVP type. From the Diameter Ro Reference Point Protocol Details (3GPP TS 32.299 V9.6.0) specification:
     7.2.121      Offline-Charging AVP
     
     The Offline-Charging AVP (AVP code 1278) is a grouped AVP, which is used to set the parameters required to control
     offline charging.
     
     It has the following ABNF grammar:
     
         Offline-Charging ::= < AVP Header: 1278>
                              [ Quota-Consumption-Time ]
                              [ Time-Quota-Mechanism ]
                              [ Envelope-Reporting ]
                             *[ Multiple-Services-Credit-Control ]
                             *[ AVP ]
     At most one of Quota-Consumption-Time AVP or Time-Quota-Mechanism AVP shall be present, if individual instances
     are not included within the Multiple-Services-Credit-Control AVP.
     The Multiple-Services-Credit-Control AVPs, if present, shall contain the Rating-Group AVP to identify the category,
     optionally one of Quota-Consumption-Time AVP and Time-Quota-Mechanism AVP, and optionally the Envelope-
     Reporting AVP.
     
     Any values specified in the Offline-Charging AVP take precedence over the configured defaults. The values of the
     parameters specified at Multiple-Services-Credit-Control level take precedence over the values specified directly at
     Offline-Charging level. If neither Quota-Consumption-Time AVP nor Time-Quota-Mechanism AVP is included in the
     Multiple-Services-Credit-Control AVP, then the general reporting requirements dictated by the Quota-Consumption-
     Time AVP or Time-Quota-Mechanism AVP and Envelope-Reporting AVP directly within the Offline-Charging AVP
     shall apply.
     
     
    • Method Detail

      • hasQuotaConsumptionTime

        boolean hasQuotaConsumptionTime()
        Returns true if the Quota-Consumption-Time AVP is present in the Offline-Charging AVP.
      • getQuotaConsumptionTime

        long getQuotaConsumptionTime()
        Returns the value of the Quota-Consumption-Time AVP, of type Unsigned32. Use hasQuotaConsumptionTime() to check the existence of this AVP.
        Returns:
        the value of the Quota-Consumption-Time AVP
        Throws:
        IllegalStateException - if the Quota-Consumption-Time AVP has not been set.
      • setQuotaConsumptionTime

        void setQuotaConsumptionTime​(long quotaConsumptionTime)
        Sets the value of the Quota-Consumption-Time AVP, of type Unsigned32.
      • removeQuotaConsumptionTime

        void removeQuotaConsumptionTime()
        Removes the Quota-Consumption-Time AVP from the Offline-Charging AVP. If the Quota-Consumption-Time AVP is not present, this method returns silently.
      • hasTimeQuotaMechanism

        boolean hasTimeQuotaMechanism()
        Returns true if the Time-Quota-Mechanism AVP is present in the Offline-Charging AVP.
      • getTimeQuotaMechanism

        TimeQuotaMechanism getTimeQuotaMechanism()
        Returns the value of the Time-Quota-Mechanism AVP, of type Grouped.
        Returns:
        the value of the Time-Quota-Mechanism AVP, or null if it has not been set.
      • setTimeQuotaMechanism

        void setTimeQuotaMechanism​(TimeQuotaMechanism timeQuotaMechanism)
        Sets the value of the Time-Quota-Mechanism AVP, of type Grouped.
        Throws:
        NullPointerException - if timeQuotaMechanism is null.
      • removeTimeQuotaMechanism

        void removeTimeQuotaMechanism()
        Removes the Time-Quota-Mechanism AVP from the Offline-Charging AVP. If the Time-Quota-Mechanism AVP is not present, this method returns silently.
      • hasEnvelopeReporting

        boolean hasEnvelopeReporting()
        Returns true if the Envelope-Reporting AVP is present in the Offline-Charging AVP.
      • getEnvelopeReporting

        EnvelopeReporting getEnvelopeReporting()
        Returns the value of the Envelope-Reporting AVP, of type Enumerated.
        Returns:
        the value of the Envelope-Reporting AVP, or null if it has not been set.
      • setEnvelopeReporting

        void setEnvelopeReporting​(EnvelopeReporting envelopeReporting)
        Sets the value of the Envelope-Reporting AVP, of type Enumerated.
        Throws:
        NullPointerException - if envelopeReporting is null.
      • removeEnvelopeReporting

        void removeEnvelopeReporting()
        Removes the Envelope-Reporting AVP from the Offline-Charging AVP. If the Envelope-Reporting AVP is not present, this method returns silently.
      • getMultipleServicesCreditControls

        MultipleServicesCreditControl[] getMultipleServicesCreditControls()
        Returns the set of Multiple-Services-Credit-Control AVPs. The returned array contains the AVPs in the order they appear in the Offline-Charging AVP. A return value of null implies that no Multiple-Services-Credit-Control AVPs have been set. The elements in the given array are MultipleServicesCreditControl objects.
      • setMultipleServicesCreditControl

        void setMultipleServicesCreditControl​(MultipleServicesCreditControl multipleServicesCreditControl)
        Sets a single Multiple-Services-Credit-Control AVP in the Offline-Charging AVP, of type Grouped.
        Throws:
        NullPointerException - if multipleServicesCreditControl is null.
      • setMultipleServicesCreditControls

        void setMultipleServicesCreditControls​(MultipleServicesCreditControl[] multipleServicesCreditControls)
        Sets the set of Multiple-Services-Credit-Control AVPs, with all the values in the given array. The AVPs will be added to the Offline-Charging 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 getMultipleServicesCreditControls() is not guaranteed to return the same array instance, e.g. an "==" check would fail.
        Throws:
        NullPointerException - if multipleServicesCreditControls is null.
      • removeMultipleServicesCreditControls

        void removeMultipleServicesCreditControls()
        Removes all Multiple-Services-Credit-Control AVPs from the Offline-Charging AVP. If no Multiple-Services-Credit-Control AVPs are 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 Offline-Charging 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 Offline-Charging 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 Offline-Charging AVP. If no extension AVPs are present, this method returns silently.