Correct a parameter order swap in "diffusion.historyquery" for Mercurial
[phabricator.git] / src / applications / doorkeeper / engine / DoorkeeperObjectRef.php
blobbbccc7a5d807a58781def1fe3545b3e0ef08be67
1 <?php
3 final class DoorkeeperObjectRef extends Phobject {
5 private $objectKey;
6 private $applicationType;
7 private $applicationDomain;
8 private $objectType;
9 private $objectID;
10 private $attributes = array();
11 private $isVisible;
12 private $syncFailed;
13 private $externalObject;
15 public function newExternalObject() {
16 return id(new DoorkeeperExternalObject())
17 ->setApplicationType($this->getApplicationType())
18 ->setApplicationDomain($this->getApplicationDomain())
19 ->setObjectType($this->getObjectType())
20 ->setObjectID($this->getObjectID())
21 ->setViewPolicy(PhabricatorPolicies::POLICY_USER);
24 public function attachExternalObject(
25 DoorkeeperExternalObject $external_object) {
26 $this->externalObject = $external_object;
27 return $this;
30 public function getExternalObject() {
31 if (!$this->externalObject) {
32 throw new PhutilInvalidStateException('attachExternalObject');
34 return $this->externalObject;
37 public function setIsVisible($is_visible) {
38 $this->isVisible = $is_visible;
39 return $this;
42 public function getIsVisible() {
43 return $this->isVisible;
46 public function setSyncFailed($sync_failed) {
47 $this->syncFailed = $sync_failed;
48 return $this;
51 public function getSyncFailed() {
52 return $this->syncFailed;
55 public function getAttribute($key, $default = null) {
56 return idx($this->attributes, $key, $default);
59 public function setAttribute($key, $value) {
60 $this->attributes[$key] = $value;
61 return $this;
64 public function setObjectID($object_id) {
65 $this->objectID = $object_id;
66 return $this;
69 public function getObjectID() {
70 return $this->objectID;
74 public function setObjectType($object_type) {
75 $this->objectType = $object_type;
76 return $this;
79 public function getObjectType() {
80 return $this->objectType;
84 public function setApplicationDomain($application_domain) {
85 $this->applicationDomain = $application_domain;
86 return $this;
89 public function getApplicationDomain() {
90 return $this->applicationDomain;
94 public function setApplicationType($application_type) {
95 $this->applicationType = $application_type;
96 return $this;
99 public function getApplicationType() {
100 return $this->applicationType;
103 public function getFullName() {
104 return coalesce(
105 $this->getAttribute('fullname'),
106 $this->getAttribute('name'),
107 pht('External Object'));
110 public function getShortName() {
111 return coalesce(
112 $this->getAttribute('shortname'),
113 $this->getAttribute('name'),
114 pht('External Object'));
117 public function getObjectKey() {
118 if (!$this->objectKey) {
119 $this->objectKey = PhabricatorHash::digestForIndex(
120 implode(
121 ':',
122 array(
123 $this->getApplicationType(),
124 $this->getApplicationDomain(),
125 $this->getObjectType(),
126 $this->getObjectID(),
127 )));
129 return $this->objectKey;