in c3r-cli-spark/src/main/java/com/amazonaws/c3r/spark/io/schema/InteractiveSchemaGenerator.java [242:275]
Integer promptNonNegativeInt(final String baseUserPrompt,
final Integer defaultValue,
final int maxValue) {
final var promptSB = new StringBuilder(baseUserPrompt);
if (defaultValue != null) {
promptSB.append(" (default `").append(defaultValue).append("`)");
}
promptSB.append("? ");
consoleOutput.print(promptSB);
final int num;
final String userInput = readNextLineLowercase();
try {
num = Integer.parseInt(userInput);
} catch (NumberFormatException e) {
if (userInput.isBlank()) {
if (defaultValue == null) {
consoleOutput.println("Expected an integer >= 0, but found no input.");
}
return defaultValue;
} else {
consoleOutput.println("Expected an integer >= 0, but found `" + userInput + "`.");
return null;
}
}
if (num < 0) {
consoleOutput.println("Expected an integer >= 0, but found " + num + ".");
return null;
} else if (num > maxValue) {
consoleOutput.println("Expected an integer >= 0 and < " + maxValue + ".");
return null;
}
return num;
}