protected function generateColumnCode($columnData, $mode)
{
$forceFlagsChange = false;
switch ($mode) {
case self::COLUMN_MODE_CREATE:
$column = $columnData;
$changeMode = false;
break;
case self::COLUMN_MODE_CHANGE:
$column = $columnData->column;
$changeMode = true;
$forceFlagsChange = in_array('type', $columnData->changedProperties);
break;
case self::COLUMN_MODE_REVERT:
$column = $columnData->fromColumn;
$changeMode = true;
$forceFlagsChange = in_array('type', $columnData->changedProperties);
break;
}
$result = $this->generateColumnMethodCall($column);
$result .= $this->generateNullable($column, $changeMode, $columnData, $forceFlagsChange);
$result .= $this->generateUnsigned($column, $changeMode, $columnData, $forceFlagsChange);
$result .= $this->generateDefault($column, $changeMode, $columnData, $forceFlagsChange);
if ($changeMode) {
$result .= '->change()';
}
$result .= ';' . $this->eol;
return $result;
}