use of net.java.slee.resource.diameter.cca.CreditControlSessionState in project jain-slee.diameter by RestComm.
the class CreditControlClientSessionImpl method validateState.
private void validateState(CreditControlRequest ccr) {
// this is used for methods that send specific messages. should be done in jdiam, but there is not hook for it now.
if (ccr.getCcRequestType() == null) {
throw new DiameterException("No request type is present!!");
}
int t = ccr.getCcRequestType().getValue();
CreditControlSessionState currentState = this.getState();
if (t == CcRequestType._INITIAL_REQUEST) {
if (currentState != CreditControlSessionState.IDLE) {
// FIXME: change all exception to DiameterException
throw new DiameterException("Failed to validate, intial event, wrong state: " + currentState);
}
} else if (t == CcRequestType._UPDATE_REQUEST) {
if (currentState != CreditControlSessionState.OPEN) {
// FIXME: change all exception to DiameterException
throw new DiameterException("Failed to validate, intial event, wrong state: " + currentState);
}
} else if (t == CcRequestType._TERMINATION_REQUEST) {
if (currentState != CreditControlSessionState.OPEN) {
// FIXME: change all exception to DiameterException
throw new DiameterException("Failed to validate, intial event, wrong state: " + currentState);
}
} else if (t == CcRequestType._EVENT_REQUEST) {
if (currentState != CreditControlSessionState.IDLE) {
// FIXME: change all exception to DiameterException
throw new DiameterException("Failed to validate, intial event, wrong state: " + currentState);
}
}
}
Aggregations