ILIAS  release_8 Revision v8.23
ILIAS\ResourceStorage\Manager\Manager Class Reference

Class StorageManager. More...

+ Collaboration diagram for ILIAS\ResourceStorage\Manager\Manager:

Public Member Functions

 __construct (ResourceBuilder $resource_builder, CollectionBuilder $collection_builder, RepositoryPreloader $preloader)
 Manager constructor. More...
 
 upload (UploadResult $result, ResourceStakeholder $stakeholder, string $revision_title=null)
 
 stream (FileStream $stream, ResourceStakeholder $stakeholder, string $revision_title=null)
 
 find (string $identification)
 
 getResource (ResourceIdentification $i)
 
 remove (ResourceIdentification $identification, ResourceStakeholder $stakeholder)
 
 clone (ResourceIdentification $identification)
 
 appendNewRevision (ResourceIdentification $identification, UploadResult $result, ResourceStakeholder $stakeholder, string $revision_title=null)
 
 replaceWithUpload (ResourceIdentification $identification, UploadResult $result, ResourceStakeholder $stakeholder, string $revision_title=null)
 
 appendNewRevisionFromStream (ResourceIdentification $identification, FileStream $stream, ResourceStakeholder $stakeholder, string $revision_title=null)
 
 replaceWithStream (ResourceIdentification $identification, FileStream $stream, ResourceStakeholder $stakeholder, string $revision_title=null)
 
 getCurrentRevision (ResourceIdentification $identification)
 
 updateRevision (Revision $revision)
 
 rollbackRevision (ResourceIdentification $identification, int $revision_number)
 
 removeRevision (ResourceIdentification $identification, int $revision_number)
 

Protected Attributes

ResourceBuilder $resource_builder
 
CollectionBuilder $collection_builder
 
RepositoryPreloader $preloader
 

Detailed Description

Class StorageManager.

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

Definition at line 39 of file Manager.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\ResourceStorage\Manager\Manager::__construct ( ResourceBuilder  $resource_builder,
CollectionBuilder  $collection_builder,
RepositoryPreloader  $preloader 
)

Manager constructor.

Definition at line 48 of file Manager.php.

References ILIAS\ResourceStorage\Manager\Manager\$collection_builder, ILIAS\ResourceStorage\Manager\Manager\$preloader, and ILIAS\ResourceStorage\Manager\Manager\$resource_builder.

52  {
53  $this->resource_builder = $resource_builder;
54  $this->collection_builder = $collection_builder;
55  $this->preloader = $preloader;
56  }
CollectionBuilder $collection_builder
Definition: Manager.php:42
RepositoryPreloader $preloader
Definition: Manager.php:43

Member Function Documentation

◆ appendNewRevision()

ILIAS\ResourceStorage\Manager\Manager::appendNewRevision ( ResourceIdentification  $identification,
UploadResult  $result,
ResourceStakeholder  $stakeholder,
string  $revision_title = null 
)

Definition at line 143 of file Manager.php.

References ILIAS\FileUpload\DTO\UploadResult\getName(), ILIAS\ResourceStorage\Stakeholder\ResourceStakeholder\getOwnerOfNewResources(), ILIAS\FileUpload\DTO\UploadResult\getStatus(), ILIAS\FileUpload\DTO\UploadResult\isOK(), and ILIAS\ResourceStorage\Identification\AbstractIdentification\serialize().

148  : Revision {
149  if ($result->isOK()) {
150  if (!$this->resource_builder->has($identification)) {
151  throw new \LogicException(
152  "Resource not found, can't append new version in: " . $identification->serialize()
153  );
154  }
155  $resource = $this->resource_builder->get($identification);
156  $info_resolver = new UploadInfoResolver(
157  $result,
158  $resource->getMaxRevision() + 1,
159  $stakeholder->getOwnerOfNewResources(),
160  $revision_title ?? $result->getName()
161  );
162 
163  $this->resource_builder->append(
164  $resource,
165  $result,
166  $info_resolver
167  );
168  $resource->addStakeholder($stakeholder);
169 
170  $this->resource_builder->store($resource);
171 
172  return $resource->getCurrentRevision();
173  }
174  throw new \LogicException("Can't handle UploadResult: " . $result->getStatus()->getMessage());
175  }
+ Here is the call graph for this function:

◆ appendNewRevisionFromStream()

ILIAS\ResourceStorage\Manager\Manager::appendNewRevisionFromStream ( ResourceIdentification  $identification,
FileStream  $stream,
ResourceStakeholder  $stakeholder,
string  $revision_title = null 
)

Definition at line 210 of file Manager.php.

References ILIAS\ResourceStorage\Stakeholder\ResourceStakeholder\getOwnerOfNewResources(), and ILIAS\ResourceStorage\Identification\AbstractIdentification\serialize().

