Page MenuHomePhabricator

D21352.id50865.diff
No OneTemporary

D21352.id50865.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -168,8 +168,6 @@
'ArcanistDifferentialDependencyGraph' => 'differential/ArcanistDifferentialDependencyGraph.php',
'ArcanistDifferentialRevisionHash' => 'differential/constants/ArcanistDifferentialRevisionHash.php',
'ArcanistDifferentialRevisionStatus' => 'differential/constants/ArcanistDifferentialRevisionStatus.php',
- 'ArcanistDisplayRef' => 'ref/ArcanistDisplayRef.php',
- 'ArcanistDisplayRefInterface' => 'ref/ArcanistDisplayRefInterface.php',
'ArcanistDoubleQuoteXHPASTLinterRule' => 'lint/linter/xhpast/rules/ArcanistDoubleQuoteXHPASTLinterRule.php',
'ArcanistDoubleQuoteXHPASTLinterRuleTestCase' => 'lint/linter/xhpast/rules/__tests__/ArcanistDoubleQuoteXHPASTLinterRuleTestCase.php',
'ArcanistDownloadWorkflow' => 'workflow/ArcanistDownloadWorkflow.php',
@@ -415,6 +413,7 @@
'ArcanistRaggedClassTreeEdgeXHPASTLinterRuleTestCase' => 'lint/linter/xhpast/rules/__tests__/ArcanistRaggedClassTreeEdgeXHPASTLinterRuleTestCase.php',
'ArcanistRef' => 'ref/ArcanistRef.php',
'ArcanistRefInspector' => 'inspector/ArcanistRefInspector.php',
+ 'ArcanistRefView' => 'ref/ArcanistRefView.php',
'ArcanistRemoteRef' => 'repository/remote/ArcanistRemoteRef.php',
'ArcanistRepositoryAPI' => 'repository/api/ArcanistRepositoryAPI.php',
'ArcanistRepositoryAPIMiscTestCase' => 'repository/api/__tests__/ArcanistRepositoryAPIMiscTestCase.php',
@@ -1084,21 +1083,12 @@
'ArcanistBrowseURIRef' => 'ArcanistRef',
'ArcanistBrowseWorkflow' => 'ArcanistArcWorkflow',
'ArcanistBuildBuildplanHardpointQuery' => 'ArcanistRuntimeHardpointQuery',
- 'ArcanistBuildPlanRef' => array(
- 'ArcanistRef',
- 'ArcanistDisplayRefInterface',
- ),
+ 'ArcanistBuildPlanRef' => 'ArcanistRef',
'ArcanistBuildPlanSymbolRef' => 'ArcanistSimpleSymbolRef',
- 'ArcanistBuildRef' => array(
- 'ArcanistRef',
- 'ArcanistDisplayRefInterface',
- ),
+ 'ArcanistBuildRef' => 'ArcanistRef',
'ArcanistBuildSymbolRef' => 'ArcanistSimpleSymbolRef',
'ArcanistBuildableBuildsHardpointQuery' => 'ArcanistRuntimeHardpointQuery',
- 'ArcanistBuildableRef' => array(
- 'ArcanistRef',
- 'ArcanistDisplayRefInterface',
- ),
+ 'ArcanistBuildableRef' => 'ArcanistRef',
'ArcanistBuildableSymbolRef' => 'ArcanistSimpleSymbolRef',
'ArcanistBundle' => 'Phobject',
'ArcanistBundleTestCase' => 'PhutilTestCase',
@@ -1196,10 +1186,6 @@
'ArcanistDifferentialDependencyGraph' => 'AbstractDirectedGraph',
'ArcanistDifferentialRevisionHash' => 'Phobject',
'ArcanistDifferentialRevisionStatus' => 'Phobject',
- 'ArcanistDisplayRef' => array(
- 'Phobject',
- 'ArcanistTerminalStringInterface',
- ),
'ArcanistDoubleQuoteXHPASTLinterRule' => 'ArcanistXHPASTLinterRule',
'ArcanistDoubleQuoteXHPASTLinterRuleTestCase' => 'ArcanistXHPASTLinterRuleTestCase',
'ArcanistDownloadWorkflow' => 'ArcanistArcWorkflow',
@@ -1224,10 +1210,7 @@
'ArcanistExtractUseXHPASTLinterRuleTestCase' => 'ArcanistXHPASTLinterRuleTestCase',
'ArcanistFileConfigurationSource' => 'ArcanistFilesystemConfigurationSource',
'ArcanistFileDataRef' => 'Phobject',
- 'ArcanistFileRef' => array(
- 'ArcanistRef',
- 'ArcanistDisplayRefInterface',
- ),
+ 'ArcanistFileRef' => 'ArcanistRef',
'ArcanistFileSymbolRef' => 'ArcanistSimpleSymbolRef',
'ArcanistFileUploader' => 'Phobject',
'ArcanistFilenameLinter' => 'ArcanistLinter',
@@ -1357,10 +1340,7 @@
'ArcanistLogicalOperatorsXHPASTLinterRuleTestCase' => 'ArcanistXHPASTLinterRuleTestCase',
'ArcanistLowercaseFunctionsXHPASTLinterRule' => 'ArcanistXHPASTLinterRule',
'ArcanistLowercaseFunctionsXHPASTLinterRuleTestCase' => 'ArcanistXHPASTLinterRuleTestCase',
- 'ArcanistMarkerRef' => array(
- 'ArcanistRef',
- 'ArcanistDisplayRefInterface',
- ),
+ 'ArcanistMarkerRef' => 'ArcanistRef',
'ArcanistMarkersWorkflow' => 'ArcanistArcWorkflow',
'ArcanistMercurialAPI' => 'ArcanistRepositoryAPI',
'ArcanistMercurialCommitMessageHardpointQuery' => 'ArcanistWorkflowMercurialHardpointQuery',
@@ -1420,10 +1400,7 @@
'ArcanistParenthesesSpacingXHPASTLinterRuleTestCase' => 'ArcanistXHPASTLinterRuleTestCase',
'ArcanistParseStrUseXHPASTLinterRule' => 'ArcanistXHPASTLinterRule',
'ArcanistParseStrUseXHPASTLinterRuleTestCase' => 'ArcanistXHPASTLinterRuleTestCase',
- 'ArcanistPasteRef' => array(
- 'ArcanistRef',
- 'ArcanistDisplayRefInterface',
- ),
+ 'ArcanistPasteRef' => 'ArcanistRef',
'ArcanistPasteSymbolRef' => 'ArcanistSimpleSymbolRef',
'ArcanistPasteWorkflow' => 'ArcanistArcWorkflow',
'ArcanistPatchWorkflow' => 'ArcanistWorkflow',
@@ -1454,6 +1431,10 @@
'ArcanistRaggedClassTreeEdgeXHPASTLinterRuleTestCase' => 'ArcanistXHPASTLinterRuleTestCase',
'ArcanistRef' => 'ArcanistHardpointObject',
'ArcanistRefInspector' => 'Phobject',
+ 'ArcanistRefView' => array(
+ 'Phobject',
+ 'ArcanistTerminalStringInterface',
+ ),
'ArcanistRemoteRef' => 'ArcanistRef',
'ArcanistRepositoryAPI' => 'Phobject',
'ArcanistRepositoryAPIMiscTestCase' => 'PhutilTestCase',
@@ -1473,10 +1454,7 @@
'ArcanistRevisionBuildableHardpointQuery' => 'ArcanistRuntimeHardpointQuery',
'ArcanistRevisionCommitMessageHardpointQuery' => 'ArcanistRuntimeHardpointQuery',
'ArcanistRevisionParentRevisionsHardpointQuery' => 'ArcanistRuntimeHardpointQuery',
- 'ArcanistRevisionRef' => array(
- 'ArcanistRef',
- 'ArcanistDisplayRefInterface',
- ),
+ 'ArcanistRevisionRef' => 'ArcanistRef',
'ArcanistRevisionRefSource' => 'Phobject',
'ArcanistRevisionSymbolRef' => 'ArcanistSimpleSymbolRef',
'ArcanistRuboCopLinter' => 'ArcanistExternalLinter',
@@ -1517,10 +1495,7 @@
'ArcanistSymbolRef' => 'ArcanistRef',
'ArcanistSyntaxErrorXHPASTLinterRule' => 'ArcanistXHPASTLinterRule',
'ArcanistSystemConfigurationSource' => 'ArcanistFilesystemConfigurationSource',
- 'ArcanistTaskRef' => array(
- 'ArcanistRef',
- 'ArcanistDisplayRefInterface',
- ),
+ 'ArcanistTaskRef' => 'ArcanistRef',
'ArcanistTaskSymbolRef' => 'ArcanistSimpleSymbolRef',
'ArcanistTasksWorkflow' => 'ArcanistWorkflow',
'ArcanistTautologicalExpressionXHPASTLinterRule' => 'ArcanistXHPASTLinterRule',
@@ -1570,10 +1545,7 @@
'ArcanistUselessOverridingMethodXHPASTLinterRuleTestCase' => 'ArcanistXHPASTLinterRuleTestCase',
'ArcanistUserAbortException' => 'ArcanistUsageException',
'ArcanistUserConfigurationSource' => 'ArcanistFilesystemConfigurationSource',
- 'ArcanistUserRef' => array(
- 'ArcanistRef',
- 'ArcanistDisplayRefInterface',
- ),
+ 'ArcanistUserRef' => 'ArcanistRef',
'ArcanistUserSymbolHardpointQuery' => 'ArcanistRuntimeHardpointQuery',
'ArcanistUserSymbolRef' => 'ArcanistSymbolRef',
'ArcanistUserSymbolRefInspector' => 'ArcanistRefInspector',
diff --git a/src/land/engine/ArcanistLandEngine.php b/src/land/engine/ArcanistLandEngine.php
--- a/src/land/engine/ArcanistLandEngine.php
+++ b/src/land/engine/ArcanistLandEngine.php
@@ -305,7 +305,7 @@
$viewer->getMonogram()));
foreach ($unauthored as $revision_ref) {
- $display_ref = $revision_ref->newDisplayRef();
+ $display_ref = $revision_ref->newRefView();
$author_ref = $revision_ref->getAuthorRef();
if ($author_ref) {
@@ -373,7 +373,7 @@
phutil_count($planned)));
foreach ($planned as $revision_ref) {
- echo tsprintf('%s', $revision_ref->newDisplayRef());
+ echo tsprintf('%s', $revision_ref->newRefView());
}
$query = pht(
@@ -402,7 +402,7 @@
$example_ref->getStatusDisplayName()));
foreach ($published as $revision_ref) {
- echo tsprintf('%s', $revision_ref->newDisplayRef());
+ echo tsprintf('%s', $revision_ref->newRefView());
}
$query = pht(
@@ -429,7 +429,7 @@
phutil_count($not_accepted)));
foreach ($not_accepted as $revision_ref) {
- $display_ref = $revision_ref->newDisplayRef();
+ $display_ref = $revision_ref->newRefView();
$display_ref->appendLine(
pht(
'Status: %s',
@@ -493,7 +493,7 @@
foreach ($open_parents as $parent_phid => $spec) {
$parent_ref = $spec['ref'];
- $display_ref = $parent_ref->newDisplayRef();
+ $display_ref = $parent_ref->newRefView();
$display_ref->appendLine(
pht(
@@ -686,38 +686,31 @@
$prompt_key = 'arc.land.ongoing-builds';
}
+ $workflow = $this->getWorkflow();
+
echo tsprintf("\n");
foreach ($build_map as $build_item) {
$revision_ref = $build_item['revisionRef'];
+ $revision_view = $revision_ref->newRefView();
+
+ $buildable_ref = $revision_ref->getBuildableRef();
+ $buildable_view = $buildable_ref->newRefView();
+
+ $raw_uri = $buildable_ref->getURI();
+ $raw_uri = $workflow->getAbsoluteURI($raw_uri);
+ $buildable_view->setURI($raw_uri);
- echo tsprintf('%s', $revision_ref->newDisplayRef());
+ $revision_view->addChild($buildable_view);
foreach ($build_item['buildRefs'] as $build_ref) {
- echo tsprintf('%s', $build_ref->newDisplayRef());
+ $build_view = $build_ref->newRefView();
+ $buildable_view->addChild($build_view);
}
+ echo tsprintf('%s', $revision_view);
echo tsprintf("\n");
}
- echo tsprintf(
- "\n%s\n",
- pht('You can review build details here:'));
-
- // TODO: Only show buildables with problem builds.
-
- $workflow = $this->getWorkflow();
-
- foreach ($buildable_refs as $buildable) {
- $display_ref = $buildable->newDisplayRef();
-
- $raw_uri = $buildable->getURI();
- $raw_uri = $workflow->getAbsoluteURI($raw_uri);
-
- $display_ref->setURI($raw_uri);
-
- echo tsprintf('%s', $display_ref);
- }
-
$this->getWorkflow()
->getPrompt($prompt_key)
->setQuery($query)
@@ -777,7 +770,7 @@
echo tsprintf(
"\n%s",
- $revision_ref->newDisplayRef());
+ $revision_ref->newRefView());
foreach ($set->getCommits() as $commit) {
$is_implicit = $commit->getIsImplicitCommit();
@@ -969,7 +962,7 @@
foreach ($revision_refs as $revision_ref) {
echo tsprintf(
'%s',
- $revision_ref->newDisplayRef());
+ $revision_ref->newRefView());
}
echo tsprintf("\n");
diff --git a/src/land/engine/ArcanistMercurialLandEngine.php b/src/land/engine/ArcanistMercurialLandEngine.php
--- a/src/land/engine/ArcanistMercurialLandEngine.php
+++ b/src/land/engine/ArcanistMercurialLandEngine.php
@@ -108,7 +108,7 @@
$marker_type));
foreach ($named_markers as $named_marker) {
- echo tsprintf('%s', $named_marker->newDisplayRef());
+ echo tsprintf('%s', $named_marker->newRefView());
}
echo tsprintf("\n");
@@ -327,7 +327,7 @@
pht('These branches were selected:'));
foreach ($branches as $branch) {
- echo tsprintf('%s', $branch->newDisplayRef());
+ echo tsprintf('%s', $branch->newRefView());
}
echo tsprintf("\n");
@@ -352,7 +352,7 @@
foreach ($new_markers as $new_marker) {
- echo tsprintf('%s', $new_marker->newDisplayRef());
+ echo tsprintf('%s', $new_marker->newRefView());
}
echo tsprintf("\n");
diff --git a/src/ref/ArcanistDisplayRefInterface.php b/src/ref/ArcanistDisplayRefInterface.php
deleted file mode 100644
--- a/src/ref/ArcanistDisplayRefInterface.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-interface ArcanistDisplayRefInterface {
-
- public function getDisplayRefObjectName();
- public function getDisplayRefTitle();
-
-}
diff --git a/src/ref/ArcanistRef.php b/src/ref/ArcanistRef.php
--- a/src/ref/ArcanistRef.php
+++ b/src/ref/ArcanistRef.php
@@ -5,8 +5,17 @@
abstract public function getRefDisplayName();
- final public function newDisplayRef() {
- return id(new ArcanistDisplayRef())
+ final public function newRefView() {
+ $ref_view = id(new ArcanistRefView())
->setRef($this);
+
+ $this->buildRefView($ref_view);
+
+ return $ref_view;
}
+
+ protected function buildRefView(ArcanistRefView $view) {
+ return null;
+ }
+
}
diff --git a/src/ref/ArcanistDisplayRef.php b/src/ref/ArcanistRefView.php
rename from src/ref/ArcanistDisplayRef.php
rename to src/ref/ArcanistRefView.php
--- a/src/ref/ArcanistDisplayRef.php
+++ b/src/ref/ArcanistRefView.php
@@ -1,13 +1,16 @@
<?php
-final class ArcanistDisplayRef
+final class ArcanistRefView
extends Phobject
implements
ArcanistTerminalStringInterface {
+ private $objectName;
+ private $title;
private $ref;
private $uri;
private $lines = array();
+ private $children = array();
public function setRef(ArcanistRef $ref) {
$this->ref = $ref;
@@ -18,6 +21,24 @@
return $this->ref;
}
+ public function setObjectName($object_name) {
+ $this->objectName = $object_name;
+ return $this;
+ }
+
+ public function getObjectName() {
+ return $this->objectName;
+ }
+
+ public function setTitle($title) {
+ $this->title = $title;
+ return $this;
+ }
+
+ public function getTitle() {
+ return $this->title;
+ }
+
public function setURI($uri) {
$this->uri = $uri;
return $this;
@@ -27,21 +48,29 @@
return $this->uri;
}
+ public function addChild(ArcanistRefView $view) {
+ $this->children[] = $view;
+ return $this;
+ }
+
+ private function getChildren() {
+ return $this->children;
+ }
+
public function appendLine($line) {
$this->lines[] = $line;
return $this;
}
public function newTerminalString() {
+ return $this->newLines(0);
+ }
+
+ private function newLines($indent) {
$ref = $this->getRef();
- if ($ref instanceof ArcanistDisplayRefInterface) {
- $object_name = $ref->getDisplayRefObjectName();
- $title = $ref->getDisplayRefTitle();
- } else {
- $object_name = null;
- $title = $ref->getRefDisplayName();
- }
+ $object_name = $this->getObjectName();
+ $title = $this->getTitle();
if ($object_name !== null) {
$reserve_width = phutil_utf8_console_strlen($object_name) + 1;
@@ -49,10 +78,18 @@
$reserve_width = 0;
}
+ if ($indent) {
+ $indent_text = str_repeat(' ', $indent);
+ } else {
+ $indent_text = '';
+ }
+ $indent_width = strlen($indent_text);
+
$marker_width = 6;
$display_width = phutil_console_get_terminal_width();
$usable_width = ($display_width - $marker_width - $reserve_width);
+ $usable_width = ($usable_width - $indent_width);
// If the terminal is extremely narrow, don't degrade so much that the
// output is completely unusable.
@@ -75,22 +112,32 @@
$display_text = $title;
}
- $ref = $this->getRef();
$output = array();
$output[] = tsprintf(
- "<bg:cyan>** * **</bg> %s\n",
+ "<bg:cyan>** * **</bg> %s%s\n",
+ $indent_text,
$display_text);
$uri = $this->getURI();
if ($uri !== null) {
$output[] = tsprintf(
- "<bg:cyan>** :// **</bg> __%s__\n",
+ "<bg:cyan>** :// **</bg> %s__%s__\n",
+ $indent_text,
$uri);
}
foreach ($this->lines as $line) {
- $output[] = tsprintf(" %s\n", $line);
+ $output[] = tsprintf(
+ " %s%s\n",
+ $indent_text,
+ $line);
+ }
+
+ foreach ($this->getChildren() as $child) {
+ foreach ($child->newLines($indent + 1) as $line) {
+ $output[] = $line;
+ }
}
return $output;
diff --git a/src/ref/build/ArcanistBuildRef.php b/src/ref/build/ArcanistBuildRef.php
--- a/src/ref/build/ArcanistBuildRef.php
+++ b/src/ref/build/ArcanistBuildRef.php
@@ -1,9 +1,7 @@
<?php
final class ArcanistBuildRef
- extends ArcanistRef
- implements
- ArcanistDisplayRefInterface {
+ extends ArcanistRef {
const HARDPOINT_BUILDPLANREF = 'ref.build.buildplanRef';
@@ -16,7 +14,7 @@
}
public function getRefDisplayName() {
- return $this->getDisplayRefObjectName();
+ return pht('Build %d', $this->getID());
}
public static function newFromConduit(array $parameters) {
@@ -37,12 +35,10 @@
return idxv($this->parameters, array('fields', 'name'));
}
- public function getDisplayRefObjectName() {
- return pht('Build %d', $this->getID());
- }
-
- public function getDisplayRefTitle() {
- return $this->getName();
+ protected function buildRefView(ArcanistRefView $view) {
+ $view
+ ->setObjectName($this->getRefDisplayName())
+ ->setTitle($this->getName());
}
public function getBuildPlanRef() {
diff --git a/src/ref/buildable/ArcanistBuildableRef.php b/src/ref/buildable/ArcanistBuildableRef.php
--- a/src/ref/buildable/ArcanistBuildableRef.php
+++ b/src/ref/buildable/ArcanistBuildableRef.php
@@ -1,9 +1,7 @@
<?php
final class ArcanistBuildableRef
- extends ArcanistRef
- implements
- ArcanistDisplayRefInterface {
+ extends ArcanistRef {
const HARDPOINT_BUILDREFS = 'ref.buildable.buildRefs';
@@ -44,12 +42,10 @@
return 'B'.$this->getID();
}
- public function getDisplayRefObjectName() {
- return $this->getMonogram();
- }
-
- public function getDisplayRefTitle() {
- return pht('Buildable %d', $this->getID());
+ protected function buildRefView(ArcanistRefView $view) {
+ $view
+ ->setObjectName($this->getMonogram())
+ ->setTitle($this->getRefDisplayName());
}
public function getBuildRefs() {
diff --git a/src/ref/buildplan/ArcanistBuildPlanRef.php b/src/ref/buildplan/ArcanistBuildPlanRef.php
--- a/src/ref/buildplan/ArcanistBuildPlanRef.php
+++ b/src/ref/buildplan/ArcanistBuildPlanRef.php
@@ -1,14 +1,12 @@
<?php
final class ArcanistBuildPlanRef
- extends ArcanistRef
- implements
- ArcanistDisplayRefInterface {
+ extends ArcanistRef {
private $parameters;
public function getRefDisplayName() {
- return $this->getDisplayRefObjectName();
+ return pht('Build Plan %d', $this->getID());
}
public static function newFromConduit(array $parameters) {
@@ -29,14 +27,6 @@
return idxv($this->parameters, array('fields', 'name'));
}
- public function getDisplayRefObjectName() {
- return pht('Build Plan %d', $this->getID());
- }
-
- public function getDisplayRefTitle() {
- return $this->getName();
- }
-
public function getBehavior($behavior_key, $default = null) {
return idxv(
$this->parameters,
@@ -44,4 +34,10 @@
$default);
}
+ protected function buildRefView(ArcanistRefView $view) {
+ $view
+ ->setObjectName($this->getRefDisplayName())
+ ->setTitle($this->getName());
+ }
+
}
diff --git a/src/ref/file/ArcanistFileRef.php b/src/ref/file/ArcanistFileRef.php
--- a/src/ref/file/ArcanistFileRef.php
+++ b/src/ref/file/ArcanistFileRef.php
@@ -1,9 +1,7 @@
<?php
final class ArcanistFileRef
- extends ArcanistRef
- implements
- ArcanistDisplayRefInterface {
+ extends ArcanistRef {
private $parameters;
@@ -51,12 +49,10 @@
return 'F'.$this->getID();
}
- public function getDisplayRefObjectName() {
- return $this->getMonogram();
- }
-
- public function getDisplayRefTitle() {
- return $this->getName();
+ protected function buildRefView(ArcanistRefView $view) {
+ $view
+ ->setObjectName($this->getMonogram())
+ ->setTitle($this->getName());
}
}
diff --git a/src/ref/paste/ArcanistPasteRef.php b/src/ref/paste/ArcanistPasteRef.php
--- a/src/ref/paste/ArcanistPasteRef.php
+++ b/src/ref/paste/ArcanistPasteRef.php
@@ -1,9 +1,7 @@
<?php
final class ArcanistPasteRef
- extends ArcanistRef
- implements
- ArcanistDisplayRefInterface {
+ extends ArcanistRef {
private $parameters;
@@ -47,12 +45,10 @@
return 'P'.$this->getID();
}
- public function getDisplayRefObjectName() {
- return $this->getMonogram();
- }
-
- public function getDisplayRefTitle() {
- return $this->getTitle();
+ protected function buildRefView(ArcanistRefView $view) {
+ $view
+ ->setObjectName($this->getMonogram())
+ ->setTitle($this->getName());
}
}
diff --git a/src/ref/revision/ArcanistRevisionRef.php b/src/ref/revision/ArcanistRevisionRef.php
--- a/src/ref/revision/ArcanistRevisionRef.php
+++ b/src/ref/revision/ArcanistRevisionRef.php
@@ -1,9 +1,7 @@
<?php
final class ArcanistRevisionRef
- extends ArcanistRef
- implements
- ArcanistDisplayRefInterface {
+ extends ArcanistRef {
const HARDPOINT_COMMITMESSAGE = 'ref.revision.commitmessage';
const HARDPOINT_AUTHORREF = 'ref.revision.authorRef';
@@ -167,12 +165,10 @@
return $this->getHardpoint(self::HARDPOINT_BUILDABLEREF);
}
- public function getDisplayRefObjectName() {
- return $this->getMonogram();
- }
-
- public function getDisplayRefTitle() {
- return $this->getName();
+ protected function buildRefView(ArcanistRefView $view) {
+ $view
+ ->setObjectName($this->getMonogram())
+ ->setTitle($this->getTitle());
}
}
diff --git a/src/ref/task/ArcanistTaskRef.php b/src/ref/task/ArcanistTaskRef.php
--- a/src/ref/task/ArcanistTaskRef.php
+++ b/src/ref/task/ArcanistTaskRef.php
@@ -1,9 +1,7 @@
<?php
final class ArcanistTaskRef
- extends ArcanistRef
- implements
- ArcanistDisplayRefInterface {
+ extends ArcanistRef {
private $parameters;
@@ -33,12 +31,10 @@
return 'T'.$this->getID();
}
- public function getDisplayRefObjectName() {
- return $this->getMonogram();
- }
-
- public function getDisplayRefTitle() {
- return $this->getName();
+ protected function buildRefView(ArcanistRefView $view) {
+ $view
+ ->setObjectName($this->getMonogram())
+ ->setTitle($this->getName());
}
}
diff --git a/src/ref/user/ArcanistUserRef.php b/src/ref/user/ArcanistUserRef.php
--- a/src/ref/user/ArcanistUserRef.php
+++ b/src/ref/user/ArcanistUserRef.php
@@ -1,9 +1,7 @@
<?php
final class ArcanistUserRef
- extends ArcanistRef
- implements
- ArcanistDisplayRefInterface {
+ extends ArcanistRef {
private $parameters;
@@ -49,18 +47,16 @@
return idxv($this->parameters, array('fields', 'realName'));
}
- public function getDisplayRefObjectName() {
- return $this->getMonogram();
- }
-
- public function getDisplayRefTitle() {
+ protected function buildRefView(ArcanistRefView $view) {
$real_name = $this->getRealName();
-
if (strlen($real_name)) {
$real_name = sprintf('(%s)', $real_name);
}
- return $real_name;
+ $view
+ ->setObjectName($this->getMonogram())
+ ->setTitle($real_name);
}
+
}
diff --git a/src/repository/marker/ArcanistMarkerRef.php b/src/repository/marker/ArcanistMarkerRef.php
--- a/src/repository/marker/ArcanistMarkerRef.php
+++ b/src/repository/marker/ArcanistMarkerRef.php
@@ -1,9 +1,7 @@
<?php
final class ArcanistMarkerRef
- extends ArcanistRef
- implements
- ArcanistDisplayRefInterface {
+ extends ArcanistRef {
const HARDPOINT_COMMITREF = 'arc.marker.commitRef';
const HARDPOINT_WORKINGCOPYSTATEREF = 'arc.marker.workingCopyStateRef';
@@ -24,10 +22,6 @@
private $isActive = false;
public function getRefDisplayName() {
- return $this->getDisplayRefObjectName();
- }
-
- public function getDisplayRefObjectName() {
switch ($this->getMarkerType()) {
case self::TYPE_BRANCH:
return pht('Branch "%s"', $this->getName());
@@ -38,13 +32,6 @@
}
}
- public function getDisplayRefTitle() {
- return pht(
- '%s %s',
- $this->getDisplayHash(),
- $this->getSummary());
- }
-
protected function newHardpoints() {
return array(
$this->newHardpoint(self::HARDPOINT_COMMITREF),
@@ -98,8 +85,6 @@
return $this->displayHash;
}
-
-
public function setCommitHash($commit_hash) {
$this->commitHash = $commit_hash;
return $this;
@@ -177,4 +162,15 @@
return $this->getHardpoint(self::HARDPOINT_REMOTEREF);
}
+ protected function buildRefView(ArcanistRefView $view) {
+ $title = pht(
+ '%s %s',
+ $this->getDisplayHash(),
+ $this->getSummary());
+
+ $view
+ ->setObjectName($this->getRefDisplayName())
+ ->setTitle($title);
+ }
+
}
diff --git a/src/work/ArcanistWorkEngine.php b/src/work/ArcanistWorkEngine.php
--- a/src/work/ArcanistWorkEngine.php
+++ b/src/work/ArcanistWorkEngine.php
@@ -163,7 +163,7 @@
$revision_ref->getMonogram()));
foreach ($selected as $marker) {
- echo tsprintf('%s', $marker->newDisplayRef());
+ echo tsprintf('%s', $marker->newRefView());
}
echo tsprintf("\n");
@@ -177,7 +177,7 @@
pht('REVISION'),
pht('Resuming work on revision:'));
- echo tsprintf('%s', $revision_ref->newDisplayRef());
+ echo tsprintf('%s', $revision_ref->newRefView());
echo tsprintf("\n");
return $target;
diff --git a/src/workflow/ArcanistAmendWorkflow.php b/src/workflow/ArcanistAmendWorkflow.php
--- a/src/workflow/ArcanistAmendWorkflow.php
+++ b/src/workflow/ArcanistAmendWorkflow.php
@@ -108,7 +108,7 @@
echo tsprintf(
"%s\n\n%s\n",
pht('Amending commit message to reflect revision:'),
- $revision_ref->newDisplayRef());
+ $revision_ref->newRefView());
$this->confirmAmendAuthor($revision_ref);
$this->confirmAmendNotFound($revision_ref, $state_ref);
@@ -193,7 +193,7 @@
"%!\n%W\n\n%B\n",
pht('MULTIPLE REVISIONS IN WORKING COPY'),
pht('More than one revision was found in the working copy:'),
- mpull($revisions, 'newDisplayRef'));
+ mpull($revisions, 'newRefView'));
throw new PhutilArgumentUsageException(
pht(
@@ -233,7 +233,7 @@
'The author of this revision (%s) is:',
$revision_ref->getMonogram()),
),
- $author_ref->newDisplayRef());
+ $author_ref->newRefView());
$prompt = pht(
'Amend working copy using revision owned by %s?',
diff --git a/src/workflow/ArcanistPasteWorkflow.php b/src/workflow/ArcanistPasteWorkflow.php
--- a/src/workflow/ArcanistPasteWorkflow.php
+++ b/src/workflow/ArcanistPasteWorkflow.php
@@ -159,7 +159,7 @@
echo tsprintf(
'%s',
- $paste_ref->newDisplayRef()
+ $paste_ref->newRefView()
->setURI($uri));
if ($is_browse) {
diff --git a/src/workflow/ArcanistUploadWorkflow.php b/src/workflow/ArcanistUploadWorkflow.php
--- a/src/workflow/ArcanistUploadWorkflow.php
+++ b/src/workflow/ArcanistUploadWorkflow.php
@@ -119,7 +119,7 @@
$uri = $this->getAbsoluteURI($uri);
echo tsprintf(
'%s',
- $ref->newDisplayRef()
+ $ref->newRefView()
->setURI($uri));
}
}

File Metadata

Mime Type
text/plain
Expires
Mon, Mar 10, 4:06 PM (1 d, 18 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7223346
Default Alt Text
D21352.id50865.diff (26 KB)

Event Timeline