private function valuesToBag(FieldConfigInterface $fieldConfig, array $values, ValuesBag $valuesBag, $groupIdx, $level = 0) { $factory = new FieldValuesFactory($fieldConfig, $valuesBag, $this->config->getMaxValues(), $groupIdx, $level); foreach ($values['single-values'] as $index => $value) { $factory->addSimpleValue($value); } foreach ($values['excluded-values'] as $index => $value) { $factory->addExcludedSimpleValue($value); } foreach ($values['ranges'] as $index => $range) { $this->assertArrayKeysExists($range, ['lower', 'upper'], $index, $groupIdx, $level); $this->processRange($range, $factory); } foreach ($values['excluded-ranges'] as $index => $range) { $this->assertArrayKeysExists($range, ['lower', 'upper'], $index, $groupIdx, $level); $this->processRange($range, $factory, true); } foreach ($values['comparisons'] as $index => $comparison) { $this->assertArrayKeysExists($comparison, ['value', 'operator'], $index, $groupIdx, $level); $factory->addComparisonValue($comparison['operator'], $comparison['value']); } foreach ($values['pattern-matchers'] as $index => $matcher) { $this->assertArrayKeysExists($matcher, ['value', 'type'], $index, $groupIdx, $level); $factory->addPatterMatch($matcher['type'], $matcher['value'], isset($matcher['case-insensitive']) && true === (bool) $matcher['case-insensitive']); } return $valuesBag; }
private function valuesToBag(FieldConfigInterface $fieldConfig, \SimpleXMLElement $values, ValuesBag $valuesBag, $groupIdx, $level = 0) { $factory = new FieldValuesFactory($fieldConfig, $valuesBag, $this->config->getMaxValues(), $groupIdx, $level); if (isset($values->{'single-values'})) { foreach ($values->{'single-values'}->children() as $value) { $factory->addSimpleValue((string) $value); } } if (isset($values->{'excluded-values'})) { foreach ($values->{'excluded-values'}->children() as $value) { $factory->addExcludedSimpleValue((string) $value); } } if (isset($values->comparisons)) { foreach ($values->comparisons->children() as $comparison) { $factory->addComparisonValue((string) $comparison['operator'], (string) $comparison); } } if (isset($values->ranges)) { foreach ($values->ranges->children() as $range) { $this->processRange($range, $factory); } } if (isset($values->{'excluded-ranges'})) { foreach ($values->{'excluded-ranges'}->children() as $range) { $this->processRange($range, $factory, true); } } if (isset($values->{'pattern-matchers'})) { foreach ($values->{'pattern-matchers'}->children() as $patternMatch) { $factory->addPatterMatch((string) $patternMatch['type'], (string) $patternMatch, 'true' === strtolower($patternMatch['case-insensitive'])); } } return $valuesBag; }