package javax.megaco.association;
import javax.megaco.AssociationEvent;
import javax.megaco.ErrorCode;
import javax.megaco.MethodInvocationException;
import javax.megaco.ReturnStatus;
public class AssociationConfigResp extends AssociationEvent {
protected ReturnStatus eventStatus = null;
protected ErrorCode errorCode = null;
public AssociationConfigResp(Object source, int assocHandle)
throws IllegalArgumentException {
super(source, assocHandle);
// TODO Auto-generated constructor stub
}
@Override
public int getAssocOperIdentifier() {
return AssocEventType.M_ASSOC_CONFIG_RESP;
}
/**
* This method returns whether the execution of create association request
* was success or not.
*
* @return Returns an integer value that identifies whether the association
* configuration 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 association
* configuration request was success or not.
*
* @param returnStatus
* - The return status of the processing of the association
* configuration 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 association
* configuration event could not be processed successfuly.
*
* @return Returns an integer value that identifies the error code
* specifying why the execution of the association configuration
* 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 0.
*
* @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, error code is not premited.");
}
//return errorCode == null ? 0 : errorCode.getErrorCode();
return errorCode;
}
/**
* This method sets the error code specifying why the association configuration event could not be executed successfuly.
*
* @param errorCode
* The error code corresponding to why the association configuration 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 object passed to this method is set to
* NULL.
*/
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, error code is not premited.");
}
this.errorCode = errorCode;
}
}