Search in sources :

Example 1 with RoSessionState

use of net.java.slee.resource.diameter.ro.RoSessionState in project jain-slee.diameter by RestComm.

the class RoClientSessionActivityImpl method validateState.

private void validateState(RoCreditControlRequest 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();
    RoSessionState currentState = this.getState();
    if (t == CcRequestType._INITIAL_REQUEST) {
        if (currentState != RoSessionState.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 != RoSessionState.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 != RoSessionState.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 != RoSessionState.IDLE) {
            // FIXME: change all exception to DiameterException
            throw new DiameterException("Failed to validate, intial event, wrong state: " + currentState);
        }
    }
}
Also used : DiameterException(net.java.slee.resource.diameter.base.DiameterException) RoSessionState(net.java.slee.resource.diameter.ro.RoSessionState) ClientRoSessionState(org.jdiameter.common.api.app.ro.ClientRoSessionState)

Aggregations

DiameterException (net.java.slee.resource.diameter.base.DiameterException)1 RoSessionState (net.java.slee.resource.diameter.ro.RoSessionState)1 ClientRoSessionState (org.jdiameter.common.api.app.ro.ClientRoSessionState)1