*/ 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:----umUJX7MmASIdlWRN6JejGCe+leFDIT5L4TVcGzDH30NeRJucMY5hUljvsAfh8OX7Ao1fRz8QZn3XBw76qZfU09M/iLXUTnzYUQrjvDCL4kkpIAyypp0DmhPD6ZfIdbwRNLm1r9PV0eDP+a2RzsoZdhgpLLitrdH1tlkAkm35Z0Ls+uNemhjUlqQJmHFkq1DEbFRKqnqbxixb6ld82kE6h/cR2R8IVHnxgcqwqqzSBF/JY3YElsTiPdfZWbFU55YaNfv+ogEuAjBJJJ80SI5wu3JMe3wEbTeBdH91gQstk7bNM4hNwCAQmMKVi0vMwkkLynTMdsXwehjka/K4mGo/f4LW2+GpNEwlCEJrG6XON3JClXqNgxE9/D48J/RI7K5LEdOL66yQjuaMfeOSgdrCNRtiZXddnZYMLON15lZeBbx2QTvJMUEdabMyL15upQoXNtS+QDxtHb42+eKGzsQZUn3cma00abEA0CIRlYQ65MykLB0wn195/v15i/eRdhALKfe+9MDuCKU1N8uXz+XucZSVqPAf5HDGg3XN+AgNn+ZInXR0AHLGx6j6pwqLpP5qTvWtUgvIbkyM1n1uq1EufeXuGPC5g0Q+UYXfrQzA6oyMgkbP04lBDunrKE0aeDWux5sxsP81pamQyD1ryv9zlCW0IbITGG+S+Wr0ihefffY=----ATTACHMENT:----NDA3NjAzNzMyOTQ3MjggOTQwNDA2NjAwOTE5NjM3MyA5ODYyMzI2MjEwMjYyNjY0