package org.mobicents.slee.resource.diameter.cca.events; import net.java.slee.resource.diameter.cca.events.CreditControlAnswer; import net.java.slee.resource.diameter.cca.events.avp.CcSessionFailoverType; import net.java.slee.resource.diameter.cca.events.avp.CheckBalanceResultType; import net.java.slee.resource.diameter.cca.events.avp.CostInformationAvp; import net.java.slee.resource.diameter.cca.events.avp.CreditControlAVPCodes; import net.java.slee.resource.diameter.cca.events.avp.CreditControlFailureHandlingType; import net.java.slee.resource.diameter.cca.events.avp.DirectDebitingFailureHandlingType; import net.java.slee.resource.diameter.cca.events.avp.FinalUnitIndicationAvp; import net.java.slee.resource.diameter.cca.events.avp.GrantedServiceUnitAvp; import org.jdiameter.api.Message; import org.mobicents.slee.resource.diameter.cca.events.avp.CostInformationAvpImpl; import org.mobicents.slee.resource.diameter.cca.events.avp.FinalUnitIndicationAvpImpl; import org.mobicents.slee.resource.diameter.cca.events.avp.GrantedServiceUnitAvpImpl; /** * CCA Credit-Control-Answer message implementation.<br> * <br> * * Start time:15:49:22 2008-11-11<br> * Project: mobicents-diameter-parent<br> * * @author <a href="mailto:baranowb@gmail.com"> Bartosz Baranowski </a> * @author <a href="mailto:brainslog@gmail.com"> Alexandre Mendonca </a> */ public class CreditControlAnswerImpl extends CreditControlMessageImpl implements CreditControlAnswer { /** * Constructor. * @param message the message to construct the Answer */ public CreditControlAnswerImpl(Message message) { super(message); } @Override public String getLongName() { return "Credit-Control-Answer"; } @Override public String getShortName() { return "CCA"; } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#getCcSessionFailover() */ public CcSessionFailoverType getCcSessionFailover() { return (CcSessionFailoverType) getAvpAsEnumerated(CreditControlAVPCodes.CC_Session_Failover, CcSessionFailoverType.class); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#getCheckBalanceResult() */ public CheckBalanceResultType getCheckBalanceResult() { return (CheckBalanceResultType) getAvpAsEnumerated(CreditControlAVPCodes.Check_Balance_Result, CheckBalanceResultType.class); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#getCostInformation() */ public CostInformationAvp getCostInformation() { return (CostInformationAvp) getAvpAsCustom(CreditControlAVPCodes.Cost_Information, CostInformationAvpImpl.class); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#getCreditControlFailureHandling() */ public CreditControlFailureHandlingType getCreditControlFailureHandling() { return (CreditControlFailureHandlingType) getAvpAsEnumerated(CreditControlAVPCodes.Credit_Control_Failure_Handling, CreditControlFailureHandlingType.class); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#getDirectDebitingFailureHandling() */ public DirectDebitingFailureHandlingType getDirectDebitingFailureHandling() { return (DirectDebitingFailureHandlingType) getAvpAsEnumerated(CreditControlAVPCodes.Direct_Debiting_Failure_Handling, DirectDebitingFailureHandlingType.class); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#getFinalUnitIndication() */ public FinalUnitIndicationAvp getFinalUnitIndication() { return (FinalUnitIndicationAvp) getAvpAsCustom(CreditControlAVPCodes.Final_Unit_Indication, FinalUnitIndicationAvpImpl.class); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#getGrantedServiceUnit() */ public GrantedServiceUnitAvp getGrantedServiceUnit() { return (GrantedServiceUnitAvp) getAvpAsCustom(CreditControlAVPCodes.Granted_Service_Unit, GrantedServiceUnitAvpImpl.class); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#getValidityTime() */ public long getValidityTime() { return getAvpAsUnsigned32(CreditControlAVPCodes.Validity_Time); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#hasCcSessionFailover() */ public boolean hasCcSessionFailover() { return hasAvp(CreditControlAVPCodes.CC_Session_Failover); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#hasCheckBalanceResult() */ public boolean hasCheckBalanceResult() { return hasAvp(CreditControlAVPCodes.Check_Balance_Result); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#hasCostInformation() */ public boolean hasCostInformation() { return hasAvp(CreditControlAVPCodes.Cost_Information); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#hasCreditControlFailureHandling() */ public boolean hasCreditControlFailureHandling() { return hasAvp(CreditControlAVPCodes.Credit_Control_Failure_Handling); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#hasDirectDebitingFailureHandling() */ public boolean hasDirectDebitingFailureHandling() { return hasAvp(CreditControlAVPCodes.Direct_Debiting_Failure_Handling); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#hasFinalUnitIndication() */ public boolean hasFinalUnitIndication() { return hasAvp(CreditControlAVPCodes.Final_Unit_Indication); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#hasGrantedServiceUnit() */ public boolean hasGrantedServiceUnit() { return hasAvp(CreditControlAVPCodes.Granted_Service_Unit); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#hasValidityTime() */ public boolean hasValidityTime() { return hasAvp(CreditControlAVPCodes.Validity_Time); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#setCcSessionFailover(net.java.slee.resource.diameter.cca.events.avp.CcSessionFailoverType) */ public void setCcSessionFailover(CcSessionFailoverType ccSessionFailover) throws IllegalStateException { addAvp(CreditControlAVPCodes.CC_Session_Failover, (long)ccSessionFailover.getValue()); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#setCheckBalanceResult(net.java.slee.resource.diameter.cca.events.avp.CheckBalanceResultType) */ public void setCheckBalanceResult(CheckBalanceResultType checkBalanceResult) throws IllegalStateException { addAvp(CreditControlAVPCodes.Check_Balance_Result, (long)checkBalanceResult.getValue()); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#setCostInformation(net.java.slee.resource.diameter.cca.events.avp.CostInformationAvp) */ public void setCostInformation(CostInformationAvp costInformation) throws IllegalStateException { addAvp(CreditControlAVPCodes.Cost_Information, costInformation.byteArrayValue()); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#setCreditControlFailureHandling(net.java.slee.resource.diameter.cca.events.avp.CreditControlFailureHandlingType) */ public void setCreditControlFailureHandling(CreditControlFailureHandlingType creditControlFailureHandling) throws IllegalStateException { addAvp(CreditControlAVPCodes.Credit_Control_Failure_Handling, (long)creditControlFailureHandling.getValue()); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#setDirectDebitingFailureHandling(net.java.slee.resource.diameter.cca.events.avp.DirectDebitingFailureHandlingType) */ public void setDirectDebitingFailureHandling(DirectDebitingFailureHandlingType directDebitingFailureHandling) throws IllegalStateException { addAvp(CreditControlAVPCodes.Direct_Debiting_Failure_Handling, (long)directDebitingFailureHandling.getValue()); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#setFinalUnitIndication(net.java.slee.resource.diameter.cca.events.avp.FinalUnitIndicationAvp) */ public void setFinalUnitIndication(FinalUnitIndicationAvp finalUnitIndication) throws IllegalStateException { addAvp(CreditControlAVPCodes.Final_Unit_Indication, finalUnitIndication.byteArrayValue()); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#setGrantedServiceUnit(net.java.slee.resource.diameter.cca.events.avp.GrantedServiceUnitAvp) */ public void setGrantedServiceUnit(GrantedServiceUnitAvp grantedServiceUnit) throws IllegalStateException { addAvp(CreditControlAVPCodes.Granted_Service_Unit, grantedServiceUnit.byteArrayValue()); } /* (non-Javadoc) * @see net.java.slee.resource.diameter.cca.events.CreditControlAnswer#setValidityTime(long) */ public void setValidityTime(long validityTime) throws IllegalStateException { addAvp(CreditControlAVPCodes.Validity_Time, validityTime); } }