public function setValue($value)
    {
        $this->value = $value;

        /** @noinspection NotOptimalIfConditionsInspection */
        if (is_array($value) && array_key_exists('start', $value) && array_key_exists('end', $value)) {
            $start = (float) $value['start'];
            $end   = (float) $value['end'];

            if ($start <= $end) {
                $this->startElement->setValue($start);
                $this->endElement->setValue($end);
            }
        }

        return $this;
    }