public function setGridOption($option, $value)
{
foreach ($this->optionValidators as $validator) {
$validator->validate(array_add(array(), $option, $value));
}
if (in_array($option, array('xDimension', 'yDimension', 'aggregates'))) {
foreach ($value as &$v) {
$v = array_merge($this->defaultColModelProperties, $v);
$this->markFunctionTypeProperty($v);
}
}
$property = array_add(array(), $option, $value);
$this->markFunctionTypeProperty($property);
if (in_array($option, $this->pivotOptionsNames)) {
if (isset($this->pivotOptions[$option])) {
$this->pivotOptions[$option] = $property[$option];
} else {
$this->pivotOptions = array_add($this->pivotOptions, $option, $property[$option]);
}
} else {
if (in_array($option, $this->groupHeaderOptionsNames)) {
if (isset($this->groupHeaderOptions[$option])) {
$this->groupHeaderOptions[$option] = $property[$option];
} else {
$this->groupHeaderOptions = array_add($this->groupHeaderOptions, $option, $property[$option]);
}
} else {
if (isset($this->options[$option])) {
$this->options[$option] = $property[$option];
} else {
$this->options = array_add($this->options, $option, $property[$option]);
}
}
}
return $this;
}