Remove product literal strings in "pht()", part 4
[phabricator.git] / src / applications / config / option / PhabricatorConfigOption.php
blob6d7f88bdfb9f4aaf7bf7d4da8302d107aa46afd8
1 <?php
3 final class PhabricatorConfigOption
4 extends Phobject {
6 private $key;
7 private $default;
8 private $summary;
9 private $description;
10 private $type;
11 private $boolOptions;
12 private $enumOptions;
13 private $group;
14 private $examples;
15 private $locked;
16 private $lockedMessage;
17 private $hidden;
18 private $baseClass;
19 private $customData;
20 private $customObject;
22 public function setBaseClass($base_class) {
23 $this->baseClass = $base_class;
24 return $this;
27 public function getBaseClass() {
28 return $this->baseClass;
31 public function setHidden($hidden) {
32 $this->hidden = $hidden;
33 return $this;
36 public function getHidden() {
37 if ($this->hidden) {
38 return true;
41 return idx(
42 PhabricatorEnv::getEnvConfig('config.hide'),
43 $this->getKey(),
44 false);
47 public function setLocked($locked) {
48 $this->locked = $locked;
49 return $this;
52 public function getLocked() {
53 if ($this->locked) {
54 return true;
57 if ($this->getHidden()) {
58 return true;
61 return idx(
62 PhabricatorEnv::getEnvConfig('config.lock'),
63 $this->getKey(),
64 false);
67 public function setLockedMessage($message) {
68 $this->lockedMessage = $message;
69 return $this;
72 public function getLockedMessage() {
73 if ($this->lockedMessage !== null) {
74 return $this->lockedMessage;
76 return pht(
77 'This configuration is locked and can not be edited from the web '.
78 'interface. Use %s in %s to edit it.',
79 phutil_tag('tt', array(), './bin/config'),
80 phutil_tag('tt', array(), 'phabricator/'));
83 public function addExample($value, $description) {
84 $this->examples[] = array($value, $description);
85 return $this;
88 public function getExamples() {
89 return $this->examples;
92 public function setGroup(PhabricatorApplicationConfigOptions $group) {
93 $this->group = $group;
94 return $this;
97 public function getGroup() {
98 return $this->group;
101 public function setBoolOptions(array $options) {
102 $this->boolOptions = $options;
103 return $this;
106 public function getBoolOptions() {
107 if ($this->boolOptions) {
108 return $this->boolOptions;
110 return array(
111 pht('True'),
112 pht('False'),
116 public function setEnumOptions(array $options) {
117 $this->enumOptions = $options;
118 return $this;
121 public function getEnumOptions() {
122 if ($this->enumOptions) {
123 return $this->enumOptions;
126 throw new PhutilInvalidStateException('setEnumOptions');
129 public function setKey($key) {
130 $this->key = $key;
131 return $this;
134 public function getKey() {
135 return $this->key;
138 public function setDefault($default) {
139 $this->default = $default;
140 return $this;
143 public function getDefault() {
144 return $this->default;
147 public function setSummary($summary) {
148 $this->summary = $summary;
149 return $this;
152 public function getSummary() {
153 if (empty($this->summary)) {
154 return $this->getDescription();
156 return $this->summary;
159 public function setDescription($description) {
160 $this->description = $description;
161 return $this;
164 public function getDescription() {
165 return $this->description;
168 public function setType($type) {
169 $this->type = $type;
170 return $this;
173 public function getType() {
174 return $this->type;
177 public function newOptionType() {
178 $type_key = $this->getType();
179 $type_map = PhabricatorConfigType::getAllTypes();
180 return idx($type_map, $type_key);
183 public function isCustomType() {
184 return !strncmp($this->getType(), 'custom:', 7);
187 public function getCustomObject() {
188 if (!$this->customObject) {
189 if (!$this->isCustomType()) {
190 throw new Exception(pht('This option does not have a custom type!'));
192 $this->customObject = newv(substr($this->getType(), 7), array());
194 return $this->customObject;
197 public function getCustomData() {
198 return $this->customData;
201 public function setCustomData($data) {
202 $this->customData = $data;
203 return $this;
206 public function newDescriptionRemarkupView(PhabricatorUser $viewer) {
207 $description = $this->getDescription();
208 if (!strlen($description)) {
209 return null;
212 return new PHUIRemarkupView($viewer, $description);