123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\EntityManager;
- use Magento\Framework\App\ResourceConnection;
- use Magento\Framework\DB\Sequence\SequenceInterface;
- /**
- * Class EntityMetadata
- */
- class EntityMetadata implements EntityMetadataInterface
- {
- /**
- * @var ResourceConnection
- */
- protected $resourceConnection;
- /**
- * @var string
- */
- protected $entityTableName;
- /**
- * @var null|string
- */
- protected $connectionName;
- /**
- * @var SequenceInterface
- */
- protected $sequence;
- /**
- * @var string
- */
- protected $eavEntityType;
- /**
- * @var string
- */
- protected $identifierField;
- /**
- * @var string[]
- */
- protected $entityContext;
- /**
- * EntityMetadata constructor.
- *
- * @param ResourceConnection $resourceConnection
- * @param string $entityTableName
- * @param string $identifierField
- * @param SequenceInterface|null $sequence
- * @param null $eavEntityType
- * @param null $connectionName
- * @param array $entityContext
- */
- public function __construct(
- ResourceConnection $resourceConnection,
- $entityTableName,
- $identifierField,
- SequenceInterface $sequence = null,
- $eavEntityType = null,
- $connectionName = null,
- $entityContext = []
- ) {
- $this->resourceConnection = $resourceConnection;
- $this->entityTableName = $entityTableName;
- $this->eavEntityType = $eavEntityType;
- $this->connectionName = $connectionName;
- $this->identifierField = $identifierField;
- $this->sequence = $sequence;
- $this->entityContext = $entityContext;
- }
- /**
- * @return string
- */
- public function getIdentifierField()
- {
- return $this->identifierField;
- }
- /**
- * @return string
- */
- public function getLinkField()
- {
- $connection = $this->resourceConnection->getConnectionByName($this->getEntityConnectionName());
- $indexList = $connection->getIndexList($this->getEntityTable());
- return $indexList[$connection->getPrimaryKeyName($this->getEntityTable())]['COLUMNS_LIST'][0];
- }
- /**
- * @return \Magento\Framework\DB\Adapter\AdapterInterface
- * @deprecated 100.1.0
- */
- public function getEntityConnection()
- {
- return $this->resourceConnection->getConnectionByName($this->connectionName);
- }
- /**
- * @return string
- */
- public function getEntityTable()
- {
- return $this->resourceConnection->getTableName($this->entityTableName);
- }
- /**
- * @return string
- */
- public function getEntityConnectionName()
- {
- return $this->connectionName;
- }
- /**
- * @return null|string
- */
- public function generateIdentifier()
- {
- $nextIdentifier = null;
- if ($this->sequence) {
- $nextIdentifier = $this->sequence->getNextValue();
- }
- return $nextIdentifier;
- }
- /**
- * @return string[]
- */
- public function getEntityContext()
- {
- return $this->entityContext;
- }
- /**
- * @return null|string
- */
- public function getEavEntityType()
- {
- return $this->eavEntityType;
- }
- }
|