ILIAS  release_7 Revision v7.30-3-g800a261c036
ILIAS\ResourceStorage\Manager\Manager Class Reference

Class StorageManager. More...

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

Public Member Functions

 __construct (ResourceBuilder $b, RepositoryPreloader $l)
 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

 $resource_builder
 
 $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 21 of file Manager.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\ResourceStorage\Manager\Manager::__construct ( ResourceBuilder  $b,
RepositoryPreloader  $l 
)

Manager constructor.

Parameters
ResourceBuilder$b

Definition at line 36 of file Manager.php.

39 {
40 $this->resource_builder = $b;
41 $this->preloader = $l;
42 }

References Vendor\Package\$b.

Member Function Documentation

◆ appendNewRevision()

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

Definition at line 126 of file Manager.php.

131 : Revision {
132 if ($result->isOK()) {
133 if (!$this->resource_builder->has($identification)) {
134 throw new \LogicException("Resource not found, can't append new version in: " . $identification->serialize());
135 }
136 $resource = $this->resource_builder->get($identification);
137 $info_resolver = new UploadInfoResolver(
138 $result,
139 $resource->getMaxRevision() + 1,
140 $stakeholder->getOwnerOfNewResources(),
141 $revision_title ?? $result->getName()
142 );
143
144 $this->resource_builder->append(
145 $resource,
146 $result,
147 $info_resolver
148 );
149 $resource->addStakeholder($stakeholder);
150
151 $this->resource_builder->store($resource);
152
153 return $resource->getCurrentRevision();
154 }
155 throw new \LogicException("Can't handle UploadResult: " . $result->getStatus()->getMessage());
156 }
$result

References $result, ILIAS\ResourceStorage\Stakeholder\ResourceStakeholder\getOwnerOfNewResources(), and ILIAS\ResourceStorage\Identification\ResourceIdentification\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 189 of file Manager.php.

194 : Revision {
195 if (!$this->resource_builder->has($identification)) {
196 throw new \LogicException("Resource not found, can't append new version in: " . $identification->serialize());
197 }
198
199 $resource = $this->resource_builder->get($identification);
200 $info_resolver = new StreamInfoResolver(
201 $stream,
202 $resource->getMaxRevision() + 1,
203 $stakeholder->getOwnerOfNewResources(),
204 $revision_title ?? $stream->getMetadata()['uri']
205 );
206
207 $this->resource_builder->appendFromStream(
208 $resource,
209 $stream,
210 $info_resolver,
211 true
212 );
213 $resource->addStakeholder($stakeholder);
214
215 $this->resource_builder->store($resource);
216
217 return $resource->getCurrentRevision();
218 }

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

+ Here is the call graph for this function:

◆ clone()

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

Definition at line 117 of file Manager.php.

118 {
119 $resource = $this->resource_builder->clone($this->resource_builder->get($identification));
120
121 return $resource->getIdentification();
122 }

◆ find()

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

Definition at line 93 of file Manager.php.

94 {
95 $resource_identification = new ResourceIdentification($identification);
96
97 if ($this->resource_builder->has($resource_identification)) {
98 return $resource_identification;
99 }
100
101 return null;
102 }

◆ getCurrentRevision()

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

Definition at line 251 of file Manager.php.

251 : Revision
252 {
253 return $this->resource_builder->get($identification)->getCurrentRevision();
254 }

◆ getResource()

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

Definition at line 106 of file Manager.php.

106 : StorableResource
107 {
108 $this->preloader->preload([$i->serialize()]);
109 return $this->resource_builder->get($i);
110 }
$i
Definition: metadata.php:24

References $i.

◆ remove()

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

Definition at line 112 of file Manager.php.

112 : void
113 {
114 $this->resource_builder->remove($this->resource_builder->get($identification), $stakeholder);
115 }

◆ removeRevision()

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

Definition at line 272 of file Manager.php.

272 : bool
273 {
274 $resource = $this->resource_builder->get($identification);
275 $this->resource_builder->removeRevision($resource, $revision_number);
276 $this->resource_builder->store($resource);
277
278 return true;
279 }

