Ejemplo n.º 1
0
 /**
  * @param \DOMNode $parent
  * @param Range    $range
  *
  * @return array
  */
 private function exportRangeValueToNode(\DOMNode $parent, Range $range, FieldConfigInterface $field)
 {
     $rangeNode = $this->document->createElement('range');
     $element = $this->document->createElement('lower');
     $element->appendChild($this->document->createTextNode($this->normToView($range->getLower(), $field)));
     if (!$range->isLowerInclusive()) {
         $element->setAttribute('inclusive', 'false');
     }
     $rangeNode->appendChild($element);
     $element = $this->document->createElement('upper');
     $element->appendChild($this->document->createTextNode($this->normToView($range->getUpper(), $field)));
     if (!$range->isUpperInclusive()) {
         $element->setAttribute('inclusive', 'false');
     }
     $rangeNode->appendChild($element);
     // Add to parent (<ranges> Node).
     $parent->appendChild($rangeNode);
 }
Ejemplo n.º 2
0
 /**
  * Returns whether $range1 is overlapping in $range.
  *
  * @param Range                    $range1
  * @param Range                    $range
  * @param ValueComparisonInterface $comparison
  * @param array                    $options
  *
  * @return bool
  */
 private function isRangeInRange(Range $range1, Range $range, ValueComparisonInterface $comparison, $options)
 {
     if (!$comparison->isHigher($range1->getLower(), $range->getLower(), $options) && !$this->isBoundEqual($comparison, $options, $range1->getLower(), $range->getLower(), $range->isLowerInclusive(), $range1->isLowerInclusive())) {
         return false;
     }
     return !(!$comparison->isLower($range1->getUpper(), $range->getUpper(), $options) && !$this->isBoundEqual($comparison, $options, $range1->getUpper(), $range->getUpper(), $range->isUpperInclusive(), $range1->isUpperInclusive()));
 }
Ejemplo n.º 3
0
 /**
  * @param Range $range
  *
  * @return array
  */
 protected function exportRangeValue(Range $range, FieldConfigInterface $field)
 {
     $result = ['lower' => $this->normToView($range->getLower(), $field), 'upper' => $this->normToView($range->getUpper(), $field)];
     if (!$range->isLowerInclusive()) {
         $result['inclusive-lower'] = false;
     }
     if (!$range->isUpperInclusive()) {
         $result['inclusive-upper'] = false;
     }
     return $result;
 }
Ejemplo n.º 4
0
 private function validateRangeBounds(Range $range, $path)
 {
     if (!$this->config->getValueComparison()->isLower($range->getLower(), $range->getUpper(), $this->config->getOptions())) {
         $lowerValue = $range->getViewLower();
         $upperValue = $range->getViewUpper();
         $message = 'Lower range-value {{ lower }} should be lower then upper range-value {{ upper }}.';
         $params = ['{{ lower }}' => strpos($lowerValue, ' ') ? "'" . $lowerValue . "'" : $lowerValue, '{{ upper }}' => strpos($upperValue, ' ') ? "'" . $upperValue . "'" : $upperValue];
         $this->valuesBag->addError(new ValuesError($path, strtr($message, $params), $message, $params));
     }
 }
Ejemplo n.º 5
0
 /**
  * @param Range                $range
  * @param FieldConfigInterface $field
  *
  * @return string
  */
 private function exportRangeValue(Range $range, FieldConfigInterface $field)
 {
     $result = !$range->isLowerInclusive() ? ']' : '';
     $result .= $this->exportValuePart($this->normToView($range->getLower(), $field));
     $result .= '-';
     $result .= $this->exportValuePart($this->normToView($range->getUpper(), $field));
     $result .= !$range->isUpperInclusive() ? '[' : '';
     return $result;
 }
 /**
  * @param Range                   $range
  * @param Constraint[]|Constraint $constraints
  * @param string                  $subPath
  * @param ValuesBag               $valuesBag
  * @param string[]                $validationGroups
  */
 private function validateRange(Range $range, $constraints, $subPath, ValuesBag $valuesBag, $validationGroups = null)
 {
     $this->validateValue($range->getLower(), $range->getViewLower(), $constraints, $subPath . '.lower', $valuesBag, $validationGroups);
     $this->validateValue($range->getUpper(), $range->getViewUpper(), $constraints, $subPath . '.upper', $valuesBag, $validationGroups);
 }