/**
  * @param ICalendar $calendar
  * @param ILogger $logger
  */
 public function __construct(ICalendar $calendar, ILogger $logger)
 {
     $this->calendar = $calendar;
     $this->logger = $logger;
     if ($calendar->getBackend() instanceof IBackend) {
         try {
             $this->api = $calendar->getBackend()->getObjectAPI($calendar);
         } catch (BackendUtils\Exception $ex) {
             //TODO
         }
         $this->cache = $calendar->getBackend()->getObjectCache($calendar);
         $this->updater = $calendar->getBackend()->getObjectUpdater($calendar);
         $this->watcher = $calendar->getBackend()->getObjectWatcher($calendar);
         $this->isCachingEnabled = $this->api->cache();
     }
 }