isBranch()) { $this->setBranchUuid($branch->getUuid()); } return $this; } public function setBranchUuid(UuidInterface $uuid = null) { $this->branchUuid = $uuid; return $this; } protected function branchifyColumns($columns) { $result = [ 'uuid' => 'COALESCE(o.uuid, bo.uuid)' ]; $ignore = ['o.id', 'os.id', 'o.service_set_id', 'os.host_id']; foreach ($columns as $alias => $column) { if (substr($column, 0, 2) === 'o.' && ! in_array($column, $ignore)) { // bo.column, o.column $column = "COALESCE(b$column, $column)"; } if (substr($column, 0, 3) === 'os.' && ! in_array($column, $ignore)) { // bo.column, o.column $column = "COALESCE(b$column, $column)"; } // Used in Service Tables: if ($column === 'h.object_name' && $alias = 'host') { $column = "COALESCE(bo.host, $column)"; } $result[$alias] = $column; } return $result; } protected function stripSearchColumnAliases() { foreach ($this->searchColumns as &$column) { $column = preg_replace('/^[a-z]+\./', '', $column); } } }