19 declare(strict_types=1);
    64         ?
string $collection_identification = null,
    67         if ($collection_identification === null
    68             || $collection_identification === 
''    71             $collection = $this->collection_builder->new($owner);
    72             $identification = $collection->getIdentification();
    73             $this->cache[$identification->serialize()] = $collection;
    75             return $identification;
    81     public function exists(
string $collection_identification): bool
    87         ?
string $collection_identification = null,
    90         if ($this->
exists($collection_identification)) {
    91             return $this->
id($collection_identification, $owner);
   102         $collection = $this->cache[$rcid] ?? $this->collection_builder->get(
   109         $rids = isset($this->cache[$rcid])
   110             ? $this->cache[$rcid]->getResourceIdentifications()
   111             : $this->rid_cache[$rcid]
   112             ?? iterator_to_array($this->collection_builder->getResourceIds($identification));
   114         $this->rid_cache[$rcid] = []; 
   115         $collection->clear();
   117         foreach ($rids as $resource_identification) {
   118             if ($this->resource_builder->has($resource_identification)) {
   119                 $collection->add($resource_identification);
   120                 $preload[] = $resource_identification;
   122             $this->rid_cache[$rcid][] = $resource_identification;
   124         $this->preloader->preload($preload);
   126         return $this->cache[$rcid] = $collection;
   133         return $this->collection_builder->store($collection);
   138         $target_collection_id = $this->
id();
   139         $target_collection = $this->
get($target_collection_id);
   140         $source_collection = $this->
get($source_collection_id);
   142         foreach ($source_collection->getResourceIdentifications() as $identification) {
   143             $resource = $this->resource_builder->get($identification);
   144             $cloned_resource = $this->resource_builder->clone($resource);
   145             $target_collection->add($cloned_resource->getIdentification());
   147         $this->
store($target_collection);
   149         return $target_collection_id;
   152     public function remove(
   155         bool $delete_resources_as_well = false
   157         $collection = $this->
get($collection_id);
   158         if ($delete_resources_as_well) {
   159             foreach ($collection->getResourceIdentifications() as $resource_identification) {
   160                 $resource = $this->resource_builder->get($resource_identification);
   161                 $this->resource_builder->remove($resource, $stakeholder);
   164         unset($this->cache[$collection_id->
serialize()]);
   166         return $this->collection_builder->delete($collection_id);
   176             if ($position >= $from && $position < $from + $amout) {
   177                 $return[] = $identification;
   189             if ($position >= $from && $position <= $to) {
   190                 yield $identification;
   198             $this->resource_builder,
   199             $this->collection_builder,
 getResourceIdentifications()
 
clone(ResourceCollectionIdentification $source_collection_id)
 
__construct(ResourceBuilder $resource_builder, CollectionBuilder $collection_builder, RepositoryPreloader $preloader, private Subject $events)
Consumers constructor. 
 
ResourceBuilder $resource_builder
 
Class ResourceCollectionIdentification. 
 
Class ResourceCollection. 
 
sort(ResourceCollection $collection)
 
CollectionBuilder $collection_builder
 
rangeAsGenerator(ResourceCollection $collection, int $from, int $to)
 
id(?string $collection_identification=null, ?int $owner=null)
 
rangeAsArray(ResourceCollection $collection, int $from, int $amout)
 
idOrNull(?string $collection_identification=null, ?int $owner=null)
 
store(ResourceCollection $collection)
 
Interface ResourceStakeholder. 
 
RepositoryPreloader $preloader
 
Interface RepositoryPreloader. 
 
exists(string $collection_identification)