Path: blob/master/src/applications/differential/render/DifferentialRawDiffRenderer.php
12256 views
<?php12final class DifferentialRawDiffRenderer extends Phobject {34private $changesets;5private $format = 'unified';6private $viewer;7private $byteLimit;89public function setFormat($format) {10$this->format = $format;11return $this;12}1314public function getFormat() {15return $this->format;16}1718public function setChangesets(array $changesets) {19assert_instances_of($changesets, 'DifferentialChangeset');2021$this->changesets = $changesets;22return $this;23}2425public function getChangesets() {26return $this->changesets;27}2829public function setViewer(PhabricatorUser $viewer) {30$this->viewer = $viewer;31return $this;32}3334public function getViewer() {35return $this->viewer;36}3738public function setByteLimit($byte_limit) {39$this->byteLimit = $byte_limit;40return $this;41}4243public function getByteLimit() {44return $this->byteLimit;45}4647public function buildPatch() {48$diff = new DifferentialDiff();49$diff->attachChangesets($this->getChangesets());5051$raw_changes = $diff->buildChangesList();52$changes = array();53foreach ($raw_changes as $changedict) {54$changes[] = ArcanistDiffChange::newFromDictionary($changedict);55}5657$viewer = $this->getViewer();58$loader = id(new PhabricatorFileBundleLoader())59->setViewer($viewer);6061$bundle = ArcanistBundle::newFromChanges($changes);62$bundle->setLoadFileDataCallback(array($loader, 'loadFileData'));6364$byte_limit = $this->getByteLimit();65if ($byte_limit) {66$bundle->setByteLimit($byte_limit);67}6869$format = $this->getFormat();70switch ($format) {71case 'git':72return $bundle->toGitPatch();73case 'unified':74default:75return $bundle->toUnifiedDiff();76}77}78}798081