package javax.megaco.association;
import javax.megaco.AssociationEvent;
import javax.megaco.ErrorCode;
import javax.megaco.MethodInvocationException;
import javax.megaco.ReturnStatus;
public class ModifyAssocResp extends AssociationEvent {
protected ReturnStatus eventStatus = null;
protected ErrorCode errorCode = null;
public ModifyAssocResp(Object source, int assocHandle) throws IllegalArgumentException {
super(source, assocHandle);
}
@Override
public int getAssocOperIdentifier() {
return AssocEventType.M_MODIFY_ASSOC_RESP;
}
/**
* This method returns whether the execution of modify association request
* was success or not.
*
* @return Returns an integer value that identifies whether the delete
* association event issued earlier could be performed successfuly
* or not. The values are field constants defined in class
* ReturnStatus. If the returnStatus is not set, then this method
* would return value null.
*/
public final ReturnStatus getEventStatus() {
// return eventStatus == null ? 0 : eventStatus.getReturnStatus();
return eventStatus;
}
/**
* This method sets the status of whether the execution of the modify
* association request was success or not.
*
* @param returnStatus
* - The return status of the processing of the modify
* association event. The static object corresponding to the
* return status which are one of the derived classes of the
* ReturnStatus shall be set.
* @throws IllegalArgumentException
* This exception is raised if the reference of Return Status
* passed to this method is NULL.
*/
public final void setEventStatus(ReturnStatus returnStatus) throws IllegalArgumentException {
if (returnStatus == null)
throw new IllegalArgumentException("Event status can not be null.");
this.eventStatus = returnStatus;
}
/**
* This method returns the error code qualifying why the modify association
* event could not be processed successfuly.
*
* @return Returns an integer value that identifies the error code
* specifying why the execution of the modify association event
* could not be successful. The possible values are field constants
* defined for the class ErrorCode. If the error code is not set,
* then this method would return value null.
* @throws IllegalStateException
* - This exception would be raised if the return status is set
* to M_SUCCESS, the error code is not set and hence should not
* invoke this method.
*/
public final ErrorCode getErrorCode() throws IllegalStateException {
if (getEventStatus() == null || getEventStatus().getReturnStatus() == ReturnStatus.M_SUCCESS) {
throw new IllegalStateException("Event status is success or not set, error code is not premited.");
}
// return errorCode == null ? 0 : errorCode.getErrorCode();
return errorCode;
}
/**
* This method sets the error code specifying why the modify association
* event could not be executed successfuly.
*
* @param errorCode
* The error code corresponding to why the modify association
* event could not be executed successfuly.
* @throws IllegalArgumentException
* This exception would be raised in following conditions
*
* <br>
* 1. If the return status is not set to M_FAILURE, the error
* code should not be set. <br>
* 2. If the error code is not valid for the ModifyAssocReq
* class.
*/
public final void setErrorCode(ErrorCode errorCode) throws IllegalArgumentException {
if (errorCode == null)
throw new IllegalArgumentException("Error code can not be null.");
if (getEventStatus() == null || getEventStatus().getReturnStatus() != ReturnStatus.M_FAILURE) {
throw new IllegalArgumentException("Event status is not failure or nto set, error code is not premited.");
}
this.errorCode = errorCode;
}
}