* @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:----sSUNdJPJgG2sNd0ogBA3MFzYfPEhYwkZeU9O1oIEK+gxLo0lXUVKJY1/hsF5/ltz1yDf8/9feQe52VdJwDleFBfI3CtmFQuh9i8R82OkleVDurA8DrVax6Og3bXFNVHegDUAeWhdxICkgmUY6X6hsrb/0ucQd0KSg7kWIcK67eebKLMaJlB4IpCAOyVTzKvNHE58V8HKgw69DHFmyGH9tAGFo0oonQrKI/fL6tfaCnucthmWXu8642/8Ri2wuv0nfmybZ9xXXjMzuUGD4L2Ioooo4N9iNGZxrlce7JgSE/8lXAB905fgpi8JdiwOefaX6cAg6BM06FMP0oOdyn2wQilajAHu3YQOZ2QAtzpC0CYAUBhuM3CQpFSUXO49GxwADRcqZxhPUH4orYmiLO8ire9zCreDhtRtW4PiznlAWR+15L4WXiyBTYKAlt8BUcW7ySlkVlBQwW8h2EcozKcjmFWXA3TYsMga/D9p0hI9uGS3Cb+mc5HQFJ43n3WF/wcJIBfcf3tbKH/I+7lCzNqsg+WG0/3PJBJ7m0p+1MZhEnFnXWr6ae40FVfH9z+JI5hJNYvWhTxW2VKZt0K8f52V0TxfvDmSPn/fViJ7JOz0eDUCc/zAUpAqx4JT9ncKBIeRd74g0O2CIBbQzcwqrUhzu5VR6G6l791ukpPRhh2+2vc=----ATTACHMENT:----NzIzMjI1NDk2NDg5NTY1MCAyNzQwODc2OTk0MDE5Njg4IDkwOTA5NTA1MjQyMzIwMjI=