Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
primogenial
/
wp-content
/
plugins
/
mailpoet
/
lib
/
Automation
/
Engine
/
Data
:
SubjectEntry.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php declare(strict_types = 1); namespace MailPoet\Automation\Engine\Data; if (!defined('ABSPATH')) exit; use MailPoet\Automation\Engine\Data\Subject as SubjectData; use MailPoet\Automation\Engine\Exceptions; use MailPoet\Automation\Engine\Integration\Payload; use MailPoet\Automation\Engine\Integration\Subject; use Throwable; /** * @template-covariant S of Subject<Payload> */ class SubjectEntry { /** @var S */ private $subject; /** @var SubjectData */ private $subjectData; /** @var Payload|null */ private $payloadCache; /** @param S $subject */ public function __construct( Subject $subject, SubjectData $subjectData ) { $this->subject = $subject; $this->subjectData = $subjectData; } /** @return S */ public function getSubject(): Subject { return $this->subject; } /** @return Payload */ public function getPayload() { if ($this->payloadCache === null) { try { $this->payloadCache = $this->subject->getPayload($this->subjectData); } catch (Throwable $e) { throw Exceptions::subjectLoadFailed($this->subject->getKey(), $this->subjectData->getArgs()); } } return $this->payloadCache; } }