@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
at recaptime-dev/main 106 lines 2.4 kB view raw
1<?php 2 3abstract class HarbormasterBuildableEngine 4 extends Phobject { 5 6 private $viewer; 7 private $actingAsPHID; 8 private $contentSource; 9 private $object; 10 11 final public function setViewer(PhabricatorUser $viewer) { 12 $this->viewer = $viewer; 13 return $this; 14 } 15 16 final public function getViewer() { 17 return $this->viewer; 18 } 19 20 final public function setActingAsPHID($acting_as_phid) { 21 $this->actingAsPHID = $acting_as_phid; 22 return $this; 23 } 24 25 final public function getActingAsPHID() { 26 return $this->actingAsPHID; 27 } 28 29 final public function setContentSource( 30 PhabricatorContentSource $content_source) { 31 $this->contentSource = $content_source; 32 return $this; 33 } 34 35 final public function getContentSource() { 36 return $this->contentSource; 37 } 38 39 final public function setObject(HarbormasterBuildableInterface $object) { 40 $this->object = $object; 41 return $this; 42 } 43 44 final public function getObject() { 45 return $this->object; 46 } 47 48 protected function getPublishableObject() { 49 return $this->getObject(); 50 } 51 52 public function publishBuildable( 53 HarbormasterBuildable $old, 54 HarbormasterBuildable $new) { 55 return; 56 } 57 58 final public static function newForObject( 59 HarbormasterBuildableInterface $object, 60 PhabricatorUser $viewer) { 61 return $object->newBuildableEngine() 62 ->setViewer($viewer) 63 ->setObject($object); 64 } 65 66 final protected function newEditor() { 67 $publishable = $this->getPublishableObject(); 68 69 $viewer = $this->getViewer(); 70 71 $editor = $publishable->getApplicationTransactionEditor() 72 ->setActor($viewer) 73 ->setContinueOnNoEffect(true) 74 ->setContinueOnMissingFields(true); 75 76 $acting_as_phid = $this->getActingAsPHID(); 77 if ($acting_as_phid !== null) { 78 $editor->setActingAsPHID($acting_as_phid); 79 } 80 81 $content_source = $this->getContentSource(); 82 if ($content_source !== null) { 83 $editor->setContentSource($content_source); 84 } 85 86 return $editor; 87 } 88 89 final protected function newTransaction() { 90 $publishable = $this->getPublishableObject(); 91 92 return $publishable->getApplicationTransactionTemplate(); 93 } 94 95 final protected function applyTransactions(array $xactions) { 96 $publishable = $this->getPublishableObject(); 97 $editor = $this->newEditor(); 98 99 $editor->applyTransactions($publishable, $xactions); 100 } 101 102 public function getAuthorIdentity() { 103 return null; 104 } 105 106}