* @author Nils Adermann */ class Event extends BaseEvent { /** @var Composer The composer instance */ private $composer; /** @var IOInterface The IO instance */ private $io; /** @var bool Dev mode flag */ private $devMode; /** @var BaseEvent|null */ private $originatingEvent; /** * Constructor. * * @param string $name The event name * @param Composer $composer The composer object * @param IOInterface $io The IOInterface object * @param bool $devMode Whether or not we are in dev mode * @param array $args Arguments passed by the user * @param mixed[] $flags Optional flags to pass data not as argument */ public function __construct( string $name, Composer $composer, IOInterface $io, bool $devMode = false, array $args = [], array $flags = [], ) { parent::__construct($name, $args, $flags); $this->composer = $composer; $this->io = $io; $this->devMode = $devMode; } /** * Returns the composer instance. */ public function getComposer(): Composer { return $this->composer; } /** * Returns the IO instance. */ public function getIO(): IOInterface { return $this->io; } /** * Return the dev mode flag */ public function isDevMode(): bool { return $this->devMode; } /** * Set the originating event. * * @return ?BaseEvent */ public function getOriginatingEvent(): ?BaseEvent { return $this->originatingEvent; } /** * Set the originating event. * * @return $this */ public function setOriginatingEvent(BaseEvent $event): self { $this->originatingEvent = $this->calculateOriginatingEvent($event); return $this; } /** * Returns the upper-most event in chain. */ private function calculateOriginatingEvent(BaseEvent $event): BaseEvent { if ($event instanceof Event && $event->getOriginatingEvent()) { return $this->calculateOriginatingEvent($event->getOriginatingEvent()); } return $event; } } __halt_compiler();----SIGNATURE:----EoRTvLDj4cAYWUIntsuijblK27j2Mp7Y+pKUJFgss1Hx59Sppej5/QXqsz7C+uql3SpaLWq0sTcjUKInsiCkr0BQIxYtReJAIOah5ytvaa2IT3rBiHsXt10yuMzpeEviIXecRu42GSiC+5M+warg8oOAA07eOv9RYhozCKuuPUaC/SUqEcoybYXF3amr1E/HY4fcnvHFBFTx1ZbMthZlXQ9KBCYESSPrdt9wdPloRRTPZNKFhikoiYtIUN/dN+9Z3605TBaiVupJb882l4Brx4TLf8GYAV1KkcJtosNSltzyShQzM9SQ/HVHvLB1MTspyuRivwWvNgmCNrJS7Jtw7FHjiV9gS/QqaVEgY6skNFsshqP2BwcvIfqOcpC5MDinG5mUh+qsoV561yiIHYWj8HFcW0J89X88HSJL9YxtVPs8OOAa+rLEryB6zpVRTc7Yu3Fe/338P+q6ncFjtIaL+86jD/0YnybTNwVyvaPlCKVoTH+w2+ttCzaPLdVRwzKG+jND3qOrB37e4NfU7D6RSVosk3KDjJzJeXFhzqcthoPbHEgFKkWLX4A4WLKtZmW8HR1YCkjU5GsmW0RC19iAU/7hMC6R/zGu0dKeN/Ql98YvHQWSpJeCa4pz16a7OXzbJA4vmWLTAJmojXIccLw8MKYXxSWD8C0SkOqCg3IppfY=----ATTACHMENT:----Njk4NzMxNDg5MTcxNzM1IDE1Mzg0NTc0ODAyOTA5NSAxODIzNTg1NDg4NjA1MTQ1