◆ replaceWithStream()

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

Definition at line 220 of file Manager.php.

225 : Revision {
226 if (!$this->resource_builder->has($identification)) {
227 throw new \LogicException("Resource not found, can't append new version in: " . $identification->serialize());
228 }
229
230 $resource = $this->resource_builder->get($identification);
231 $info_resolver = new StreamInfoResolver(
232 $stream,
233 $resource->getMaxRevision() + 1,
234 $stakeholder->getOwnerOfNewResources(),
235 $revision_title ?? $stream->getMetadata()['uri']
236 );
237
238 $this->resource_builder->replaceWithStream(
239 $resource,
240 $stream,
241 $info_resolver,
242 true
243 );
244 $resource->addStakeholder($stakeholder);
245
246 $this->resource_builder->store($resource);
247
248 return $resource->getCurrentRevision();
249 }

References ILIAS\ResourceStorage\Identification\ResourceIdentification\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 158 of file Manager.php.

163 : Revision {
164 if ($result->isOK()) {
165 if (!$this->resource_builder->has($identification)) {
166 throw new \LogicException("Resource not found, can't append new version in: " . $identification->serialize());
167 }
168 $resource = $this->resource_builder->get($identification);
169 $info_resolver = new UploadInfoResolver(
170 $result,
171 $resource->getMaxRevision() + 1,
172 $stakeholder->getOwnerOfNewResources(),
173 $revision_title ?? $result->getName()
174 );
175 $this->resource_builder->replaceWithUpload(
176 $resource,
177 $result,
178 $info_resolver
179 );
180 $resource->addStakeholder($stakeholder);
181
182 $this->resource_builder->store($resource);
183
184 return $resource->getCurrentRevision();
185 }
186 throw new \LogicException("Can't handle UploadResult: " . $result->getStatus()->getMessage());
187 }

References $result, ILIAS\ResourceStorage\Stakeholder\ResourceStakeholder\getOwnerOfNewResources(), and ILIAS\ResourceStorage\Identification\ResourceIdentification\serialize().

+ Here is the call graph for this function:

◆ rollbackRevision()

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

Definition at line 263 of file Manager.php.

263 : bool
264 {
265 $resource = $this->resource_builder->get($identification);
266 $this->resource_builder->appendFromRevision($resource, $revision_number);
267 $this->resource_builder->store($resource);
268
269 return true;
270 }

◆ stream()

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

Definition at line 69 of file Manager.php.

74
75 $info_resolver = new StreamInfoResolver(
76 $stream,
77 1,
78 $stakeholder->getOwnerOfNewResources(),
79 $revision_title ?? $stream->getMetadata()['uri']
80 );
81
82 $resource = $this->resource_builder->newFromStream(
83 $stream,
84 $info_resolver,
85 true
86 );
87 $resource->addStakeholder($stakeholder);
88 $this->resource_builder->store($resource);
89
90 return $resource->getIdentification();
91 }

◆ updateRevision()

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

Definition at line 256 of file Manager.php.

256 : bool
257 {
258 $this->resource_builder->storeRevision($revision);
259
260 return true;
261 }

◆ upload()

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

Definition at line 44 of file Manager.php.

49 if ($result->isOK()) {
50 $info_resolver = new UploadInfoResolver(
51 $result,
52 1,
53 $stakeholder->getOwnerOfNewResources(),
54 $revision_title ?? $result->getName()
55 );
56
57 $resource = $this->resource_builder->new(
58 $result,
59 $info_resolver
60 );
61 $resource->addStakeholder($stakeholder);
62 $this->resource_builder->store($resource);
63
64 return $resource->getIdentification();
65 }
66 throw new \LogicException("Can't handle UploadResult: " . $result->getStatus()->getMessage());
67 }

References $result, and ILIAS\ResourceStorage\Stakeholder\ResourceStakeholder\getOwnerOfNewResources().

+ Here is the call graph for this function:

Field Documentation

◆ $preloader

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

Definition at line 30 of file Manager.php.

◆ $resource_builder

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

Definition at line 26 of file Manager.php.


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