* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Core\Domain\SqlManagement; use PrestaShop\PrestaShop\Core\Domain\SqlManagement\Exception\SqlRequestException; /** * Class DatabaseTablesList stores list of database tables. */ class DatabaseTablesList { /** * @var string[] */ private $dbTables; /** * @param string[] $dbTables * * @throws SqlRequestException */ public function __construct(array $dbTables) { $this->setTables($dbTables); } /** * @return string[] */ public function getTables() { return $this->dbTables; } /** * @param array $tables * * @return self * * @throws SqlRequestException */ private function setTables(array $tables) { $filteredTables = array_filter($tables, 'is_string'); if ($filteredTables !== $tables) { throw new SqlRequestException('Invalid database table list provided. Database tables list must contain string values only.'); } $this->dbTables = $tables; return $this; } }