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