public function setter($attr)
{
if (isset($this->_setters[$attr])) {
return $this->_setters[$attr];
} elseif (isset($this->_props[$attr])) {
return $this->_props[$attr]->setter($attr);
} elseif (isset($this->_rels[$attr])) {
return $this->_rels[$attr]->setter($attr);
}
throw new Exception("No setter available for {$attr}");
}