2 namespace TYPO3\CMS\Version\Dependency;
81 $this->eventCallbacks[$eventName] = $callback;
93 public function executeEventCallback($eventName, $caller, array $callerArguments = array())
95 if (isset($this->eventCallbacks[$eventName])) {
97 $callback = $this->eventCallbacks[$eventName];
98 return $callback->execute($callerArguments, $caller, $eventName);
123 public function addElement($table, $id, array $data = array())
125 $element = $this->
getFactory()->getElement($table, $id, $data, $this);
126 $elementName = $element->__toString();
127 $this->elements[$elementName] = $element;
136 public function getOuterMostParents()
138 if (!isset($this->outerMostParents)) {
139 $this->outerMostParents = array();
141 foreach ($this->elements as $element) {
156 if ($this->outerMostParentsRequireReferences ===
false || $element->hasReferences()) {
157 $outerMostParent = $element->getOuterMostParent();
158 if ($outerMostParent !==
false) {
159 $outerMostParentName = $outerMostParent->__toString();
160 if (!isset($this->outerMostParents[$outerMostParentName])) {
161 $this->outerMostParents[$outerMostParentName] = $outerMostParent;
176 $outerMostParentName = $outerMostParent->__toString();
177 if (!isset($this->outerMostParents[$outerMostParentName])) {
178 throw new \RuntimeException(
'Element "' . $outerMostParentName .
'" was not detected as outermost parent.', 1289318609);
180 $nestedStructure = array_merge(array($outerMostParentName => $outerMostParent), $outerMostParent->getNestedChildren());
181 return $nestedStructure;
201 if (!isset($this->factory)) {
202 $this->factory = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Version\Dependency\DependencyEntityFactory::class);