Exemplo n.º 1
0
 /**
  *
  * @param Tx_ExtensionBuilder_Domain_Model_DomainObject_Action $action
  * @param Tx_ExtensionBuilder_Domain_Model_DomainObject $domainObject
  *
  * @return Tx_ExtensionBuilder_Domain_Model_Class_Method
  */
 protected function buildActionMethod(Tx_ExtensionBuilder_Domain_Model_DomainObject_Action $action, Tx_ExtensionBuilder_Domain_Model_DomainObject $domainObject)
 {
     $actionName = $action->getName();
     $actionMethodName = $actionName . 'Action';
     $actionMethod = new Tx_ExtensionBuilder_Domain_Model_Class_Method($actionMethodName);
     $actionMethod->setDescription('action ' . $action->getName());
     $actionMethod->setBody($this->codeGenerator->getDefaultMethodBody($domainObject, NULL, 'Controller', '', $actionMethodName));
     $actionMethod->addModifier('public');
     if (in_array($actionName, array('show', 'edit', 'create', 'new', 'update', 'delete'))) {
         // these actions need a parameter
         if (in_array($actionName, array('create', 'new'))) {
             $parameterName = 'new' . $domainObject->getName();
         } else {
             $parameterName = t3lib_div::lcfirst($domainObject->getName());
         }
         $parameter = new Tx_ExtensionBuilder_Domain_Model_Class_MethodParameter($parameterName);
         $parameter->setTypeHint($domainObject->getClassName());
         $parameter->setVarType($domainObject->getClassName());
         $parameter->setPosition(0);
         if ($actionName == 'new') {
             $parameter->setOptional(TRUE);
             $actionMethod->setTag('dontvalidate', '$' . $parameterName);
         }
         $actionMethod->setParameter($parameter);
     }
     $actionMethod->setTag('return', 'void');
     return $actionMethod;
 }