if (columnDefinition == null) {
throw new BException("ColumnDefinition cannot be null.");
}
TableDescriptor tableDescriptor = describe(table);
TableContext context = TableContext.create(tableDescriptor);
FieldManager fieldManager = context.getFieldManager();
String family = columnDefinition.getFamily();
if (family == null) {
throw new BException("Family in ColumnDefinition [{0}] cannot be null.", columnDefinition);
}
String columnName = columnDefinition.getColumnName();
if (columnName == null) {
throw new BException("ColumnName in ColumnDefinition [{0}] cannot be null.", columnDefinition);
}
String subColumnName = columnDefinition.getSubColumnName();
boolean fieldLessIndexed = columnDefinition.isFieldLessIndexed();
String fieldType = columnDefinition.getFieldType();
if (fieldType == null) {
throw new BException("FieldType in ColumnDefinition [{0}] cannot be null.", columnDefinition);
}
boolean sortable = columnDefinition.isSortable();
Map<String, String> props = columnDefinition.getProperties();
try {
return fieldManager.addColumnDefinition(family, columnName, subColumnName, fieldLessIndexed, fieldType, sortable,
props);
} catch (IOException e) {
throw new BException(
"Unknown error while trying to addColumnDefinition on table [{0}] with columnDefinition [{1}]", e, table,
columnDefinition);