19declare(strict_types=1);
29use ILIAS\ResourceStorage\Preloader\SecureString;
51 return $this->collection_repository->has($identification);
59 yield
from $this->collection_repository->getResourceIdStrings($identification);
74 if (!$this->id_generator->validateScheme($identification->
serialize())) {
75 throw new \InvalidArgumentException(
'Invalid identification scheme');
81 return $this->collection_repository->blank(
82 $this->id_generator->getUniqueResourceCollectionIdentification(),
90 $existing = $this->collection_repository->existing($identification);
91 if ($existing->hasSpecificOwner()
92 && $existing->getOwner() !== $owner
107 if ($this->lock_handler !==
null) {
108 $result = $this->lock_handler->lockTables(
109 $this->collection_repository->getNamesForLocking(),
110 function () use ($collection, $event_data_container):
void {
111 $this->collection_repository->update($collection, $event_data_container);
114 $result->runAndUnlock();
116 $this->collection_repository->update($collection, $event_data_container);
120 foreach ($event_data_container->get() as $event_data) {
121 $this->events->notify(Event::COLLECTION_RESOURCE_ADDED, $event_data);
129 $this->collection_repository->delete($identification);
135 $this->collection_repository->removeResourceFromAllCollections($identification);
notififyResourceDeletion(ResourceIdentification $identification)
getResourceIdStrings(ResourceCollectionIdentification $identification)
__construct(private CollectionRepository $collection_repository, private Subject $events, private CollectionIdentificationGenerator $id_generator=new UniqueIDCollectionIdentificationGenerator(), private ?LockHandler $lock_handler=null)
has(ResourceCollectionIdentification $identification)
getResourceIds(ResourceCollectionIdentification $identification)
store(ResourceCollection $collection)
validate(ResourceCollectionIdentification $identification)
Class ResourceCollection.
Class ResourceCollectionIdentification.
Class ResourceIdentification.
Class UniqueIDCollectionIdentificationGenerator.
Interface CollectionRepository.
Class CollectionIdentificationGenerator.