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;
 }
 /**
  * @param Range $range
  * @param bool  $exclude
  *
  * @return string eg. "(%s >= %s AND %s <= %s)"
  */
 private function getRangePattern(Range $range, $exclude = false)
 {
     $pattern = '(%s ';
     if ($exclude) {
         $pattern .= $range->isLowerInclusive() ? '<=' : '<';
         $pattern .= ' %s OR %s ';
         // lower-bound value, AND fieldname
         $pattern .= $range->isUpperInclusive() ? '>=' : '>';
         $pattern .= ' %s';
         // upper-bound value
     } else {
         $pattern .= $range->isLowerInclusive() ? '>=' : '>';
         $pattern .= ' %s AND %s ';
         // lower-bound value, AND fieldname
         $pattern .= $range->isUpperInclusive() ? '<=' : '<';
         $pattern .= ' %s';
         // upper-bound value
     }
     $pattern .= ')';
     return $pattern;
 }
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;
 }