in azure-maven-plugin-lib/src/main/java/com/microsoft/azure/maven/utils/CustomTextIoStringListReader.java [39:96]
protected void printPrompt(List<String> prompt, TextTerminal<?> textTerminal) {
textTerminal.print(prompt);
boolean useColon = false;
if (promptAdjustments && prompt != null && !prompt.isEmpty()) {
final String lastLine = prompt.get(prompt.size() - 1);
useColon = anotherShouldAppendColon(lastLine);
}
if (possibleValues == null) {
if (promptAdjustments && defaultValue != null) {
textTerminal.print(" [" + valueFormatter.apply(defaultValue) + "]: ");
} else {
textTerminal.print(useColon ? ": " : " ");
}
} else if (promptAdjustments) {
final int optionCount = possibleValues.size();
if (inlinePossibleValues) {
final String strValues = IntStream.range(0, optionCount)
.mapToObj(i -> possibleValues.get(i))
.map(option -> {
final boolean isDefault = (defaultValue != null) && equalsFunc.apply(defaultValue, option);
return (isDefault ? "*" : "") + valueFormatter.apply(option);
})
.collect(Collectors.joining(", ", " (", "): "));
textTerminal.print(strValues);
} else {
textTerminal.println(useColon ? ":" : "");
String defaultOptionText = null;
for (int i = 0; i < optionCount; i++) {
final T option = possibleValues.get(i);
final boolean isDefault = (defaultValue != null) && equalsFunc.apply(defaultValue, option);
String optionId = "";
String optionText = valueFormatter.apply(option);
if (numberedPossibleValues) {
final int digits = ("" + optionCount).length();
optionId = String.format("%" + digits + "d: ", i + 1);
final String[] textLines = optionText.split("\\R", -1);
if (textLines.length > 1) {
final String delimiter = String.format("\n%" + (digits + 4) + "s", "");
optionText = Arrays.stream(textLines).collect(Collectors.joining(delimiter));
}
}
if (isDefault) {
defaultOptionText = optionId + optionText;
textTerminal.println(TextUtils.blue("* " + optionId + optionText));
} else {
textTerminal.println(" " + optionId + optionText);
}
}
if (StringUtils.isNotBlank(customPrompt)) {
textTerminal.print(customPrompt);
} else {
textTerminal.print(String.format("Enter your choice%s: ", StringUtils.isNotBlank(defaultOptionText) ? String.format("[%s]",
TextUtils.blue(defaultOptionText)) : ""));
}
}
}
}