56830a78983b1d5946865e16dbfe75fffca11a09
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Classes / Resource / FileCollectionRepository.php
1 <?php
2 namespace TYPO3\CMS\Core\Resource;
3
4 /*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 use TYPO3\CMS\Core\Collection\RecordCollectionRepository;
18 use TYPO3\CMS\Core\Utility\GeneralUtility;
19
20 /**
21 * Repository for accessing the collections stored in the database
22 */
23 class FileCollectionRepository extends RecordCollectionRepository
24 {
25 /**
26 * @var string
27 */
28 protected $table = 'sys_file_collection';
29
30 /**
31 * @var string
32 */
33 protected $typeField = 'type';
34
35 /**
36 * Finds a record collection by uid.
37 *
38 * @param int $uid The uid to be looked up
39 * @return NULL|Collection\AbstractFileCollection
40 * @throws Exception\ResourceDoesNotExistException
41 */
42 public function findByUid($uid)
43 {
44 $object = parent::findByUid($uid);
45 if ($object === null) {
46 throw new Exception\ResourceDoesNotExistException('Could not find row with uid "' . $uid . '" in table "' . $this->table . '"', 1314354066);
47 }
48 return $object;
49 }
50
51 /**
52 * Creates a record collection domain object.
53 *
54 * @param array $record Database record to be reconsituted
55 *
56 * @return Collection\AbstractFileCollection
57 */
58 protected function createDomainObject(array $record)
59 {
60 return $this->getFileFactory()->createCollectionObject($record);
61 }
62
63 /**
64 * Gets the file factory.
65 *
66 * @return ResourceFactory
67 */
68 protected function getFileFactory()
69 {
70 return GeneralUtility::makeInstance(ResourceFactory::class);
71 }
72 }