protected function hasForPeriod($key, \DatePeriod $period)
    {
        $ranges = $this->getRanges($period);

        if (count($ranges) > 0) {
            if (count($ranges) == 1 && !($ranges[0] instanceof DateRange)) {
                return new DateExists($ranges[0], $this->repository->hasFor($key, $ranges[0]));
            }

            $values = array();

            /** @var \Krucas\Counter\DateRange $range */
            foreach ($ranges as $range) {
                $values[] = new RangeExists(
                    $range,
                    $this->repository->hasForRange($key, $range->getStartDate(), $range->getEndDate())
                );
            }

            return $values;
        }

        return new Exists(false);
    }