35 if ($parentEntity ==
null) {
38 $entityObject->getParentName() .
39 " not defined for Entity " .
40 $entityObject->getName() .
47 if ($parentEntity->getParentName() !==
null) {
49 "Cannot extend an entity that already extends another entity. Entity: " .
50 $parentEntity->getName() .
57 print(
"Extending Data: " . $parentEntity->getName() .
" => " . $entityObject->getName() . PHP_EOL);
61 $newType = $entityObject->getType() ?? $parentEntity->getType();
64 $referencedData = $parentEntity->getAllData();
65 $newData = array_merge($referencedData, $entityObject->getAllData());
68 $referencedLinks = $parentEntity->getLinkedEntities();
69 $newLinkedReferences = array_merge($referencedLinks, $entityObject->getLinkedEntities());
72 $referencedUniqueData = $parentEntity->getUniquenessData();
73 $newUniqueReferences = array_merge($referencedUniqueData, $entityObject->getUniquenessData());
76 $referencedVars = $parentEntity->getVarReferences();
77 $newVarReferences = array_merge($referencedVars, $entityObject->getVarReferences());
80 $unmatchedUniqueReferences = array_diff_key($referencedUniqueData, $entityObject->getUniquenessData());
81 foreach ($unmatchedUniqueReferences as $uniqueKey => $uniqueData) {
82 if (array_key_exists($uniqueKey, $entityObject->getAllData())) {
83 unset($newUniqueReferences[$uniqueKey]);
89 $entityObject->getName(),
95 $entityObject->getParentName()
97 return $extendedEntity;
extendEntity($entityObject)