예제 #1
0
 /**
  *
  * @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;
         }
     }
 }
예제 #2
0
 /**
  *
  * @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;
 }