3 final class DoorkeeperObjectRef
extends Phobject
{
6 private $applicationType;
7 private $applicationDomain;
10 private $attributes = array();
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;
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;
42 public function getIsVisible() {
43 return $this->isVisible
;
46 public function setSyncFailed($sync_failed) {
47 $this->syncFailed
= $sync_failed;
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;
64 public function setObjectID($object_id) {
65 $this->objectID
= $object_id;
69 public function getObjectID() {
70 return $this->objectID
;
74 public function setObjectType($object_type) {
75 $this->objectType
= $object_type;
79 public function getObjectType() {
80 return $this->objectType
;
84 public function setApplicationDomain($application_domain) {
85 $this->applicationDomain
= $application_domain;
89 public function getApplicationDomain() {
90 return $this->applicationDomain
;
94 public function setApplicationType($application_type) {
95 $this->applicationType
= $application_type;
99 public function getApplicationType() {
100 return $this->applicationType
;
103 public function getFullName() {
105 $this->getAttribute('fullname'),
106 $this->getAttribute('name'),
107 pht('External Object'));
110 public function getShortName() {
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(
123 $this->getApplicationType(),
124 $this->getApplicationDomain(),
125 $this->getObjectType(),
126 $this->getObjectID(),
129 return $this->objectKey
;