ColumnSchema promptColumnInfo()

in c3r-cli-spark/src/main/java/com/amazonaws/c3r/spark/io/schema/InteractiveSchemaGenerator.java [564:596]


    ColumnSchema promptColumnInfo(final ColumnHeader sourceHeader,
                                  final int currentTargetColumnCount,
                                  final int totalTargetColumnCount) {
        consoleOutput.println();
        consoleOutput.print("Gathering information for target column ");
        if (totalTargetColumnCount > 1) {
            consoleOutput.print(currentTargetColumnCount + " of " + totalTargetColumnCount + " ");
        }
        final String columnRef = SchemaGeneratorUtils.columnReference(sourceHeader, getCurrentSourceColumnPosition());
        consoleOutput.println("from source " + columnRef + ".");

        final ClientDataType dataType = getCurrentSourceColumnDataType();
        final ColumnType columnType;
        if (dataType == ClientDataType.UNKNOWN) {
            consoleOutput.println("Cryptographic computing is not supported for this column's data type.");
            consoleOutput.println("This column's data will be cleartext.");
            columnType = ColumnType.CLEARTEXT;
        } else {
            columnType = repeatUntilNotNull(this::promptColumnType);
        }

        final ColumnHeader targetHeader = repeatUntilNotNull(() -> promptTargetHeader(sourceHeader, columnType));

        ColumnSchema.ColumnSchemaBuilder columnBuilder = ColumnSchema.builder()
                .sourceHeader(sourceHeader)
                .targetHeader(targetHeader)
                .type(columnType);
        if (columnType == ColumnType.SEALED) {
            final Pad pad = repeatUntilNotNull(() -> promptPad(targetHeader));
            columnBuilder = columnBuilder.pad(pad);
        }
        return columnBuilder.build();
    }