protected function setProperty($name, $value) { if ($name == 'type' || $name == 'Type') { $this->_type = $value; return; } if ($name == 'completename' || $name == 'CompleteName') { throw Readonly_Variable_Exception($name); } try { switch ($this->_type) { case self::PERSON: $this->_person->set($name, $value); break; case self::COMPANY: $this->_company->set($name, $value); break; default: throw new Kiwi_Exception('Kiwi_Client type unknown'); } } catch (No_Such_Variable_Exception $e) { parent::setProperty($name, $value); } }