private ProgressEvent handleListTypeVersionsResponse()

in aws-cloudformation-moduleversion/src/main/java/software/amazon/cloudformation/moduleversion/ListHandler.java [138:168]


    private ProgressEvent<ResourceModel, CallbackContext> handleListTypeVersionsResponse(
            final ListTypeVersionsResponse response,
            final CallbackContext callbackContext,
            final Logger logger) {

        final String moduleToListModuleName = callbackContext.getModuleToList().getModuleName();

        final ProgressEvent.ProgressEventBuilder<ResourceModel, CallbackContext> builder = ProgressEvent.<ResourceModel, CallbackContext>builder()
                .callbackContext(callbackContext)
                .resourceModels(Translator.translateFromListTypeVersionsResponse(response))
                .status(OperationStatus.SUCCESS);
        if (response.nextToken() == null) {

            if (callbackContext.hasModuleToList()) {
                callbackContext.setModuleToList(callbackContext.getModulesToList().remove(0));
                builder.nextToken(""); // force another call of handleRequest to list next module's versions
                logger.log(String.format("No more ListTypeVersions calls for %s: ListTypeVersions call required for %s next",
                        moduleToListModuleName, callbackContext.getModuleToList().getModuleName()));
            } else {
                logger.log("List operation complete");
                callbackContext.setModuleToList(null);
                builder.nextToken(null);
            }

        } else {
            logger.log(String.format("Received nextToken in ListTypeVersionsResponse for %s: another ListTypeVersions call required for %s",
                            moduleToListModuleName, moduleToListModuleName));
            builder.nextToken(response.nextToken());
        }
        return builder.build();
    }