Differential D20809 Diff 49615 src/applications/transactions/editengine/PhabricatorEditEngineSubtypeMap.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/transactions/editengine/PhabricatorEditEngineSubtypeMap.php
<?php | <?php | ||||
final class PhabricatorEditEngineSubtypeMap | final class PhabricatorEditEngineSubtypeMap | ||||
extends Phobject { | extends Phobject { | ||||
private $subtypes; | private $subtypes; | ||||
private $datasource; | |||||
public function __construct(array $subtypes) { | public function __construct(array $subtypes) { | ||||
assert_instances_of($subtypes, 'PhabricatorEditEngineSubtype'); | assert_instances_of($subtypes, 'PhabricatorEditEngineSubtype'); | ||||
$this->subtypes = $subtypes; | $this->subtypes = $subtypes; | ||||
} | } | ||||
public function getDisplayMap() { | public function getDisplayMap() { | ||||
Show All 18 Lines | if (!$this->isValidSubtype($subtype_key)) { | ||||
pht( | pht( | ||||
'Subtype key "%s" does not identify a valid subtype.', | 'Subtype key "%s" does not identify a valid subtype.', | ||||
$subtype_key)); | $subtype_key)); | ||||
} | } | ||||
return $this->subtypes[$subtype_key]; | return $this->subtypes[$subtype_key]; | ||||
} | } | ||||
public function setDatasource(PhabricatorTypeaheadDatasource $datasource) { | |||||
$this->datasource = $datasource; | |||||
return $this; | |||||
} | |||||
public function newDatasource() { | |||||
if (!$this->datasource) { | |||||
throw new PhutilInvalidStateException('setDatasource'); | |||||
} | |||||
return clone($this->datasource); | |||||
} | |||||
public function getCreateFormsForSubtype( | public function getCreateFormsForSubtype( | ||||
PhabricatorEditEngine $edit_engine, | PhabricatorEditEngine $edit_engine, | ||||
PhabricatorEditEngineSubtypeInterface $object) { | PhabricatorEditEngineSubtypeInterface $object) { | ||||
$subtype_key = $object->getEditEngineSubtype(); | $subtype_key = $object->getEditEngineSubtype(); | ||||
$subtype = $this->getSubtype($subtype_key); | $subtype = $this->getSubtype($subtype_key); | ||||
$select_identifiers = $subtype->getChildFormIdentifiers(); | $select_identifiers = $subtype->getChildFormIdentifiers(); | ||||
Show All 34 Lines |