new Object[] { headerParam , queryParam , message },
observer,
timeConstraints);
if (!observer.await(timeConstraints)) {
throw new CougarClientException(ServerFaultCode.Timeout, "Operation i32SimpleTypeOperation timed out!");
}
final ExecutionResult er = observer.getExecutionResult();
switch (er.getResultType()) {
case Success:
return (I32SimpleOperationResponseObject) er.getResult();
case Fault:
CougarException cex = er.getFault();
if (cex.getServerFaultCode() == ServerFaultCode.ServiceCheckedException) {
List<String[]> exceptionParams = cex.getFault().getDetail().getFaultMessages();
String className = cex.getFault().getDetail().getDetailMessage();
if (className.equals("SimpleException")) {
throw new SimpleException(
cex.getResponseCode(),
SimpleExceptionErrorCodeEnum.valueOf(exceptionParams.get(0)[1]),
(exceptionParams.get(1)[1])
);
}
else {
throw new IllegalArgumentException("An unanticipated exception was received of class [" + className + "]");
}
} else if (cex instanceof CougarFrameworkException) {
CougarFrameworkException cfe = (CougarFrameworkException) cex;
throw new CougarClientException(cfe.getServerFaultCode(), cfe.getMessage(), cfe.getCause());
} else {
throw cex;
}
default:
throw new IllegalArgumentException("The Server returned an illegal result type [" + er.getResultType() + "]");