aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_trashbin/lib/Trash/TrashItem.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_trashbin/lib/Trash/TrashItem.php')
-rw-r--r--apps/files_trashbin/lib/Trash/TrashItem.php172
1 files changed, 172 insertions, 0 deletions
diff --git a/apps/files_trashbin/lib/Trash/TrashItem.php b/apps/files_trashbin/lib/Trash/TrashItem.php
new file mode 100644
index 00000000000..2ae999a2069
--- /dev/null
+++ b/apps/files_trashbin/lib/Trash/TrashItem.php
@@ -0,0 +1,172 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\Files_Trashbin\Trash;
+
+use OCP\Files\FileInfo;
+use OCP\IUser;
+
+class TrashItem implements ITrashItem {
+
+ public function __construct(
+ private ITrashBackend $backend,
+ private string $originalLocation,
+ private int $deletedTime,
+ private string $trashPath,
+ private FileInfo $fileInfo,
+ private IUser $user,
+ private ?IUser $deletedBy,
+ ) {
+ }
+
+ public function getTrashBackend(): ITrashBackend {
+ return $this->backend;
+ }
+
+ public function getOriginalLocation(): string {
+ return $this->originalLocation;
+ }
+
+ public function getDeletedTime(): int {
+ return $this->deletedTime;
+ }
+
+ public function getTrashPath(): string {
+ return $this->trashPath;
+ }
+
+ public function isRootItem(): bool {
+ return substr_count($this->getTrashPath(), '/') === 1;
+ }
+
+ public function getUser(): IUser {
+ return $this->user;
+ }
+
+ public function getEtag() {
+ return $this->fileInfo->getEtag();
+ }
+
+ public function getSize($includeMounts = true) {
+ return $this->fileInfo->getSize($includeMounts);
+ }
+
+ public function getMtime() {
+ return $this->fileInfo->getMtime();
+ }
+
+ public function getName() {
+ return $this->fileInfo->getName();
+ }
+
+ public function getInternalPath() {
+ return $this->fileInfo->getInternalPath();
+ }
+
+ public function getPath() {
+ return $this->fileInfo->getPath();
+ }
+
+ public function getMimetype() {
+ return $this->fileInfo->getMimetype();
+ }
+
+ public function getMimePart() {
+ return $this->fileInfo->getMimePart();
+ }
+
+ public function getStorage() {
+ return $this->fileInfo->getStorage();
+ }
+
+ public function getId() {
+ return $this->fileInfo->getId();
+ }
+
+ public function isEncrypted() {
+ return $this->fileInfo->isEncrypted();
+ }
+
+ public function getPermissions() {
+ return $this->fileInfo->getPermissions();
+ }
+
+ public function getType() {
+ return $this->fileInfo->getType();
+ }
+
+ public function isReadable() {
+ return $this->fileInfo->isReadable();
+ }
+
+ public function isUpdateable() {
+ return $this->fileInfo->isUpdateable();
+ }
+
+ public function isCreatable() {
+ return $this->fileInfo->isCreatable();
+ }
+
+ public function isDeletable() {
+ return $this->fileInfo->isDeletable();
+ }
+
+ public function isShareable() {
+ return $this->fileInfo->isShareable();
+ }
+
+ public function isShared() {
+ return $this->fileInfo->isShared();
+ }
+
+ public function isMounted() {
+ return $this->fileInfo->isMounted();
+ }
+
+ public function getMountPoint() {
+ return $this->fileInfo->getMountPoint();
+ }
+
+ public function getOwner() {
+ return $this->fileInfo->getOwner();
+ }
+
+ public function getChecksum() {
+ return $this->fileInfo->getChecksum();
+ }
+
+ public function getExtension(): string {
+ return $this->fileInfo->getExtension();
+ }
+
+ public function getTitle(): string {
+ return $this->getOriginalLocation();
+ }
+
+ public function getCreationTime(): int {
+ return $this->fileInfo->getCreationTime();
+ }
+
+ public function getUploadTime(): int {
+ return $this->fileInfo->getUploadTime();
+ }
+
+ public function getParentId(): int {
+ return $this->fileInfo->getParentId();
+ }
+
+ public function getDeletedBy(): ?IUser {
+ return $this->deletedBy;
+ }
+
+ /**
+ * @inheritDoc
+ * @return array<string, int|string|bool|float|string[]|int[]>
+ */
+ public function getMetadata(): array {
+ return $this->fileInfo->getMetadata();
+ }
+}