Page MenuHomePhorge

PhabricatorFactEngine.php
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

PhabricatorFactEngine.php

<?php
abstract class PhabricatorFactEngine extends Phobject {
private $factMap;
private $viewer;
final public static function loadAllEngines() {
return id(new PhutilClassMapQuery())
->setAncestorClass(__CLASS__)
->execute();
}
/**
* @return array All types of facts known by this FactEngine
*/
abstract public function newFacts();
/**
* @return bool
*/
abstract public function supportsDatapointsForObject(
PhabricatorLiskDAO $object);
/**
* Add new datapoints (due to a transaction) about an object
*/
abstract public function newDatapointsForObject(PhabricatorLiskDAO $object);
final protected function getFact($key) {
if ($this->factMap === null) {
$facts = $this->newFacts();
$facts = mpull($facts, null, 'getKey');
$this->factMap = $facts;
}
if (!isset($this->factMap[$key])) {
throw new Exception(
pht(
'Unknown fact ("%s") for engine "%s".',
$key,
get_class($this)));
}
return $this->factMap[$key];
}
public function setViewer(PhabricatorUser $viewer) {
$this->viewer = $viewer;
return $this;
}
public function getViewer() {
if (!$this->viewer) {
throw new PhutilInvalidStateException('setViewer');
}
return $this->viewer;
}
}

File Metadata

Mime Type
text/x-php
Expires
Wed, May 7, 7:50 AM (1 d, 20 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
87775
Default Alt Text
PhabricatorFactEngine.php (1 KB)

Event Timeline