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;
}