/**
  * Returns an array of EOSQLExpressions for deleting this column.
  *
  * @return an array of EOSQLExpressions for deleting this column
  */
 @SuppressWarnings("unchecked")
 public NSArray<EOSQLExpression> _deleteExpressions() {
   EOSchemaSynchronization schemaSynchronization = _table.database().synchronizationFactory();
   NSArray<EOSQLExpression> expressions =
       schemaSynchronization.statementsToDeleteColumnNamed(
           name(), _table.name(), (NSDictionary<String, String>) NSDictionary.EmptyDictionary);
   ERXMigrationDatabase._ensureNotEmpty(expressions, "delete column", true);
   return expressions;
 }
 /**
  * Returns an array of EOSQLExpressions for creating this column.
  *
  * @return an array of EOSQLExpressions for creating this column
  */
 @SuppressWarnings("unchecked")
 public NSArray<EOSQLExpression> _createExpressions() {
   EOSchemaSynchronization schemaSynchronization = _table.database().synchronizationFactory();
   NSArray<EOSQLExpression> expressions =
       schemaSynchronization.statementsToInsertColumnForAttribute(
           _newAttribute(), (NSDictionary<String, String>) NSDictionary.EmptyDictionary);
   ERXMigrationDatabase._ensureNotEmpty(expressions, "add column", true);
   return expressions;
 }
 /**
  * Changes the "allows null" state of this column.
  *
  * @param allowsNull if true, this column allows nulls
  * @throws SQLException if the change fails
  */
 @SuppressWarnings("unchecked")
 public void setAllowsNull(boolean allowsNull) throws SQLException {
   EOSchemaSynchronization schemaSynchronization = _table.database().synchronizationFactory();
   NSArray<EOSQLExpression> expressions =
       schemaSynchronization.statementsToModifyColumnNullRule(
           name(),
           _table.name(),
           allowsNull,
           (NSDictionary<String, String>) NSDictionary.EmptyDictionary);
   ERXMigrationDatabase._ensureNotEmpty(expressions, "modify allows null", true);
   ERXJDBCUtilities.executeUpdateScript(
       _table.database().adaptorChannel(),
       ERXMigrationDatabase._stringsForExpressions(expressions));
 }
 /**
  * Changes the data type of this column.
  *
  * @param jdbcType the new JDBC type of the column (see java.sql.Types)
  * @param scale the new scale
  * @param precision the new precision
  * @param width the new width
  * @param options the options to use for conversion (or null)
  * @throws SQLException if the change fails
  */
 @SuppressWarnings("unchecked")
 public void setDataType(int jdbcType, int scale, int precision, int width, NSDictionary options)
     throws SQLException {
   JDBCAdaptor adaptor = (JDBCAdaptor) _table.database().adaptor();
   String externalType =
       ERXSQLHelper.newSQLHelper(adaptor).externalTypeForJDBCType(adaptor, jdbcType);
   EOSchemaSynchronization schemaSynchronization = _table.database().synchronizationFactory();
   NSArray<EOSQLExpression> expressions =
       schemaSynchronization.statementsToConvertColumnType(
           _name,
           _table.name(),
           null,
           new _ColumnType(externalType, scale, precision, width),
           options);
   ERXMigrationDatabase._ensureNotEmpty(expressions, "convert column type", true);
   ERXJDBCUtilities.executeUpdateScript(
       _table.database().adaptorChannel(),
       ERXMigrationDatabase._stringsForExpressions(expressions));
   _jdbcType = jdbcType;
   _scale = scale;
   _precision = precision;
   _width = width;
 }