* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Adapter; use PrestaShop\PrestaShop\Core\Foundation\Database\EntityMetaData; /** * Retrieve all meta data of an ObjectModel. */ class EntityMetaDataRetriever { /** * @param string $className * * @return EntityMetaData * * @throws \PrestaShop\PrestaShop\Adapter\CoreException */ public function getEntityMetaData($className) { $metaData = new EntityMetaData(); $metaData->setEntityClassName($className); if (property_exists($className, 'definition')) { // Legacy entity $classVars = get_class_vars($className); $metaData->setTableName($classVars['definition']['table']); $metaData->setPrimaryKeyFieldNames([$classVars['definition']['primary']]); } else { throw new CoreException(sprintf('Cannot get metadata for entity `%s`.', $className)); } return $metaData; } }