|
@@ 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 |
|
/** |