aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/SystemTag/SystemTag.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/SystemTag/SystemTag.php')
-rw-r--r--lib/private/SystemTag/SystemTag.php59
1 files changed, 59 insertions, 0 deletions
diff --git a/lib/private/SystemTag/SystemTag.php b/lib/private/SystemTag/SystemTag.php
new file mode 100644
index 00000000000..1a573dabeaa
--- /dev/null
+++ b/lib/private/SystemTag/SystemTag.php
@@ -0,0 +1,59 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+namespace OC\SystemTag;
+
+use OCP\SystemTag\ISystemTag;
+
+class SystemTag implements ISystemTag {
+ public function __construct(
+ private string $id,
+ private string $name,
+ private bool $userVisible,
+ private bool $userAssignable,
+ private ?string $etag = null,
+ private ?string $color = null,
+ ) {
+ }
+
+ public function getId(): string {
+ return $this->id;
+ }
+
+ public function getName(): string {
+ return $this->name;
+ }
+
+ public function isUserVisible(): bool {
+ return $this->userVisible;
+ }
+
+ public function isUserAssignable(): bool {
+ return $this->userAssignable;
+ }
+
+ public function getAccessLevel(): int {
+ if (!$this->userVisible) {
+ return self::ACCESS_LEVEL_INVISIBLE;
+ }
+
+ if (!$this->userAssignable) {
+ return self::ACCESS_LEVEL_RESTRICTED;
+ }
+
+ return self::ACCESS_LEVEL_PUBLIC;
+ }
+
+ public function getETag(): ?string {
+ return $this->etag;
+ }
+
+ public function getColor(): ?string {
+ return $this->color;
+ }
+}