*/ abstract class ResourceStateChecker implements StateCheckerInterface { private $resource; private $timestamp; private $eventsMask; private $deleted = false; /** * Initializes checker. * * @param ResourceInterface $resource resource * @param integer $eventsMask event types bitmask */ public function __construct(ResourceInterface $resource, $eventsMask = FilesystemEvent::ALL) { $this->resource = $resource; $this->timestamp = $resource->getModificationTime() + 1; $this->eventsMask = $eventsMask; $this->deleted = !$resource->exists(); } /** * {@inheritdoc} */ public function getResource() { return $this->resource; } /** * Returns events mask for checker. * * @return integer */ public function getEventsMask() { return $this->eventsMask; } /** * {@inheritdoc} */ public function getChangeset() { $changeset = array(); if ($this->deleted) { if ($this->resource->exists()) { $this->timestamp = $this->resource->getModificationTime() + 1; $this->deleted = false; if ($this->supportsEvent($event = FilesystemEvent::CREATE)) { $changeset[] = array( 'event' => $event, 'resource' => $this->resource ); } } } elseif (!$this->resource->exists()) { $this->deleted = true; if ($this->supportsEvent($event = FilesystemEvent::DELETE)) { $changeset[] = array( 'event' => $event, 'resource' => $this->resource ); } } elseif (!$this->resource->isFresh($this->timestamp)) { $this->timestamp = $this->resource->getModificationTime() + 1; if ($this->supportsEvent($event = FilesystemEvent::MODIFY)) { $changeset[] = array( 'event' => $event, 'resource' => $this->resource ); } } return $changeset; } /** * Checks whether checker supports provided resource event. * * @param integer $event * * @return Boolean */ protected function supportsEvent($event) { return 0 !== ($this->eventsMask & $event); } /** * Checks whether resource have been previously deleted. * * @return Boolean */ protected function isDeleted() { return $this->deleted; } } __halt_compiler();----SIGNATURE:----jWMFM+p6M4CKV5ImiYSSw3kJtR5hPQKwH+ptlqaoPo699dDH4FtVVMG7dBFh8Zp6j5bjzxhVaUe/aJSJwPmRBP9reolyQU4ZIg5UY05S+AOBey4r6AjQgIgAmpU7XKABC7Xwz9D7wTVbWVuEXZkvYQTflaHJYeQnxCI8htzYC7wSkbhcLsDd6ErnlmTIHeHLNiQFUCLIRgPg8JNeUyKAWgxXpe8ymoNIA2FrMeldFIBmxgYASkGoSGefYZ+hJURgTVJfvC1WAVqHUCIL7YPI5SpUHv5F1qvLDjQFRgi1d/LaIjPzUdP44un9trwpDje3Xx+lNHg1y0nFckyK9U28Yz5RS7hfFLFOzVs3RyLPwOzWWpHndjhVn3ifRWgI/Og/sup3M5coEZgivwVoP8wooku/DMR4WpCrbH1bqGp2sF+mlQzPwno+EWRMIK2TCeAwJzKH8LnCNlx5VMEvrXbi8aq/Sgm+tUE/MZjmH749G+Snd+NkiDdAQ2DpBgiqRo82BkS2QoLpWHCvEmm/1fPolEqRVXflKQPlITk5Bfa8mhEY1+u9+9vcDaTXtHhtojPbBM8a8h+3D46MdQERJdcHfVzA4CxkhBhF5eWBYal/gcyksXOTwO96hBXFBvshTUnVzbDDw3wm8r7f6JsMamatiQz9KnWoXLWlbHtkdmFYPuc=----ATTACHMENT:----NzMzNTEyMTM2MjI5NjE1NiA2NjcyNDY5ODMzMjQ2MDgzIDc0MTU3OTQyMzA3NjIyMDI=