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 V7.9.0) specification:7.2.93 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.
-
-
Field Summary
-
Fields inherited from interface org.jainslee.resources.diameter.base.DiameterAvp
FLAG_RULE_MAY, FLAG_RULE_MUST, FLAG_RULE_MUSTNOT
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description EnvelopeReportinggetEnvelopeReporting()Returns the value of the Envelope-Reporting AVP, of type Enumerated.DiameterAvp[]getExtensionAvps()Returns the set of extension AVPs.MultipleServicesCreditControl[]getMultipleServicesCreditControls()Returns the set of Multiple-Services-Credit-Control AVPs.longgetQuotaConsumptionTime()Returns the value of the Quota-Consumption-Time AVP, of type Unsigned32.TimeQuotaMechanismgetTimeQuotaMechanism()Returns the value of the Time-Quota-Mechanism AVP, of type Grouped.booleanhasEnvelopeReporting()Returns true if the Envelope-Reporting AVP is present in the Offline-Charging AVP.booleanhasQuotaConsumptionTime()Returns true if the Quota-Consumption-Time AVP is present in the Offline-Charging AVP.booleanhasTimeQuotaMechanism()Returns true if the Time-Quota-Mechanism AVP is present in the Offline-Charging AVP.voidremoveEnvelopeReporting()Removes the Envelope-Reporting AVP from the Offline-Charging AVP.voidremoveExtensionAvps()Removes all extension AVPs from the Offline-Charging AVP.voidremoveMultipleServicesCreditControls()Removes all Multiple-Services-Credit-Control AVPs from the Offline-Charging AVP.voidremoveQuotaConsumptionTime()Removes the Quota-Consumption-Time AVP from the Offline-Charging AVP.voidremoveTimeQuotaMechanism()Removes the Time-Quota-Mechanism AVP from the Offline-Charging AVP.voidsetEnvelopeReporting(EnvelopeReporting envelopeReporting)Sets the value of the Envelope-Reporting AVP, of type Enumerated.voidsetExtensionAvps(DiameterAvp[] avps)Sets the set of extension AVPs with all the values in the given array.voidsetMultipleServicesCreditControl(MultipleServicesCreditControl multipleServicesCreditControl)Sets a single Multiple-Services-Credit-Control AVP in the Offline-Charging AVP, of type Grouped.voidsetMultipleServicesCreditControls(MultipleServicesCreditControl[] multipleServicesCreditControls)Sets the set of Multiple-Services-Credit-Control AVPs, with all the values in the given array.voidsetQuotaConsumptionTime(long quotaConsumptionTime)Sets the value of the Quota-Consumption-Time AVP, of type Unsigned32.voidsetTimeQuotaMechanism(TimeQuotaMechanism timeQuotaMechanism)Sets the value of the Time-Quota-Mechanism AVP, of type Grouped.-
Methods inherited from interface org.jainslee.resources.diameter.base.DiameterAvp
byteArrayValue, clone, doubleValue, floatValue, getCode, getMandatoryRule, getName, getProtectedRule, getType, getVendorID, groupedAvpValue, intValue, longValue, stringValue
-
-
-
-
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. UsehasQuotaConsumptionTime()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- iftimeQuotaMechanismisnull.
-
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- ifenvelopeReportingisnull.
-
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- ifmultipleServicesCreditControlisnull.
-
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- ifmultipleServicesCreditControlsisnull.
-
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- ifavpsisnull.
-
removeExtensionAvps
void removeExtensionAvps()
Removes all extension AVPs from the Offline-Charging AVP. If no extension AVPs are present, this method returns silently.
-
-