/** * * @param Tx_ExtensionBuilder_Domain_Model_AbstractDomainObjectProperty $oldProperty * @param Tx_ExtensionBuilder_Domain_Model_AbstractDomainObjectProperty $newProperty * * @return boolean */ protected function relatedMethodsNeedUpdate($oldProperty, $newProperty) { if ($this->extensionRenamed) { return TRUE; } if ($newProperty->getName() != $oldProperty->getName()) { t3lib_div::devlog('property renamed:' . $oldProperty->getName() . ' ' . $newProperty->getName(), 'extension_builder', 0); return TRUE; } if ($newProperty->getTypeForComment() != $this->updateExtensionKey($oldProperty->getTypeForComment())) { t3lib_div::devlog('property type changed from ' . $this->updateExtensionKey($oldProperty->getTypeForComment()) . ' to ' . $newProperty->getTypeForComment(), 'extension_builder', 0); return TRUE; } if ($newProperty->isRelation()) { // if only the related domain object was renamed if ($this->getForeignClassName($newProperty) != $this->updateExtensionKey($oldProperty->getForeignClassName())) { t3lib_div::devlog('related domainObject was renamed:' . $this->updateExtensionKey($oldProperty->getForeignClassName()) . ' ->' . $this->getForeignClassName($newProperty), 'extension_builder'); return TRUE; } } }
/** * * @param Tx_ExtensionBuilder_Domain_Model_AbstractDomainObjectProperty $domainProperty * * @return Tx_ExtensionBuilder_Domain_Model_Class_Method */ protected function buildAddMethod($domainProperty) { $propertyName = $domainProperty->getName(); $addMethodName = $this->getMethodName($domainProperty, 'add'); if ($this->classObject->methodExists($addMethodName)) { $addMethod = $this->classObject->getMethod($addMethodName); //t3lib_div::devlog('Existing addMethod imported:' . $addMethodName, 'extension_builder', 0, array('methodBody' => $addMethod->getBody())); } else { //t3lib_div::devlog('new addMethod:' . $addMethodName, 'extension_builder', 0); $addMethod = new Tx_ExtensionBuilder_Domain_Model_Class_Method($addMethodName); // default method body $addMethod->setBody($this->codeGenerator->getDefaultMethodBody(NULL, $domainProperty, 'Model', 'add', '')); $addMethod->setTag('param', $this->getParamTag($domainProperty, 'add')); $addMethod->setTag('return', 'void'); $addMethod->addModifier('public'); } $addParameters = $addMethod->getParameterNames(); if (!in_array(Tx_ExtensionBuilder_Utility_Inflector::singularize($propertyName), $addParameters)) { $addParameter = new Tx_ExtensionBuilder_Domain_Model_Class_MethodParameter($this->getParameterName($domainProperty, 'add')); $addParameter->setVarType($domainProperty->getForeignClassName()); $addParameter->setTypeHint($domainProperty->getForeignClassName()); $addMethod->setParameter($addParameter); } if (!$addMethod->hasDescription()) { $addMethod->setDescription('Adds a ' . $domainProperty->getForeignModelName()); } return $addMethod; }