Exemplo n.º 1
0
 /**
  *
  * @param \EBT\ExtensionBuilder\Domain\Model\DomainObject $currentDomainObject
  *
  * @return \EBT\ExtensionBuilder\Domain\Model\ClassObject\ClassObject|null
  */
 public function getRepositoryClassFile(Model\DomainObject $currentDomainObject)
 {
     $extensionDir = $this->previousExtensionDirectory;
     if (isset($this->previousDomainObjects[$currentDomainObject->getUniqueIdentifier()])) {
         $oldDomainObject = $this->previousDomainObjects[$currentDomainObject->getUniqueIdentifier()];
         $fileName = FileGenerator::getFolderForClassFile($extensionDir, 'Repository', false);
         $fileName .= $oldDomainObject->getName() . 'Repository.php';
         if (file_exists($fileName)) {
             $this->classFileObject = $this->parserService->parseFile($fileName);
             $this->classObject = $this->classFileObject->getFirstClass();
             $this->classObject->setName($currentDomainObject->getName() . 'Repository');
             if ($oldDomainObject->getName() != $currentDomainObject->getName() || $this->extensionRenamed) {
                 $newClassName = $currentDomainObject->getDomainRepositoryClassName();
                 $this->classObject->setName($newClassName);
                 $this->cleanUp(FileGenerator::getFolderForClassFile($extensionDir, 'Repository'), $oldDomainObject->getName() . 'Repository.php');
             }
             return $this->classFileObject;
         } else {
             GeneralUtility::devLog('class file didn\'t exist:' . $fileName, 'extension_builder', 2);
         }
     } else {
         $fileName = FileGenerator::getFolderForClassFile($extensionDir, 'Repository', false);
         $fileName .= $currentDomainObject->getName() . 'Repository.php';
         if (file_exists($fileName)) {
             $this->classFileObject = $this->parserService->parseFile($fileName);
             $this->classObject = $this->classFileObject->getFirstClass();
             $this->classObject->setFileName($fileName);
             $this->classObject->setFileName($fileName);
             $this->log('existing Repository class:' . $fileName, 0, (array) $this->classObject);
             return $this->classFileObject;
         }
     }
     $this->log('No existing Repository class:' . $currentDomainObject->getName(), 2);
     return null;
 }