ILIAS  release_8 Revision v8.24
ILIAS\ResourceStorage\Collection\CollectionBuilder Class Reference

Class CollectionBuilder. More...

+ Collaboration diagram for ILIAS\ResourceStorage\Collection\CollectionBuilder:

Public Member Functions

 __construct (Repository\CollectionRepository $collection_repository, ?CollectionIdentificationGenerator $id_generator=null, ?\ILIAS\ResourceStorage\Lock\LockHandler $lock_handler=null)
 
 has (ResourceCollectionIdentification $identification)
 
 getResourceIdStrings (ResourceCollectionIdentification $identification)
 
 getResourceIds (ResourceCollectionIdentification $identification)
 
 new (?int $owner=null)
 
 get (ResourceCollectionIdentification $identification, ?int $owner=null)
 
 store (ResourceCollection $collection)
 
 delete (ResourceCollectionIdentification $identification)
 
 notififyResourceDeletion (ResourceIdentification $identification)
 

Private Member Functions

 validate (ResourceCollectionIdentification $identification)
 

Private Attributes

Repository CollectionRepository $collection_repository
 
CollectionIdentificationGenerator $id_generator = null
 
ILIAS ResourceStorage Lock LockHandler $lock_handler = null
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ILIAS\ResourceStorage\Collection\CollectionBuilder::__construct ( Repository\CollectionRepository  $collection_repository,
?CollectionIdentificationGenerator  $id_generator = null,
?\ILIAS\ResourceStorage\Lock\LockHandler  $lock_handler = null 
)

Definition at line 44 of file CollectionBuilder.php.

48 {
49 $this->collection_repository = $collection_repository;
50 $this->lock_handler = $lock_handler;
51 $this->id_generator = $id_generator ?? new UniqueIDCollectionIdentificationGenerator();
52 }
CollectionIdentificationGenerator $id_generator
ILIAS ResourceStorage Lock LockHandler $lock_handler
Repository CollectionRepository $collection_repository

References ILIAS\ResourceStorage\Collection\CollectionBuilder\$collection_repository, ILIAS\ResourceStorage\Collection\CollectionBuilder\$id_generator, and ILIAS\ResourceStorage\Collection\CollectionBuilder\$lock_handler.

Member Function Documentation

◆ delete()

ILIAS\ResourceStorage\Collection\CollectionBuilder::delete ( ResourceCollectionIdentification  $identification)

Definition at line 121 of file CollectionBuilder.php.

121 : bool
122 {
123 $this->collection_repository->delete($identification);
124 return true;
125 }

◆ get()

ILIAS\ResourceStorage\Collection\CollectionBuilder::get ( ResourceCollectionIdentification  $identification,
?int  $owner = null 
)

Definition at line 92 of file CollectionBuilder.php.

93 {
94 $this->validate($identification);
95 $existing = $this->collection_repository->existing($identification);
96 if ($existing->hasSpecificOwner()
97 && $existing->getOwner() !== $owner
98 ) {
99 throw new \InvalidArgumentException('Invalid owner of collection');
100 }
101 return $existing;
102 }
validate(ResourceCollectionIdentification $identification)

References ILIAS\ResourceStorage\Collection\CollectionBuilder\validate().

+ Here is the call graph for this function:

◆ getResourceIds()

ILIAS\ResourceStorage\Collection\CollectionBuilder::getResourceIds ( ResourceCollectionIdentification  $identification)
Returns
\Generator|ResourceIdentification[]

Definition at line 70 of file CollectionBuilder.php.

70 : \Generator
71 {
72 foreach ($this->getResourceIdStrings($identification) as $string) {
73 yield new ResourceIdentification($string);
74 }
75 }
getResourceIdStrings(ResourceCollectionIdentification $identification)

References ILIAS\ResourceStorage\Collection\CollectionBuilder\getResourceIdStrings().

+ Here is the call graph for this function:

◆ getResourceIdStrings()

ILIAS\ResourceStorage\Collection\CollectionBuilder::getResourceIdStrings ( ResourceCollectionIdentification  $identification)
Returns
\Generator|string[]

Definition at line 62 of file CollectionBuilder.php.

62 : \Generator
63 {
64 yield from $this->collection_repository->getResourceIdStrings($identification);
65 }

Referenced by ILIAS\ResourceStorage\Collection\CollectionBuilder\getResourceIds().

+ Here is the caller graph for this function:

◆ has()

ILIAS\ResourceStorage\Collection\CollectionBuilder::has ( ResourceCollectionIdentification  $identification)

Definition at line 54 of file CollectionBuilder.php.

54 : bool
55 {
56 return $this->collection_repository->has($identification);
57 }

◆ new()

ILIAS\ResourceStorage\Collection\CollectionBuilder::new ( ?int  $owner = null)

Definition at line 84 of file CollectionBuilder.php.

85 {
86 return $this->collection_repository->blank(
87 $this->id_generator->getUniqueResourceCollectionIdentification(),
89 );
90 }

References ILIAS\ResourceStorage\Collection\ResourceCollection\NO_SPECIFIC_OWNER.

◆ notififyResourceDeletion()

ILIAS\ResourceStorage\Collection\CollectionBuilder::notififyResourceDeletion ( ResourceIdentification  $identification)

Definition at line 127 of file CollectionBuilder.php.

127 : void
128 {
129 $this->collection_repository->removeResourceFromAllCollections($identification);
130 }

◆ store()

ILIAS\ResourceStorage\Collection\CollectionBuilder::store ( ResourceCollection  $collection)

Definition at line 104 of file CollectionBuilder.php.

104 : bool
105 {
106 if ($this->lock_handler !== null) {
107 $result = $this->lock_handler->lockTables(
108 $this->collection_repository->getNamesForLocking(),
109 function () use ($collection): void {
110 $this->collection_repository->update($collection);
111 }
112 );
113 $result->runAndUnlock();
114 } else {
115 $this->collection_repository->update($collection);
116 }
117
118 return true;
119 }
static return function(ContainerConfigurator $containerConfigurator)
Definition: basic_rector.php:9

References function.

◆ validate()

ILIAS\ResourceStorage\Collection\CollectionBuilder::validate ( ResourceCollectionIdentification  $identification)
private

Definition at line 77 of file CollectionBuilder.php.

77 : void
78 {
79 if (!$this->id_generator->validateScheme($identification->serialize())) {
80 throw new \InvalidArgumentException('Invalid identification scheme');
81 }
82 }

References ILIAS\ResourceStorage\Identification\AbstractIdentification\serialize().

Referenced by ILIAS\ResourceStorage\Collection\CollectionBuilder\get().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $collection_repository

Repository CollectionRepository ILIAS\ResourceStorage\Collection\CollectionBuilder::$collection_repository
private

◆ $id_generator

CollectionIdentificationGenerator ILIAS\ResourceStorage\Collection\CollectionBuilder::$id_generator = null
private

◆ $lock_handler

ILIAS ResourceStorage Lock LockHandler ILIAS\ResourceStorage\Collection\CollectionBuilder::$lock_handler = null
private

The documentation for this class was generated from the following file: