3 final class PhabricatorConfigOption
16 private $lockedMessage;
20 private $customObject;
22 public function setBaseClass($base_class) {
23 $this->baseClass
= $base_class;
27 public function getBaseClass() {
28 return $this->baseClass
;
31 public function setHidden($hidden) {
32 $this->hidden
= $hidden;
36 public function getHidden() {
42 PhabricatorEnv
::getEnvConfig('config.hide'),
47 public function setLocked($locked) {
48 $this->locked
= $locked;
52 public function getLocked() {
57 if ($this->getHidden()) {
62 PhabricatorEnv
::getEnvConfig('config.lock'),
67 public function setLockedMessage($message) {
68 $this->lockedMessage
= $message;
72 public function getLockedMessage() {
73 if ($this->lockedMessage
!== null) {
74 return $this->lockedMessage
;
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);
88 public function getExamples() {
89 return $this->examples
;
92 public function setGroup(PhabricatorApplicationConfigOptions
$group) {
93 $this->group
= $group;
97 public function getGroup() {
101 public function setBoolOptions(array $options) {
102 $this->boolOptions
= $options;
106 public function getBoolOptions() {
107 if ($this->boolOptions
) {
108 return $this->boolOptions
;
116 public function setEnumOptions(array $options) {
117 $this->enumOptions
= $options;
121 public function getEnumOptions() {
122 if ($this->enumOptions
) {
123 return $this->enumOptions
;
126 throw new PhutilInvalidStateException('setEnumOptions');
129 public function setKey($key) {
134 public function getKey() {
138 public function setDefault($default) {
139 $this->default = $default;
143 public function getDefault() {
144 return $this->default;
147 public function setSummary($summary) {
148 $this->summary
= $summary;
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;
164 public function getDescription() {
165 return $this->description
;
168 public function setType($type) {
173 public function getType() {
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;
206 public function newDescriptionRemarkupView(PhabricatorUser
$viewer) {
207 $description = $this->getDescription();
208 if (!strlen($description)) {
212 return new PHUIRemarkupView($viewer, $description);