Path: blob/master/src/applications/fact/engine/PhabricatorFactEngine.php
12256 views
<?php12abstract class PhabricatorFactEngine extends Phobject {34private $factMap;5private $viewer;67final public static function loadAllEngines() {8return id(new PhutilClassMapQuery())9->setAncestorClass(__CLASS__)10->execute();11}1213abstract public function newFacts();1415abstract public function supportsDatapointsForObject(16PhabricatorLiskDAO $object);1718abstract public function newDatapointsForObject(PhabricatorLiskDAO $object);1920final protected function getFact($key) {21if ($this->factMap === null) {22$facts = $this->newFacts();23$facts = mpull($facts, null, 'getKey');24$this->factMap = $facts;25}2627if (!isset($this->factMap[$key])) {28throw new Exception(29pht(30'Unknown fact ("%s") for engine "%s".',31$key,32get_class($this)));33}3435return $this->factMap[$key];36}3738public function setViewer(PhabricatorUser $viewer) {39$this->viewer = $viewer;40return $this;41}4243public function getViewer() {44if (!$this->viewer) {45throw new PhutilInvalidStateException('setViewer');46}4748return $this->viewer;49}5051}525354