ILIAS  trunk Revision v11.0_alpha-1723-g8e69f309bab
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
StorageHandler.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
35 
41 interface StorageHandler
42 {
46  public function getID(): string;
47 
48  public function isPrimary(): bool;
49 
51 
52  public function has(ResourceIdentification $identification): bool;
53 
54  // STREAMS
55 
56  public function getStream(Revision $revision): FileStream;
57 
58  public function storeUpload(UploadedFileRevision $revision): bool;
59 
60  public function storeStream(FileStreamRevision $revision): bool;
61 
62 
63  // FLAVOURS
64 
65  public function hasFlavour(Revision $revision, Flavour $flavour): bool;
66 
67  public function storeFlavour(Revision $revision, StorableFlavourDecorator $storabel_flavour): bool;
68 
69  public function deleteFlavour(Revision $revision, Flavour $flavour): bool;
70 
71  public function getFlavourStreams(Revision $revision, Flavour $flavour): \Generator;
72 
73 
74  public function getFlavourPath(Revision $revision, Flavour $flavour): string;
75 
76  public function clearFlavours(Revision $revision): void;
77 
78  // REVISIONS
79 
80  public function cloneRevision(CloneRevision $revision): bool;
81 
82  public function streamReplacement(StreamReplacementRevision $revision): bool;
83 
87  public function deleteRevision(Revision $revision): void;
88 
92  public function deleteResource(StorableResource $resource): void;
93 
97  public function cleanUpContainer(StorableResource $resource): void;
98 
102  public function getStorageLocationBasePath(): string;
103 
107  public function getFullContainerPath(ResourceIdentification $identification): string;
108 
112  public function getContainerPathWithoutBase(ResourceIdentification $identification): string;
113 
119  public function getRevisionPath(Revision $revision): string;
120 
121 
125  public function movementImplementation(): string;
126 
127  public function getPathGenerator(): PathGenerator;
128 }
storeFlavour(Revision $revision, StorableFlavourDecorator $storabel_flavour)
streamReplacement(StreamReplacementRevision $revision)
getContainerPathWithoutBase(ResourceIdentification $identification)
This is only the path of a ResourceIdentification inside the StorageLocation base path...
getFullContainerPath(ResourceIdentification $identification)
This is the full path to the container of a ResourceIdentification (incl.
getFlavourPath(Revision $revision, Flavour $flavour)
storeUpload(UploadedFileRevision $revision)
getRevisionPath(Revision $revision)
This is the full path to a revision of a Resource, incl.
cleanUpContainer(StorableResource $resource)
This checks if there are empty directories in the filesystem which can be deleted.
deleteFlavour(Revision $revision, Flavour $flavour)
has(ResourceIdentification $identification)
deleteResource(StorableResource $resource)
This deleted the whole container of a resource.
getStorageLocationBasePath()
This is the place in the filesystem where the containers (nested) get created.
getFlavourStreams(Revision $revision, Flavour $flavour)
deleteRevision(Revision $revision)
This only delets a revision of a Resource.
hasFlavour(Revision $revision, Flavour $flavour)
The base interface for all filesystem streams.
Definition: FileStream.php:31