protected function addShiftRank(&$script)
 {
     $useScope = $this->behavior->useScope();
     $peerClassname = $this->peerClassname;
     $script .= "\n/**\n * Adds \$delta to all Rank values that are >= \$first and <= \$last.\n * '\$delta' can also be negative.\n *\n * @param      int \$delta Value to be shifted by, can be negative\n * @param      int \$first First node to be shifted\n * @param      int \$last  Last node to be shifted";
     if ($useScope) {
         $script .= "\n * @param      mixed \$scope Scope to use for the shift. Scalar value (single scope) or array";
     }
     $script .= "\n * @param      PropelPDO \$con Connection to use.\n */\npublic static function shiftRank(\$delta, \$first = null, \$last = null, " . ($useScope ? "\$scope = null, " : "") . "PropelPDO \$con = null)\n{\n    if (\$con === null) {\n        \$con = Propel::getConnection({$peerClassname}::DATABASE_NAME, Propel::CONNECTION_WRITE);\n    }\n\n    \$whereCriteria = {$this->queryClassname}::create();\n    if (null !== \$first) {\n        \$whereCriteria->add({$peerClassname}::RANK_COL, \$first, Criteria::GREATER_EQUAL);\n    }\n    if (null !== \$last) {\n        \$whereCriteria->addAnd({$peerClassname}::RANK_COL, \$last, Criteria::LESS_EQUAL);\n    }";
     if ($useScope) {
         $script .= "\n    {$this->peerClassname}::sortableApplyScopeCriteria(\$whereCriteria, \$scope);";
     }
     $script .= "\n\n    \$valuesCriteria = new Criteria({$peerClassname}::DATABASE_NAME);\n    \$valuesCriteria->add({$peerClassname}::RANK_COL, array('raw' => {$peerClassname}::RANK_COL . ' + ?', 'value' => \$delta), Criteria::CUSTOM_EQUAL);\n\n    {$this->builder->getPeerBuilder()->getBasePeerClassname()}::doUpdate(\$whereCriteria, \$valuesCriteria, \$con);\n    {$peerClassname}::clearInstancePool();\n}\n";
 }