/** * setProperty() * * @param array|Zend_CodeGenerator_Php_Property $property * @return Zend_CodeGenerator_Php_Class */ public function setProperty($property) { if (is_array($property)) { $property = new Zend_CodeGenerator_Php_Property($property); $propertyName = $property->getName(); } elseif ($property instanceof Zend_CodeGenerator_Php_Property) { $propertyName = $property->getName(); } else { // require_once 'Zend/CodeGenerator/Php/Exception.php'; throw new Zend_CodeGenerator_Php_Exception('setProperty() expects either an array of property options or an instance of Zend_CodeGenerator_Php_Property'); } if (isset($this->_properties[$propertyName])) { // require_once 'Zend/CodeGenerator/Php/Exception.php'; throw new Zend_CodeGenerator_Php_Exception('A property by name ' . $propertyName . ' already exists in this class.'); } $append = true; foreach ($this->_properties as &$p) { if ($p->getName() === $property->getName()) { $p->setDefaultValue($property->getDefaultValue()); $append = false; } } if ($append === true) { $this->_properties[$propertyName] = $property; } return $this; }