protected Map prepareTemplateParameters()

in azure-functions-maven-plugin/src/main/java/com/microsoft/azure/maven/function/AddMojo.java [264:295]


    protected Map<String, String> prepareTemplateParameters(final FunctionTemplate template,
                                                            final BindingTemplate bindingTemplate,
                                                            final Map<String, String> params)
            throws MojoFailureException {
        for (final String property : template.getMetadata().getUserPrompt()) {
            String initValue = System.getProperty(property);
            final List<String> options = getOptionsForUserPrompt(property);
            final FunctionSettingTemplate settingTemplate = bindingTemplate == null ?
                    null : bindingTemplate.getSettingTemplateByName(property);
            final String helpMessage = (settingTemplate != null && settingTemplate.getHelp() != null) ?
                    settingTemplate.getHelp() : "";

            Log.info(format("Trigger specific parameter [%s]:%s", property,
                    TemplateResources.getResource(helpMessage)));
            if (settings != null && !settings.isInteractiveMode()) {
                if (options != null && options.size() > 0) {
                    final String foundElement = findElementInOptions(options, initValue);
                    initValue = foundElement == null ? options.get(0) : foundElement;
                }
                assureInputInBatchMode(initValue, StringUtils::isNotEmpty, str -> params.put(property, str), false);
            } else {
                if (options == null) {
                    params.put(property, getStringInputFromUser(property, initValue, settingTemplate));
                } else {
                    assureInputFromUser(format("the value for %s: ", property), System.getProperty(property), options, str -> params.put(property, str)
                    );
                }
            }
        }

        return params;
    }