summaryrefslogtreecommitdiffstats
path: root/vendor/ipl/scheduler/src/Common/TaskProperties.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/ipl/scheduler/src/Common/TaskProperties.php')
-rw-r--r--vendor/ipl/scheduler/src/Common/TaskProperties.php83
1 files changed, 83 insertions, 0 deletions
diff --git a/vendor/ipl/scheduler/src/Common/TaskProperties.php b/vendor/ipl/scheduler/src/Common/TaskProperties.php
new file mode 100644
index 0000000..4ab65e2
--- /dev/null
+++ b/vendor/ipl/scheduler/src/Common/TaskProperties.php
@@ -0,0 +1,83 @@
+<?php
+
+namespace ipl\Scheduler\Common;
+
+use LogicException;
+use Ramsey\Uuid\UuidInterface;
+
+trait TaskProperties
+{
+ /** @var string */
+ protected $description;
+
+ /** @var string Name of this task */
+ protected $name;
+
+ /** @var UuidInterface Unique identifier of this task */
+ protected $uuid;
+
+ /**
+ * Set the description of this task
+ *
+ * @param ?string $desc
+ *
+ * @return $this
+ */
+ public function setDescription(?string $desc): self
+ {
+ $this->description = $desc;
+
+ return $this;
+ }
+
+ public function getDescription(): ?string
+ {
+ return $this->description;
+ }
+
+ public function getName(): string
+ {
+ if (! $this->name) {
+ throw new LogicException('Task name must not be null');
+ }
+
+ return $this->name;
+ }
+
+ /**
+ * Set the name of this Task
+ *
+ * @param string $name
+ *
+ * @return $this
+ */
+ public function setName(string $name): self
+ {
+ $this->name = $name;
+
+ return $this;
+ }
+
+ public function getUuid(): UuidInterface
+ {
+ if (! $this->uuid) {
+ throw new LogicException('Task UUID must not be null');
+ }
+
+ return $this->uuid;
+ }
+
+ /**
+ * Set the UUID of this task
+ *
+ * @param UuidInterface $uuid
+ *
+ * @return $this
+ */
+ public function setUuid(UuidInterface $uuid): self
+ {
+ $this->uuid = $uuid;
+
+ return $this;
+ }
+}