Path: blob/master/src/applications/harbormaster/query/HarbormasterBuildStepQuery.php
12256 views
<?php12final class HarbormasterBuildStepQuery3extends PhabricatorCursorPagedPolicyAwareQuery {45private $ids;6private $phids;7private $buildPlanPHIDs;89public function withIDs(array $ids) {10$this->ids = $ids;11return $this;12}1314public function withPHIDs(array $phids) {15$this->phids = $phids;16return $this;17}1819public function withBuildPlanPHIDs(array $phids) {20$this->buildPlanPHIDs = $phids;21return $this;22}2324public function newResultObject() {25return new HarbormasterBuildStep();26}2728protected function buildWhereClauseParts(AphrontDatabaseConnection $conn) {29$where = parent::buildWhereClauseParts($conn);3031if ($this->ids !== null) {32$where[] = qsprintf(33$conn,34'id IN (%Ld)',35$this->ids);36}3738if ($this->phids !== null) {39$where[] = qsprintf(40$conn,41'phid in (%Ls)',42$this->phids);43}4445if ($this->buildPlanPHIDs !== null) {46$where[] = qsprintf(47$conn,48'buildPlanPHID in (%Ls)',49$this->buildPlanPHIDs);50}5152return $where;53}5455protected function willFilterPage(array $page) {56$plans = array();5758$buildplan_phids = array_filter(mpull($page, 'getBuildPlanPHID'));59if ($buildplan_phids) {60$plans = id(new PhabricatorObjectQuery())61->setViewer($this->getViewer())62->withPHIDs($buildplan_phids)63->setParentQuery($this)64->execute();65$plans = mpull($plans, null, 'getPHID');66}6768foreach ($page as $key => $build) {69$buildable_phid = $build->getBuildPlanPHID();70if (empty($plans[$buildable_phid])) {71unset($page[$key]);72continue;73}74$build->attachBuildPlan($plans[$buildable_phid]);75}7677return $page;78}7980public function getQueryApplicationClass() {81return 'PhabricatorHarbormasterApplication';82}8384}858687