@@ 154-166 (lines=13) @@ | ||
151 | Assert::string($prefixPath); |
|
152 | Assert::notEmpty($prefixPath); |
|
153 | ||
154 | foreach ($sourceFieldset->getIterator() as $childSourceElementOrFieldset) { |
|
155 | /** @var ElementInterface $childSourceElementOrFieldset */ |
|
156 | Assert::isInstanceOf($childSourceElementOrFieldset, ElementInterface::class); |
|
157 | $childSourceElementOrFieldsetName = $childSourceElementOrFieldset->getName(); |
|
158 | ||
159 | $pathToElement = $this->buildPathToElementOrFieldset($childSourceElementOrFieldsetName, $prefixPath); |
|
160 | if ($targetFieldset->has($childSourceElementOrFieldsetName)) { |
|
161 | $childTargetElementOrFieldset = $targetFieldset->get($childSourceElementOrFieldsetName); |
|
162 | $this->runDiffElementStrategy($childSourceElementOrFieldset, $childTargetElementOrFieldset, $pathToElement); |
|
163 | } else { |
|
164 | $this->runDeleteElementStrategy($childSourceElementOrFieldset, $pathToElement); |
|
165 | } |
|
166 | } |
|
167 | } |
|
168 | ||
169 | /** |
|
@@ 231-250 (lines=20) @@ | ||
228 | */ |
|
229 | protected function addNewElementInDiff(FieldsetInterface $sourceFieldset, FieldsetInterface $targetFieldset, $prefixPath) |
|
230 | { |
|
231 | foreach ($targetFieldset->getIterator() as $childTargetElementOrFieldset) { |
|
232 | /** @var ElementInterface $childTargetElementOrFieldset */ |
|
233 | Assert::isInstanceOf($childTargetElementOrFieldset, ElementInterface::class); |
|
234 | ||
235 | $childTargetFieldsetName = $childTargetElementOrFieldset->getName(); |
|
236 | $pathToElementOrFieldset = $this->buildPathToElementOrFieldset($childTargetFieldsetName, $prefixPath); |
|
237 | ||
238 | if ($sourceFieldset->has($childTargetFieldsetName)) { |
|
239 | /** @var FieldsetInterface $childSourceFieldset */ |
|
240 | $childSourceFieldset = $sourceFieldset->get($childTargetFieldsetName); |
|
241 | ||
242 | if ($this->isRunAddNewElementInDiff($childSourceFieldset, $childTargetElementOrFieldset)) { |
|
243 | /** @var FieldsetInterface $childTargetElementOrFieldset */ |
|
244 | $this->addNewElementInDiff($childSourceFieldset, $childTargetElementOrFieldset, $pathToElementOrFieldset); |
|
245 | } |
|
246 | ||
247 | } else { |
|
248 | $this->runInsertedElementStrategy($childTargetElementOrFieldset, $pathToElementOrFieldset); |
|
249 | } |
|
250 | } |
|
251 | } |
|
252 | ||
253 | /** |