215  : Revision {
216  if (!$this->resource_builder->has($identification)) {
217  throw new \LogicException(
218  "Resource not found, can't append new version in: " . $identification->serialize()
219  );
220  }
221 
222  $resource = $this->resource_builder->get($identification);
223  $info_resolver = new StreamInfoResolver(
224  $stream,
225  $resource->getMaxRevision() + 1,
226  $stakeholder->getOwnerOfNewResources(),
227  $revision_title ?? $stream->getMetadata()['uri']
228  );
229 
230  $this->resource_builder->appendFromStream(
231  $resource,
232  $stream,
233  $info_resolver,
234  true
235  );
236  $resource->addStakeholder($stakeholder);
237 
238  $this->resource_builder->store($resource);
239 
240  return $resource->getCurrentRevision();
241  }
+ Here is the call graph for this function:

◆ clone()

ILIAS\ResourceStorage\Manager\Manager::clone ( ResourceIdentification  $identification)

Definition at line 134 of file Manager.php.

134  : ResourceIdentification
135  {
136  $resource = $this->resource_builder->clone($this->resource_builder->get($identification));
137 
138  return $resource->getIdentification();
139  }

◆ find()

ILIAS\ResourceStorage\Manager\Manager::find ( string  $identification)

Definition at line 106 of file Manager.php.

106  : ?ResourceIdentification
107  {
108  $resource_identification = new ResourceIdentification($identification);
109 
110  if ($this->resource_builder->has($resource_identification)) {
111  return $resource_identification;
112  }
113 
114  return null;
115  }

◆ getCurrentRevision()

ILIAS\ResourceStorage\Manager\Manager::getCurrentRevision ( ResourceIdentification  $identification)

Definition at line 276 of file Manager.php.

276  : Revision
277  {
278  return $this->resource_builder->get($identification)->getCurrentRevision();
279  }

◆ getResource()

ILIAS\ResourceStorage\Manager\Manager::getResource ( ResourceIdentification  $i)

Definition at line 119 of file Manager.php.

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

119  : StorableResource
120  {
121  $this->preloader->preload([$i->serialize()]);
122  return $this->resource_builder->get($i);
123  }
$i
Definition: metadata.php:41
+ Here is the call graph for this function:

◆ remove()

ILIAS\ResourceStorage\Manager\Manager::remove ( ResourceIdentification  $identification,
ResourceStakeholder  $stakeholder 
)

Definition at line 126 of file Manager.php.

126  : void
127  {
128  $this->resource_builder->remove($this->resource_builder->get($identification), $stakeholder);
129  if (!$this->resource_builder->has($identification)) {
130  $this->collection_builder->notififyResourceDeletion($identification);
131  }
132  }

◆ removeRevision()

ILIAS\ResourceStorage\Manager\Manager::removeRevision ( ResourceIdentification  $identification,
int  $revision_number 
)

Definition at line 297 of file Manager.php.

297  : bool
298  {
299  $resource = $this->resource_builder->get($identification);
300  $this->resource_builder->removeRevision($resource, $revision_number);
301  $this->resource_builder->store($resource);
302 
303  return true;
304  }

◆ replaceWithStream()

ILIAS\ResourceStorage\Manager\Manager::replaceWithStream ( ResourceIdentification  $identification,
FileStream  $stream,
ResourceStakeholder  $stakeholder,
string  $revision_title = null 
)

Definition at line 243 of file Manager.php.

References ILIAS\ResourceStorage\Stakeholder\ResourceStakeholder\getOwnerOfNewResources(), and ILIAS\ResourceStorage\Identification\AbstractIdentification\serialize().

248  : Revision {
249  if (!$this->resource_builder->has($identification)) {
250  throw new \LogicException(
251  "Resource not found, can't append new version in: " . $identification->serialize()
252  );
253  }
254 
255  $resource = $this->resource_builder->get($identification);
256  $info_resolver = new StreamInfoResolver(
257  $stream,
258  $resource->getMaxRevision() + 1,
259  $stakeholder->getOwnerOfNewResources(),
260  $revision_title ?? $stream->getMetadata()['uri']
261  );
262 
263  $this->resource_builder->replaceWithStream(
264  $resource,
265  $stream,
266  $info_resolver,
267  true
268  );
269  $resource->addStakeholder($stakeholder);
270 
271  $this->resource_builder->store($resource);
272 
273  return $resource->getCurrentRevision();
274  }
+ Here is the call graph for this function:

◆ replaceWithUpload()

ILIAS\ResourceStorage\Manager\Manager::replaceWithUpload ( ResourceIdentification  $identification,
UploadResult  $result,
ResourceStakeholder  $stakeholder,
string  $revision_title = null 
)

Definition at line 177 of file Manager.php.

