/**
  * @param ObjectBuilder $builder
  * @param string        $script
  * @param Column        $column
  */
 protected function appendAddVersionMethod(ObjectBuilder $builder, &$script, $column)
 {
     $columnPhpName = $column->getPhpName();
     $methodName = "add{$columnPhpName}Version";
     $logTable = $this->getLogTable($column);
     $logTableName = $logTable->getName();
     $logARClassName = $builder->getClassNameFromBuilder($builder->getNewStubObjectBuilder($logTable));
     $logARQueryName = $builder->getNewStubQueryBuilder($logTable)->getFullyQualifiedClassName();
     $varName = lcfirst($column->getPhpName());
     $script .= "\n/**\n * @return {$logARClassName}|false model instance of saved log ({$logTableName}) or false if nothing was changed.\n */\npublic function {$methodName}()\n{\n    if (!isset(\$this->changeLoggerTracker['{$varName}'])) {\n        return false;\n    }\n\n    \$log = new {$logARClassName}();";
     foreach ($this->getTable()->getPrimaryKey() as $col) {
         $script .= "\n    \$log->set" . $col->getPhpName() . "(\$this->get" . $col->getPhpName() . "());";
     }
     $script .= "\n    \$log->set" . $column->getPhpName() . "(\$this->changeLoggerTracker['{$varName}']);";
     if ('true' === $this->getParameter('created_at')) {
         $createdAtColumn = $logTable->getColumn($this->getParameter('created_at_column'));
         $script .= "\n    \$log->set{$createdAtColumn->getPhpName()}(time());\n";
     }
     if ('true' === $this->getParameter('created_by')) {
         $createdByColumn = $logTable->getColumn($this->getParameter('created_by_column'));
         $methodGetName = 'get' . $column->getPhpName() . 'ChangeBy';
         $script .= "\n    \$log->set{$createdByColumn->getPhpName()}(\$this->{$methodGetName}());\n";
     }
     if ('true' === $this->getParameter('comment')) {
         $commentColumn = $logTable->getColumn($this->getParameter('comment_column'));
         $methodGetName = 'get' . $column->getPhpName() . 'ChangeComment';
         $script .= "\n    \$log->set{$commentColumn->getPhpName()}(\$this->{$methodGetName}());\n";
     }
     $script .= "\n    \$lastVersion = {$logARQueryName}::create()\n        ->filterByOrigin(\$this)\n        ->orderByVersion('desc')\n        ->findOne();\n\n    \$log->setVersion(\$lastVersion ? \$lastVersion->getVersion() + 1 : 1);\n    \$log->save();\n\n    \$this->changeLoggerTracker['{$varName}'] = \$this->get{$column->getPhpName()}();\n    return \$log;\n}\n";
 }