*/ 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:----h1bSWK349JZ5nbanFeMcCsyYbG2d+OVf5qaNolSvYNSP+HbdLygIt9ddfVhUbyRWpwMt/Abg6xB8AsvoyHwYq37frIxoOWFKURc8EsHJ6jbOzLlFCe7fzDdT9v6IYuUPJQIxOhjXRsoIz+gep46Jkue4PVMQc3mpxK9pteXr5XjdonFiuXEZHvvb8Ob93Luhj/dyldHD7eoi2/DHa72h0RUdvb/5QyOhHoOysQ5/23tlUln4xfVWeHXmHXQpOuJqYQLGXggUv0bwbIrW1GxNPgUIxmaqsGkn0bUMElcQ5vTYJORzvbgJEt48phZ7592N+971rtQ77Zw+XoDxC8NWhzjYrHlPTAKuqLCaCQWR5XOtgm1q/zjLlTQ4DpRtFH0Nsx4RASaMi/AIq5/+e5moBzwS41ngrJmQBbV1zmlO8a+Bs/ytpw4FxVLIpVT1fzzFDGz8EW9h5LEHfcSCM+nsEV+COBwEv5ShBhGXXO/Kw22i22Oe6EUC9M6Hh9MJnK6r9aQdukNV5YIz591LiI+3dlzXBIsOUyQNcI2/APMvavG4OnM3wqFcD4JOpy958SvTg8uZzCqrkQqlKGQ2xYNk/22+pT+5FBWW8yM7m2Hf0CIfWrKPS5y21ApMV9vp2vyXejM632w5GI38tG9aMyTV4EElnbicj8N5349F5xIZEjI=----ATTACHMENT:----MzM0NjY5MDcxNDQwMDgwOCA2NTkzNDQ4MTI0OTA3NTk5IDc0MDQ5OTgzOTE2ODk0MTg=