All Downloads are FREE. Search and download functionalities are using the official Maven repository.

macros.asyncclientclass.ClientMethodForOperation.ftl Maven / Gradle / Ivy

<#macro content operation>

@Override
<#if operation.deprecated>
  @Deprecated

public ${operation.asyncFutureType} ${operation.methodName}Async(
        ${operation.input.variableType} request) {

    return ${operation.methodName}Async(request, null);
}

@Override
<#if operation.deprecated>
  @Deprecated

public ${operation.asyncFutureType} ${operation.methodName}Async(
    final ${operation.input.variableType} request,
    final ${operation.asyncHandlerType} asyncHandler) {
    final ${operation.input.variableType} finalRequest = beforeClientExecution(request);

    return executorService.submit(new ${operation.asyncCallableType}() {
        @Override
        public ${operation.asyncReturnType} call() throws Exception {
            ${operation.asyncReturnType} result = null;

            try {
              <#if operation.returnType??>
                result = execute${operation.methodName?cap_first}(finalRequest);
              <#else>
                execute${operation.methodName?cap_first}(finalRequest);
              
            } catch (Exception ex) {
                if (asyncHandler != null) {
                    asyncHandler.onError(ex);
                }
                throw ex;
            }

            if (asyncHandler != null) {
                asyncHandler.onSuccess(finalRequest, result);
            }
            return result;
        }
    });
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy