ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
ILIAS\ResourceStorage\Resource\ResourceBuilder Class Reference

Class ResourceBuilder. More...

+ Collaboration diagram for ILIAS\ResourceStorage\Resource\ResourceBuilder:

Public Member Functions

 __construct (StorageHandlerFactory $storage_handler_factory, RevisionRepository $revision_repository, ResourceRepository $resource_repository, InformationRepository $information_repository, StakeholderRepository $stakeholder_repository, LockHandler $lock_handler, FileNamePolicy $file_name_policy=null)
 ResourceBuilder constructor. More...
 
 new (UploadResult $result, InfoResolver $info_resolver)
 
 newFromStream (FileStream $stream, InfoResolver $info_resolver, bool $keep_original=false)
 
 newBlank ()
 
 append (StorableResource $resource, UploadResult $result, InfoResolver $info_resolver)
 
 replaceWithUpload (StorableResource $resource, UploadResult $result, InfoResolver $info_resolver)
 
 appendFromStream (StorableResource $resource, FileStream $stream, InfoResolver $info_resolver, bool $keep_original=false)
 
 replaceWithStream (StorableResource $resource, FileStream $stream, InfoResolver $info_resolver, bool $keep_original=false)
 
 appendFromRevision (StorableResource $resource, int $revision_number)
 
 has (ResourceIdentification $identification)
 
 store (StorableResource $resource)
 
 clone (StorableResource $resource)
 
 storeRevision (Revision $revision)
 Store one Revision More...
 
 get (ResourceIdentification $identification)
 
 remove (StorableResource $resource, ResourceStakeholder $stakeholder=null)
 Reve a complete revision. More...
 
 removeRevision (StorableResource $resource, int $revision_number)
 

Protected Attributes

 $resource_cache = []
 
 $file_name_policy
 
 $primary_storage_handler
 

Private Member Functions

 deleteRevision (StorableResource $resource, Revision $revision)
 
 populateNakedResourceWithRevisionsAndStakeholders (StorableResource $resource)
 
 populateRevisionInfo (Revision $revision, InfoResolver $info_resolver)
 

Private Attributes

 $information_repository
 
 $resource_repository
 
 $revision_repository
 
 $storage_handler_factory
 
 $stakeholder_repository
 
 $lock_handler
 

Detailed Description

Class ResourceBuilder.

Author
Fabian Schmid fs@st.nosp@m.uder.nosp@m.-raim.nosp@m.ann..nosp@m.ch

Definition at line 34 of file ResourceBuilder.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\ResourceStorage\Resource\ResourceBuilder::__construct ( StorageHandlerFactory  $storage_handler_factory,
RevisionRepository  $revision_repository,
ResourceRepository  $resource_repository,
InformationRepository  $information_repository,
StakeholderRepository  $stakeholder_repository,
LockHandler  $lock_handler,
FileNamePolicy  $file_name_policy = null 
)

ResourceBuilder constructor.

Parameters
StorageHandlerFactory$storage_handler_factory
RevisionRepository$revision_repository
ResourceRepository$resource_repository
InformationRepository$information_repository
StakeholderRepository$stakeholder_repository
LockHandler$lock_handler
FileNamePolicy | null$file_name_policy

Definition at line 84 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Resource\ResourceBuilder\$file_name_policy, ILIAS\ResourceStorage\Resource\ResourceBuilder\$information_repository, ILIAS\ResourceStorage\Resource\ResourceBuilder\$lock_handler, ILIAS\ResourceStorage\Resource\ResourceBuilder\$resource_repository, ILIAS\ResourceStorage\Resource\ResourceBuilder\$revision_repository, ILIAS\ResourceStorage\Resource\ResourceBuilder\$stakeholder_repository, ILIAS\ResourceStorage\Resource\ResourceBuilder\$storage_handler_factory, and ILIAS\ResourceStorage\StorageHandler\StorageHandlerFactory\getPrimary().

92  {
93  $this->storage_handler_factory = $storage_handler_factory;
94  $this->primary_storage_handler = $storage_handler_factory->getPrimary();
95  $this->revision_repository = $revision_repository;
96  $this->resource_repository = $resource_repository;
97  $this->information_repository = $information_repository;
98  $this->stakeholder_repository = $stakeholder_repository;
99  $this->lock_handler = $lock_handler;
100  $this->file_name_policy = $file_name_policy ?? new NoneFileNamePolicy();
101  }
+ Here is the call graph for this function:

Member Function Documentation

◆ append()

ILIAS\ResourceStorage\Resource\ResourceBuilder::append ( StorableResource  $resource,
UploadResult  $result,
InfoResolver  $info_resolver 
)

Definition at line 140 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Resource\StorableResource\addRevision(), ILIAS\ResourceStorage\Resource\StorableResource\getStorageID(), ILIAS\ResourceStorage\Resource\ResourceBuilder\populateRevisionInfo(), and ILIAS\ResourceStorage\Resource\StorableResource\setStorageID().

Referenced by ILIAS\ResourceStorage\Resource\ResourceBuilder\new().

144  : StorableResource {
145  $revision = $this->revision_repository->blankFromUpload($info_resolver, $resource, $result);
146  $revision = $this->populateRevisionInfo($revision, $info_resolver);
147 
148  $resource->addRevision($revision);
149  $resource->setStorageID($resource->getStorageID() === '' ? $this->primary_storage_handler->getID() : $resource->getStorageID());
150 
151  return $resource;
152  }
populateRevisionInfo(Revision $revision, InfoResolver $info_resolver)
$result
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ appendFromRevision()

ILIAS\ResourceStorage\Resource\ResourceBuilder::appendFromRevision ( StorableResource  $resource,
int  $revision_number 
)

Definition at line 209 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Resource\StorableResource\addRevision(), ILIAS\ResourceStorage\Resource\StorableResource\getMaxRevision(), ILIAS\ResourceStorage\Resource\StorableResource\getSpecificRevision(), ILIAS\ResourceStorage\Resource\StorableResource\getStorageID(), ILIAS\ResourceStorage\Resource\ResourceBuilder\populateRevisionInfo(), and ILIAS\ResourceStorage\Resource\StorableResource\setStorageID().

212  : StorableResource {
213  $existing_revision = $resource->getSpecificRevision($revision_number);
214  if ($existing_revision instanceof FileRevision) {
215  $info_resolver = new ClonedRevisionInfoResolver(
216  $resource->getMaxRevision() + 1,
217  $existing_revision
218  );
219 
220  $cloned_revision = $this->revision_repository->blankFromClone(
221  $info_resolver,
222  $resource,
223  $existing_revision
224  );
225 
226  $this->populateRevisionInfo($cloned_revision, $info_resolver);
227 
228  $resource->addRevision($cloned_revision);
229  $resource->setStorageID($resource->getStorageID() === '' ? $this->primary_storage_handler->getID() : $resource->getStorageID());
230  return $resource;
231  }
232  return $resource;
233 
234  }
populateRevisionInfo(Revision $revision, InfoResolver $info_resolver)
+ Here is the call graph for this function:

◆ appendFromStream()

ILIAS\ResourceStorage\Resource\ResourceBuilder::appendFromStream ( StorableResource  $resource,
FileStream  $stream,
InfoResolver  $info_resolver,
bool  $keep_original = false 
)

Definition at line 175 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Resource\StorableResource\addRevision(), ILIAS\ResourceStorage\Resource\StorableResource\getStorageID(), ILIAS\ResourceStorage\Resource\ResourceBuilder\populateRevisionInfo(), and ILIAS\ResourceStorage\Resource\StorableResource\setStorageID().

Referenced by ILIAS\ResourceStorage\Resource\ResourceBuilder\newFromStream().

180  : StorableResource {
181  $revision = $this->revision_repository->blankFromStream($info_resolver, $resource, $stream, $keep_original);
182  $revision = $this->populateRevisionInfo($revision, $info_resolver);
183 
184  $resource->addRevision($revision);
185  $resource->setStorageID($resource->getStorageID() === '' ? $this->primary_storage_handler->getID() : $resource->getStorageID());
186 
187  return $resource;
188  }
populateRevisionInfo(Revision $revision, InfoResolver $info_resolver)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ clone()

ILIAS\ResourceStorage\Resource\ResourceBuilder::clone ( StorableResource  $resource)
Parameters
StorableResource$resource
Returns
StorableResource Clone anexisting resource with all it's revisions, stakeholders and information

Definition at line 283 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Resource\StorableResource\getAllRevisions(), ILIAS\ResourceStorage\Resource\StorableResource\getStakeholders(), ILIAS\ResourceStorage\Resource\ResourceBuilder\newBlank(), ILIAS\ResourceStorage\Resource\ResourceBuilder\populateRevisionInfo(), and ILIAS\ResourceStorage\Resource\ResourceBuilder\store().

283  : StorableResource
284  {
285  $new_resource = $this->newBlank();
286  foreach ($resource->getStakeholders() as $stakeholder) {
287  $stakeholder = clone $stakeholder;
288  $new_resource->addStakeholder($stakeholder);
289  }
290 
291  foreach ($resource->getAllRevisions() as $existing_revision) {
292  if (!$existing_revision instanceof FileRevision) {
293  continue;
294  }
295  $info_resolver = new ClonedRevisionInfoResolver(
296  $existing_revision->getVersionNumber(),
297  $existing_revision
298  );
299 
300  $stream = new FileStreamConsumer($resource, $this->storage_handler_factory->getHandlerForResource($resource));
301  $stream->setRevisionNumber($existing_revision->getVersionNumber());
302 
303  $cloned_revision = new FileStreamRevision($new_resource->getIdentification(), $stream->getStream(), true);
304  $this->populateRevisionInfo($cloned_revision, $info_resolver);
305  $cloned_revision->setVersionNumber($existing_revision->getVersionNumber());
306 
307  $new_resource->addRevision($cloned_revision);
308  }
309  $this->store($new_resource);
310  return $new_resource;
311 
312  }
populateRevisionInfo(Revision $revision, InfoResolver $info_resolver)
+ Here is the call graph for this function:

◆ deleteRevision()

ILIAS\ResourceStorage\Resource\ResourceBuilder::deleteRevision ( StorableResource  $resource,
Revision  $revision 
)
private

Definition at line 394 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Revision\Revision\getInformation(), ILIAS\ResourceStorage\Resource\ResourceBuilder\populateNakedResourceWithRevisionsAndStakeholders(), and ILIAS\ResourceStorage\Resource\StorableResource\removeRevision().

Referenced by ILIAS\ResourceStorage\Resource\ResourceBuilder\remove(), ILIAS\ResourceStorage\Resource\ResourceBuilder\removeRevision(), ILIAS\ResourceStorage\Resource\ResourceBuilder\replaceWithStream(), and ILIAS\ResourceStorage\Resource\ResourceBuilder\replaceWithUpload().

394  : void
395  {
396  try {
397  $this->storage_handler_factory->getHandlerForResource($resource)->deleteRevision($revision);
398  } catch (\Throwable $t) {
399  }
400 
401  $this->information_repository->delete($revision->getInformation(), $revision);
402  $this->revision_repository->delete($revision);
403  $resource->removeRevision($revision);
404  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get()

ILIAS\ResourceStorage\Resource\ResourceBuilder::get ( ResourceIdentification  $identification)
Parameters
ResourceIdentification$identification
Returns
StorableResource
Exceptions
ResourceNotFoundExceptionGet a Resource out of a Identification

Definition at line 342 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Resource\ResourceBuilder\populateNakedResourceWithRevisionsAndStakeholders().

342  : StorableResource
343  {
344  if (isset($this->resource_cache[$identification->serialize()])) {
345  return $this->resource_cache[$identification->serialize()];
346  }
347  $resource = $this->resource_repository->get($identification);
348 
349  $this->resource_cache[$identification->serialize()] = $this->populateNakedResourceWithRevisionsAndStakeholders($resource);
350 
351  return $this->resource_cache[$identification->serialize()];
352  }
populateNakedResourceWithRevisionsAndStakeholders(StorableResource $resource)
+ Here is the call graph for this function:

◆ has()

ILIAS\ResourceStorage\Resource\ResourceBuilder::has ( ResourceIdentification  $identification)
Parameters
ResourceIdentification$identification
Returns
bool check if a resource exists

Definition at line 241 of file ResourceBuilder.php.

241  : bool
242  {
243  return $this->resource_repository->has($identification);
244  }

◆ new()

ILIAS\ResourceStorage\Resource\ResourceBuilder::new ( UploadResult  $result,
InfoResolver  $info_resolver 
)

Definition at line 109 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Resource\ResourceBuilder\append().

112  : StorableResource {
113  $resource = $this->resource_repository->blank($this->primary_storage_handler->getIdentificationGenerator()->getUniqueResourceIdentification());
114 
115  return $this->append($resource, $result, $info_resolver);
116  }
$result
append(StorableResource $resource, UploadResult $result, InfoResolver $info_resolver)
+ Here is the call graph for this function:

◆ newBlank()

ILIAS\ResourceStorage\Resource\ResourceBuilder::newBlank ( )

Definition at line 128 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Resource\StorableResource\setStorageID().

Referenced by ILIAS\ResourceStorage\Resource\ResourceBuilder\clone().

128  : StorableResource
129  {
130  $resource = $this->resource_repository->blank($this->primary_storage_handler->getIdentificationGenerator()->getUniqueResourceIdentification());
131  $resource->setStorageID($this->primary_storage_handler->getID());
132 
133  return $resource;
134  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ newFromStream()

ILIAS\ResourceStorage\Resource\ResourceBuilder::newFromStream ( FileStream  $stream,
InfoResolver  $info_resolver,
bool  $keep_original = false 
)

Definition at line 118 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Resource\ResourceBuilder\appendFromStream().

122  : StorableResource {
123  $resource = $this->resource_repository->blank($this->primary_storage_handler->getIdentificationGenerator()->getUniqueResourceIdentification());
124 
125  return $this->appendFromStream($resource, $stream, $info_resolver, $keep_original);
126  }
appendFromStream(StorableResource $resource, FileStream $stream, InfoResolver $info_resolver, bool $keep_original=false)
+ Here is the call graph for this function:

◆ populateNakedResourceWithRevisionsAndStakeholders()

ILIAS\ResourceStorage\Resource\ResourceBuilder::populateNakedResourceWithRevisionsAndStakeholders ( StorableResource  $resource)
private
Parameters
StorableResource$resource
Returns
StorableResource

Definition at line 423 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Resource\StorableResource\addStakeholder(), ILIAS\ResourceStorage\Resource\StorableResource\getAllRevisions(), ILIAS\ResourceStorage\Resource\StorableResource\getIdentification(), and ILIAS\ResourceStorage\Resource\StorableResource\setRevisions().

Referenced by ILIAS\ResourceStorage\Resource\ResourceBuilder\deleteRevision(), and ILIAS\ResourceStorage\Resource\ResourceBuilder\get().

423  : StorableResource
424  {
425  $revisions = $this->revision_repository->get($resource);
426  $resource->setRevisions($revisions);
427 
428  foreach ($resource->getAllRevisions() as $revision) {
429  $information = $this->information_repository->get($revision);
430  $revision->setInformation($information);
431  }
432 
433  foreach ($this->stakeholder_repository->getStakeholders($resource->getIdentification()) as $s) {
434  $resource->addStakeholder($s);
435  }
436 
437  return $resource;
438  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateRevisionInfo()

ILIAS\ResourceStorage\Resource\ResourceBuilder::populateRevisionInfo ( Revision  $revision,
InfoResolver  $info_resolver 
)
private

Definition at line 440 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Resource\InfoResolver\InfoResolver\getCreationDate(), ILIAS\ResourceStorage\Resource\InfoResolver\InfoResolver\getFileName(), ILIAS\ResourceStorage\Revision\Revision\getInformation(), ILIAS\ResourceStorage\Resource\InfoResolver\InfoResolver\getMimeType(), ILIAS\ResourceStorage\Resource\InfoResolver\InfoResolver\getOwnerId(), ILIAS\ResourceStorage\Resource\InfoResolver\InfoResolver\getRevisionTitle(), ILIAS\ResourceStorage\Resource\InfoResolver\InfoResolver\getSize(), ILIAS\ResourceStorage\Resource\InfoResolver\InfoResolver\getSuffix(), ILIAS\ResourceStorage\Revision\Revision\setInformation(), and ILIAS\ResourceStorage\Revision\Revision\setTitle().

Referenced by ILIAS\ResourceStorage\Resource\ResourceBuilder\append(), ILIAS\ResourceStorage\Resource\ResourceBuilder\appendFromRevision(), ILIAS\ResourceStorage\Resource\ResourceBuilder\appendFromStream(), ILIAS\ResourceStorage\Resource\ResourceBuilder\clone(), ILIAS\ResourceStorage\Resource\ResourceBuilder\replaceWithStream(), and ILIAS\ResourceStorage\Resource\ResourceBuilder\replaceWithUpload().

440  : Revision
441  {
442  $info = $revision->getInformation();
443 
444  $info->setTitle($this->secure($info_resolver->getFileName()));
445  $info->setMimeType($info_resolver->getMimeType());
446  $info->setSuffix($this->secure($info_resolver->getSuffix()));
447  $info->setSize($info_resolver->getSize());
448  $info->setCreationDate($info_resolver->getCreationDate());
449 
450  $revision->setInformation($info);
451  $revision->setTitle($this->secure($info_resolver->getRevisionTitle()));
452  $revision->setOwnerId($info_resolver->getOwnerId());
453 
454  return $revision;
455  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ remove()

ILIAS\ResourceStorage\Resource\ResourceBuilder::remove ( StorableResource  $resource,
ResourceStakeholder  $stakeholder = null 
)

Reve a complete revision.

if there are other Stakeholder, only your stakeholder gets removed

Parameters
StorableResource$resource
ResourceStakeholder | null$stakeholder
Returns
bool whether ResourceStakeholders handled this successful

Definition at line 360 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Resource\ResourceBuilder\deleteRevision(), ILIAS\ResourceStorage\Resource\StorableResource\getAllRevisions(), ILIAS\ResourceStorage\Resource\StorableResource\getIdentification(), ILIAS\ResourceStorage\Resource\StorableResource\getStakeholders(), and ILIAS\ResourceStorage\Resource\StorableResource\removeStakeholder().

360  : bool
361  {
362  $sucessful = true;
363  if ($stakeholder instanceof ResourceStakeholder) {
364  $this->stakeholder_repository->deregister($resource->getIdentification(), $stakeholder);
365  $sucessful = $sucessful && $stakeholder->resourceHasBeenDeleted($resource->getIdentification());
366  $resource->removeStakeholder($stakeholder);
367  if (count($resource->getStakeholders()) > 0) {
368  return $sucessful;
369  }
370  }
371  foreach ($resource->getStakeholders() as $s) {
372  $sucessful = $sucessful && $s->resourceHasBeenDeleted($resource->getIdentification());
373  }
374 
375  foreach ($resource->getAllRevisions() as $revision) {
376  $this->deleteRevision($resource, $revision);
377  }
378 
379  $this->storage_handler_factory->getHandlerForResource($resource)->deleteResource($resource);
380  $this->resource_repository->delete($resource);
381 
382  return $sucessful;
383  }
deleteRevision(StorableResource $resource, Revision $revision)
+ Here is the call graph for this function:

◆ removeRevision()

ILIAS\ResourceStorage\Resource\ResourceBuilder::removeRevision ( StorableResource  $resource,
int  $revision_number 
)

Definition at line 385 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Resource\ResourceBuilder\deleteRevision(), ILIAS\ResourceStorage\Resource\StorableResource\getSpecificRevision(), and ILIAS\ResourceStorage\Resource\ResourceBuilder\store().

385  : void
386  {
387  $reveision_to_delete = $resource->getSpecificRevision($revision_number);
388  if ($reveision_to_delete) {
389  $this->deleteRevision($resource, $reveision_to_delete);
390  }
391  $this->store($resource);
392  }
deleteRevision(StorableResource $resource, Revision $revision)
+ Here is the call graph for this function:

◆ replaceWithStream()

ILIAS\ResourceStorage\Resource\ResourceBuilder::replaceWithStream ( StorableResource  $resource,
FileStream  $stream,
InfoResolver  $info_resolver,
bool  $keep_original = false 
)

Definition at line 190 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Resource\StorableResource\addRevision(), ILIAS\ResourceStorage\Resource\ResourceBuilder\deleteRevision(), ILIAS\ResourceStorage\Resource\StorableResource\getAllRevisions(), ILIAS\ResourceStorage\Resource\StorableResource\getStorageID(), ILIAS\ResourceStorage\Resource\ResourceBuilder\populateRevisionInfo(), and ILIAS\ResourceStorage\Resource\StorableResource\setStorageID().

195  : StorableResource {
196  $revision = $this->revision_repository->blankFromStream($info_resolver, $resource, $stream, $keep_original);
197  $revision = $this->populateRevisionInfo($revision, $info_resolver);
198 
199  foreach ($resource->getAllRevisions() as $existing_revision) {
200  $this->deleteRevision($resource, $existing_revision);
201  }
202 
203  $resource->addRevision($revision);
204  $resource->setStorageID($resource->getStorageID() === '' ? $this->primary_storage_handler->getID() : $resource->getStorageID());
205 
206  return $resource;
207  }
populateRevisionInfo(Revision $revision, InfoResolver $info_resolver)
deleteRevision(StorableResource $resource, Revision $revision)
+ Here is the call graph for this function:

◆ replaceWithUpload()

ILIAS\ResourceStorage\Resource\ResourceBuilder::replaceWithUpload ( StorableResource  $resource,
UploadResult  $result,
InfoResolver  $info_resolver 
)

Definition at line 157 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Resource\StorableResource\addRevision(), ILIAS\ResourceStorage\Resource\ResourceBuilder\deleteRevision(), ILIAS\ResourceStorage\Resource\StorableResource\getAllRevisions(), ILIAS\ResourceStorage\Resource\StorableResource\getStorageID(), ILIAS\ResourceStorage\Resource\ResourceBuilder\populateRevisionInfo(), and ILIAS\ResourceStorage\Resource\StorableResource\setStorageID().

161  : StorableResource {
162  $revision = $this->revision_repository->blankFromUpload($info_resolver, $resource, $result);
163  $revision = $this->populateRevisionInfo($revision, $info_resolver);
164 
165  foreach ($resource->getAllRevisions() as $existing_revision) {
166  $this->deleteRevision($resource, $existing_revision);
167  }
168 
169  $resource->addRevision($revision);
170  $resource->setStorageID($resource->getStorageID() === '' ? $this->primary_storage_handler->getID() : $resource->getStorageID());
171 
172  return $resource;
173  }
populateRevisionInfo(Revision $revision, InfoResolver $info_resolver)
$result
deleteRevision(StorableResource $resource, Revision $revision)
+ Here is the call graph for this function:

◆ store()

ILIAS\ResourceStorage\Resource\ResourceBuilder::store ( StorableResource  $resource)
Parameters
StorableResource$resourceafter you have modified a resource, you can store it here
Exceptions

Definition at line 251 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Resource\StorableResource\getAllRevisions(), ILIAS\ResourceStorage\Resource\StorableResource\getIdentification(), ILIAS\ResourceStorage\Resource\StorableResource\getStakeholders(), and ILIAS\ResourceStorage\Resource\ResourceBuilder\storeRevision().

Referenced by ILIAS\ResourceStorage\Resource\ResourceBuilder\clone(), and ILIAS\ResourceStorage\Resource\ResourceBuilder\removeRevision().

251  : void
252  {
253  foreach ($resource->getAllRevisions() as $revision) {
254  $this->file_name_policy->check($revision->getInformation()->getSuffix());
255  }
256 
257  $r = $this->lock_handler->lockTables(array_merge(
258  $this->resource_repository->getNamesForLocking(),
259  $this->revision_repository->getNamesForLocking(),
260  $this->information_repository->getNamesForLocking(),
261  $this->stakeholder_repository->getNamesForLocking(),
262 
263  ), function () use ($resource) {
264  $this->resource_repository->store($resource);
265 
266  foreach ($resource->getAllRevisions() as $revision) {
267  $this->storeRevision($revision);
268  }
269 
270  foreach ($resource->getStakeholders() as $stakeholder) {
271  $this->stakeholder_repository->register($resource->getIdentification(), $stakeholder);
272  }
273  });
274 
275  $r->runAndUnlock();
276  }
storeRevision(Revision $revision)
Store one Revision
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ storeRevision()

ILIAS\ResourceStorage\Resource\ResourceBuilder::storeRevision ( Revision  $revision)

Store one Revision

Parameters
Revision$revision
Exceptions

Definition at line 319 of file ResourceBuilder.php.

References ILIAS\ResourceStorage\Revision\Revision\getInformation().

Referenced by ILIAS\ResourceStorage\Resource\ResourceBuilder\store().

319  : void
320  {
321  if ($revision instanceof UploadedFileRevision) {
322  // check policies
323  $this->file_name_policy->check($revision->getInformation()->getSuffix());
324  $this->primary_storage_handler->storeUpload($revision);
325  }
326  if ($revision instanceof FileStreamRevision) {
327  $this->primary_storage_handler->storeStream($revision);
328  }
329  if ($revision instanceof CloneRevision) {
330  $this->primary_storage_handler->cloneRevision($revision);
331  }
332  $this->revision_repository->store($revision);
333  $this->information_repository->store($revision->getInformation(), $revision);
334  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $file_name_policy

ILIAS\ResourceStorage\Resource\ResourceBuilder::$file_name_policy
protected

◆ $information_repository

ILIAS\ResourceStorage\Resource\ResourceBuilder::$information_repository
private

◆ $lock_handler

ILIAS\ResourceStorage\Resource\ResourceBuilder::$lock_handler
private

◆ $primary_storage_handler

ILIAS\ResourceStorage\Resource\ResourceBuilder::$primary_storage_handler
protected

Definition at line 72 of file ResourceBuilder.php.

◆ $resource_cache

ILIAS\ResourceStorage\Resource\ResourceBuilder::$resource_cache = []
protected

Definition at line 64 of file ResourceBuilder.php.

◆ $resource_repository

ILIAS\ResourceStorage\Resource\ResourceBuilder::$resource_repository
private

◆ $revision_repository

ILIAS\ResourceStorage\Resource\ResourceBuilder::$revision_repository
private

◆ $stakeholder_repository

ILIAS\ResourceStorage\Resource\ResourceBuilder::$stakeholder_repository
private

◆ $storage_handler_factory

ILIAS\ResourceStorage\Resource\ResourceBuilder::$storage_handler_factory
private

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