ILIAS  release_8 Revision v8.24
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.

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

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

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.

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 }

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

+ 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.

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 }

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

+ Here is the call graph for this function:

◆ clone()

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

Definition at line 134 of file Manager.php.

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.

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.

119 : StorableResource
120 {
121 $this->preloader->preload([$i->serialize()]);
122 return $this->resource_builder->get($i);
123 }
$i
Definition: metadata.php:41

References $i.

◆ 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.

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 }

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

+ 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.

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 }

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

+ 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.

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 }

◆ 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.

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 }

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

+ 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: