* SPDX-License-Identifier: AGPL-3.0-or-later */ namespace KTXF\Mail\Collection; use KTXF\Resource\Provider\Node\NodePropertiesMutableAbstract; /** * Abstract Mail Collection Properties Mutable Class */ abstract class CollectionPropertiesMutableAbstract extends CollectionPropertiesBaseAbstract implements CollectionPropertiesMutableInterface { /** * @inheritDoc */ public function jsonDeserialize(array|string $data): static { if (is_string($data)) { $data = json_decode($data, true); } $this->data = $data; return $this; } /** * @inheritDoc */ public function setLabel(string $value): static { $this->data[self::PROPERTY_LABEL] = $value; return $this; } /** * @inheritDoc */ public function setRole(CollectionRoles $value): static { $this->data[self::PROPERTY_ROLE] = $value; return $this; } /** * @inheritDoc */ public function setRank(int $value): static { $this->data[self::PROPERTY_RANK] = $value; return $this; } /** * @inheritDoc */ public function setSubscription(bool $value): static { $this->data[self::PROPERTY_SUBSCRIPTION] = $value; return $this; } }