Path: blob/master/src/applications/multimeter/controller/MultimeterController.php
12256 views
<?php12abstract class MultimeterController extends PhabricatorController {34private $dimensions = array();56protected function loadDimensions(array $rows) {7if (!$rows) {8return;9}1011$map = array(12'eventLabelID' => new MultimeterLabel(),13'eventViewerID' => new MultimeterViewer(),14'eventHostID' => new MultimeterHost(),15'eventContextID' => new MultimeterContext(),16);1718$ids = array();19foreach ($map as $key => $object) {20foreach ($rows as $row) {21$ids[$key][] = $row[$key];22}23}2425foreach ($ids as $key => $list) {26$object = $map[$key];27if (empty($this->dimensions[$key])) {28$this->dimensions[$key] = array();29}30$this->dimensions[$key] += $object->loadAllWhere(31'id IN (%Ld)',32$list);33}34}3536protected function getLabelDimension($id) {37if (empty($this->dimensions['eventLabelID'][$id])) {38return $this->newMissingDimension(new MultimeterLabel(), $id);39}40return $this->dimensions['eventLabelID'][$id];41}4243protected function getViewerDimension($id) {44if (empty($this->dimensions['eventViewerID'][$id])) {45return $this->newMissingDimension(new MultimeterViewer(), $id);46}47return $this->dimensions['eventViewerID'][$id];48}4950protected function getHostDimension($id) {51if (empty($this->dimensions['eventHostID'][$id])) {52return $this->newMissingDimension(new MultimeterHost(), $id);53}54return $this->dimensions['eventHostID'][$id];55}5657protected function getContextDimension($id) {58if (empty($this->dimensions['eventContextID'][$id])) {59return $this->newMissingDimension(new MultimeterContext(), $id);60}61return $this->dimensions['eventContextID'][$id];62}6364private function newMissingDimension(MultimeterDimension $dim, $id) {65$dim->setName('<missing:'.$id.'>');66return $dim;67}6869}707172