public List handleMultipleCase()

in azure-spring-cloud-maven-plugin/src/main/java/com/microsoft/azure/maven/springcloud/config/ConfigurationPrompter.java [130:173]


    public <T> List<T> handleMultipleCase(String templateId, List<T> options, Function<T, String> getNameFunc)
        throws IOException, InvalidConfigurationException {
        final Map<String, Object> variables = createVariableTables(templateId);
        final boolean allowEmpty = TemplateUtils.evalBoolean("allow_empty", variables);
        if (options.size() == 0) {
            if (!allowEmpty) {
                throw new InvalidConfigurationException(TemplateUtils.evalText("message.empty_options", variables));
            } else {
                final String warningMessage = TemplateUtils.evalText("message.empty_options", variables);
                if (StringUtils.isNotBlank(warningMessage)) {
                    log.warn(warningMessage);
                }
            }
            return options;
        }
        final boolean autoSelect = TemplateUtils.evalBoolean("auto_select", variables);
        final boolean defaultSelected = TemplateUtils.evalBoolean("default_selected", variables);
        if (options.size() == 1) {
            if (autoSelect) {
                log.info(TemplateUtils.evalText("message.auto_select", variables));
                return options;
            } else {
                if (!this.prompt.promoteYesNo(TemplateUtils.evalText("promote.one", variables), defaultSelected, false)) {
                    // user cancels
                    final String warningMessage = TemplateUtils.evalText("message.select_none", variables);
                    if (StringUtils.isNotBlank(warningMessage)) {
                        log.warn(warningMessage);
                    }
                    return Collections.emptyList();
                }
                return options;
            }
        }
        final List<T> selectedEntities = prompt.promoteMultipleEntities(TemplateUtils.evalText("promote.header", variables),
                TemplateUtils.evalText("promote.many", variables), TemplateUtils.evalText("promote.header", variables), options, getNameFunc,
                allowEmpty, defaultSelected ? "to select ALL" : "to select NONE", defaultSelected ? options : Collections.emptyList());
        if (selectedEntities.isEmpty()) {
            final String warningMessage = TemplateUtils.evalText("message.select_none", variables);
            if (StringUtils.isNotBlank(warningMessage)) {
                log.warn(warningMessage);
            }
        }
        return selectedEntities;
    }