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.

References Vendor\Package\$b.

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

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.

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\ResourceIdentification\serialize().

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

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

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  }
+ Here is the call graph for this function:

◆ clone()

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

Definition at line 117 of file Manager.php.

117  : ResourceIdentification
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.

93  : ?ResourceIdentification
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.

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

106  : StorableResource
107  {
108  $this->preloader->preload([$i->serialize()]);
109  return $this->resource_builder->get($i);
110  }
$i
Definition: metadata.php:24
+ Here is the call graph for this function:

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

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

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

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\ResourceIdentification\serialize().

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  }
$result
+ 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.

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

73  : ResourceIdentification {
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  }
+ Here is the call graph for this function:

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

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

48  : ResourceIdentification {
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  }
$result
+ 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: