protected function willFilterPage(array $operations) { $implementations = DrydockRepositoryOperationType::getAllOperationTypes(); foreach ($operations as $key => $operation) { $impl = idx($implementations, $operation->getOperationType()); if (!$impl) { $this->didRejectResult($operation); unset($operations[$key]); continue; } $impl = clone $impl; $operation->attachImplementation($impl); } $repository_phids = mpull($operations, 'getRepositoryPHID'); if ($repository_phids) { $repositories = id(new PhabricatorRepositoryQuery())->setViewer($this->getViewer())->setParentQuery($this)->withPHIDs($repository_phids)->execute(); $repositories = mpull($repositories, null, 'getPHID'); } else { $repositories = array(); } foreach ($operations as $key => $operation) { $repository = idx($repositories, $operation->getRepositoryPHID()); if (!$repository) { $this->didRejectResult($operation); unset($operations[$key]); continue; } $operation->attachRepository($repository); } return $operations; }
public static function initializeNewOperation(DrydockRepositoryOperationType $op) { return id(new DrydockRepositoryOperation())->setOperationState(self::STATE_WAIT)->setOperationType($op->getOperationConstant()); }