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'); | |||||
} | } | ||||
} | } |