/** * * @param Tx_ExtensionBuilder_Domain_Model_DomainObject $domainObject * * @return Tx_ExtensionBuilder_Domain_Model_Class OR NULL */ public function getRepositoryClass(Tx_ExtensionBuilder_Domain_Model_DomainObject $currentDomainObject) { $extensionDir = $this->previousExtensionDirectory; if (isset($this->oldDomainObjects[$currentDomainObject->getUniqueIdentifier()])) { $oldDomainObject = $this->oldDomainObjects[$currentDomainObject->getUniqueIdentifier()]; $fileName = Tx_ExtensionBuilder_Service_CodeGenerator::getFolderForClassFile($extensionDir, 'Repository', FALSE) . $oldDomainObject->getName() . 'Repository.php'; if (file_exists($fileName)) { include_once $fileName; $className = $oldDomainObject->getDomainRepositoryClassName(); $this->classObject = $this->classParser->parse($className); if ($oldDomainObject->getName() != $currentDomainObject->getName() || $this->extensionRenamed) { $newClassName = $currentDomainObject->getDomainRepositoryClassName(); $this->classObject->setName($newClassName); $this->classObject->setFileName($currentDomainObject->getName() . '_Repository.php'); $this->cleanUp(Tx_ExtensionBuilder_Service_CodeGenerator::getFolderForClassFile($extensionDir, 'Repository'), $oldDomainObject->getName() . 'Repository.php'); } return $this->classObject; } else { t3lib_div::devLog('class file didn\'t exist:' . $fileName, 'extension_builder', 2); } } else { $fileName = Tx_ExtensionBuilder_Service_CodeGenerator::getFolderForClassFile($extensionDir, 'Repository', FALSE) . $currentDomainObject->getName() . 'Repository.php'; if (file_exists($fileName)) { include_once $fileName; $className = $currentDomainObject->getDomainRepositoryClassName(); $this->classObject = $this->classParser->parse($className); t3lib_div::devlog('existing Repository class:' . $fileName, 'extension_builder', 0, (array) $this->classObject); return $this->classObject; } } t3lib_div::devlog('No existing Repository class:' . $currentDomainObject->getName(), 'extension_builder', 2); return NULL; }
/** * * @param $className * @return unknown_type */ protected function parseClass($className) { $classParser = new Tx_ExtensionBuilder_Utility_ClassParser(); $classParser->debugMode = $this->debugMode; $classObject = $classParser->parse($className); $this->assertTrue($classObject instanceof Tx_ExtensionBuilder_Domain_Model_Class_Class); $classReflection = new Tx_ExtensionBuilder_Reflection_ClassReflection($className); $this->ParserFindsAllConstants($classObject, $classReflection); $this->ParserFindsAllMethods($classObject, $classReflection); $this->ParserFindsAllProperties($classObject, $classReflection); return $classObject; }