References ILIAS\FileUpload\DTO\UploadResult\getName(), ILIAS\ResourceStorage\Stakeholder\ResourceStakeholder\getOwnerOfNewResources(), ILIAS\FileUpload\DTO\UploadResult\getStatus(), ILIAS\FileUpload\DTO\UploadResult\isOK(), and ILIAS\ResourceStorage\Identification\AbstractIdentification\serialize().

182  : Revision {
183  if ($result->isOK()) {
184  if (!$this->resource_builder->has($identification)) {
185  throw new \LogicException(
186  "Resource not found, can't append new version in: " . $identification->serialize()
187  );
188  }
189  $resource = $this->resource_builder->get($identification);
190  $info_resolver = new UploadInfoResolver(
191  $result,
192  $resource->getMaxRevision() + 1,
193  $stakeholder->getOwnerOfNewResources(),
194  $revision_title ?? $result->getName()
195  );
196  $this->resource_builder->replaceWithUpload(
197  $resource,
198  $result,
199  $info_resolver
200  );
201  $resource->addStakeholder($stakeholder);
202 
203  $this->resource_builder->store($resource);
204 
205  return $resource->getCurrentRevision();
206  }
207  throw new \LogicException("Can't handle UploadResult: " . $result->getStatus()->getMessage());
208  }
+ Here is the call graph for this function:

◆ rollbackRevision()

ILIAS\ResourceStorage\Manager\Manager::rollbackRevision ( ResourceIdentification  $identification,
int  $revision_number 
)

Definition at line 288 of file Manager.php.

288  : bool
289  {
290  $resource = $this->resource_builder->get($identification);
291  $this->resource_builder->appendFromRevision($resource, $revision_number);
292  $this->resource_builder->store($resource);
293 
294  return true;
295  }

◆ stream()

ILIAS\ResourceStorage\Manager\Manager::stream ( FileStream  $stream,
ResourceStakeholder  $stakeholder,
string  $revision_title = null 
)

Definition at line 83 of file Manager.php.

References ILIAS\ResourceStorage\Stakeholder\ResourceStakeholder\getOwnerOfNewResources().

87  : ResourceIdentification {
88  $info_resolver = new StreamInfoResolver(
89  $stream,
90  1,
91  $stakeholder->getOwnerOfNewResources(),
92  $revision_title ?? $stream->getMetadata()['uri']
93  );
94 
95  $resource = $this->resource_builder->newFromStream(
96  $stream,
97  $info_resolver,
98  true
99  );
100  $resource->addStakeholder($stakeholder);
101  $this->resource_builder->store($resource);
102 
103  return $resource->getIdentification();
104  }
+ Here is the call graph for this function:

◆ updateRevision()

ILIAS\ResourceStorage\Manager\Manager::updateRevision ( Revision  $revision)

Definition at line 281 of file Manager.php.

281  : bool
282  {
283  $this->resource_builder->storeRevision($revision);
284 
285  return true;
286  }

◆ upload()

ILIAS\ResourceStorage\Manager\Manager::upload ( UploadResult  $result,
ResourceStakeholder  $stakeholder,
string  $revision_title = null 
)

Definition at line 58 of file Manager.php.

References ILIAS\FileUpload\DTO\UploadResult\getName(), ILIAS\ResourceStorage\Stakeholder\ResourceStakeholder\getOwnerOfNewResources(), ILIAS\FileUpload\DTO\UploadResult\getStatus(), and ILIAS\FileUpload\DTO\UploadResult\isOK().

62  : ResourceIdentification {
63  if ($result->isOK()) {
64  $info_resolver = new UploadInfoResolver(
65  $result,
66  1,
67  $stakeholder->getOwnerOfNewResources(),
68  $revision_title ?? $result->getName()
69  );
70 
71  $resource = $this->resource_builder->new(
72  $result,
73  $info_resolver
74  );
75  $resource->addStakeholder($stakeholder);
76  $this->resource_builder->store($resource);
77 
78  return $resource->getIdentification();
79  }
80  throw new \LogicException("Can't handle UploadResult: " . $result->getStatus()->getMessage());
81  }
+ Here is the call graph for this function:

Field Documentation

◆ $collection_builder

CollectionBuilder ILIAS\ResourceStorage\Manager\Manager::$collection_builder
protected

Definition at line 42 of file Manager.php.

Referenced by ILIAS\ResourceStorage\Manager\Manager\__construct().

◆ $preloader

RepositoryPreloader ILIAS\ResourceStorage\Manager\Manager::$preloader
protected

Definition at line 43 of file Manager.php.

Referenced by ILIAS\ResourceStorage\Manager\Manager\__construct().

◆ $resource_builder

ResourceBuilder ILIAS\ResourceStorage\Manager\Manager::$resource_builder
protected

Definition at line 41 of file Manager.php.

Referenced by ILIAS\ResourceStorage\Manager\Manager\__construct().


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