Boolean promptYesOrNo()

in c3r-cli/src/main/java/com/amazonaws/c3r/io/schema/InteractiveSchemaGenerator.java [284:315]


    Boolean promptYesOrNo(final String questionPrompt, final Boolean defaultAnswer) {
        final var promptSB = new StringBuilder(questionPrompt).append(", [y]es or [n]o");
        if (defaultAnswer != null) {
            if (defaultAnswer) {
                promptSB.append(" (default `yes`)");
            } else {
                promptSB.append(" (default `no`)");
            }
        }
        promptSB.append("? ");
        consoleOutput.print(promptSB);
        final String userInput = readNextLineLowercase();

        final Boolean answer;

        if (userInput.isBlank()) {
            if (defaultAnswer != null) {
                answer = defaultAnswer;
            } else {
                consoleOutput.println("Expected [y]es or [n]o, but found no input.");
                answer = null;
            }
        } else if ("yes".startsWith(userInput)) {
            answer = true;
        } else if ("no".startsWith(userInput)) {
            answer = false;
        } else {
            consoleOutput.println("Expected [y]es or [n]o, but got `" + userInput + "`.");
            answer = null;
        }
        return answer;
    }