public function __set($name, $value)
{
switch ($name) {
case 'contentType':
$this->setContentType($value);
break;
case 'onPrepareSelector':
if ($callback = Constraints::isCallable($value, TRUE, FALSE)) {
$this->_onPrepareSelector = $callback;
}
break;
case 'document':
case 'length':
case 'xpath':
throw new \BadMethodCallException('Can not set readonly value.');
default:
$this->{$name} = $value;
break;
}
}