Add methods

This commit is contained in:
2025-10-25 16:27:41 -04:00
parent b1e7bff20f
commit 749bac4a1e

View File

@@ -11,9 +11,44 @@ trait NameableTrait
private const string NAME = 'name'; private const string NAME = 'name';
abstract public function get(string $key): mixed; abstract public function get(string $key): mixed;
final public function getName(): string
{
return $this->get(self::NAME);
}
abstract public function has(string $key): bool; abstract public function has(string $key): bool;
final public function hasName(): bool
{
return $this->has(self::NAME);
}
abstract protected function set(string $key, mixed $value): mixed; abstract protected function set(string $key, mixed $value): mixed;
final protected function setName(string $name): string
{
return $this->set(self::NAME, $name);
}
abstract protected function unset(string $key): void; abstract protected function unset(string $key): void;
final protected function unsetName(): void
{
$this->unset(self::NAME);
}
abstract public function with(string $key, mixed $value): AwareInterface; abstract public function with(string $key, mixed $value): AwareInterface;
final public function withName(string $name): NameableInterface
{
return $this->with(self::NAME, $name);
}
abstract public function without(string $key): AwareInterface; abstract public function without(string $key): AwareInterface;
final public function withoutName(): NameableInterface
{
return $this->without(self::NAME);
}
} }