. */ declare(strict_types=1); namespace FireflyIII\TransactionRules\Triggers; use FireflyIII\Models\RuleTrigger; use FireflyIII\Models\TransactionJournal; /** * This class will be magical! * * Class AbstractTrigger * @method triggered */ class AbstractTrigger { /** @var bool Whether to stop processing after this one is checked. */ public $stopProcessing; /** @var string Value to check for */ protected $checkValue; /** @var TransactionJournal Journal to check */ protected $journal; /** @var RuleTrigger Trigger object */ protected $trigger; /** @var string Trigger value */ protected $triggerValue; /** * Make a new trigger from the value given in the string. * * @codeCoverageIgnore * * @param string $triggerValue * @param bool $stopProcessing * * @return static */ public static function makeFromStrings(string $triggerValue, bool $stopProcessing) { $self = new static; $self->triggerValue = $triggerValue; $self->stopProcessing = $stopProcessing; return $self; } /** * Make a new trigger from the rule trigger in the parameter * * @codeCoverageIgnore * * @param RuleTrigger $trigger * * @return AbstractTrigger */ public static function makeFromTrigger(RuleTrigger $trigger) { $self = new static; $self->trigger = $trigger; $self->triggerValue = $trigger->trigger_value; $self->stopProcessing = $trigger->stop_processing; return $self; } /** * Make a new trigger from a trigger value. * * @codeCoverageIgnore * * @param string $triggerValue * * @return AbstractTrigger */ public static function makeFromTriggerValue(string $triggerValue) { $self = new static; $self->triggerValue = $triggerValue; return $self; } /** * Returns trigger * * @codeCoverageIgnore * * @return RuleTrigger */ public function getTrigger(): RuleTrigger { return $this->trigger; } /** * Returns trigger value * * @codeCoverageIgnore * * @return string */ public function getTriggerValue(): string { return $this->triggerValue; } }