Changeset View
Changeset View
Standalone View
Standalone View
src/inspector/ArcanistRefInspector.php
| <?php | <?php | ||||
| abstract class ArcanistRefInspector | abstract class ArcanistRefInspector | ||||
| extends Phobject { | extends Phobject { | ||||
| abstract public function getInspectFunctionName(); | abstract public function getInspectFunctionName(); | ||||
| abstract public function newInspectRef(array $argv); | abstract public function newInspectRef(array $argv); | ||||
| protected function newInspectors() { | |||||
| return array($this); | |||||
| } | |||||
| final public static function getAllInspectors() { | final public static function getAllInspectors() { | ||||
| return id(new PhutilClassMapQuery()) | $base_inspectors = id(new PhutilClassMapQuery()) | ||||
| ->setAncestorClass(__CLASS__) | ->setAncestorClass(__CLASS__) | ||||
| ->setUniqueMethod('getInspectFunctionName') | |||||
| ->execute(); | ->execute(); | ||||
| $results = array(); | |||||
| foreach ($base_inspectors as $base_inspector) { | |||||
| foreach ($base_inspector->newInspectors() as $inspector) { | |||||
| $results[] = $inspector; | |||||
| } | |||||
| } | |||||
| return mpull($results, null, 'getInspectFunctionName'); | |||||
| } | } | ||||
| } | } | ||||