* @copyright 2007-2018 PrestaShop SA * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ 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(array($classVars['definition']['primary'])); } else { throw new CoreException( sprintf( 'Cannot get metadata for entity `%s`.', $className ) ); } return $metaData; } }