78 $this->eventCallbacks[$eventName] = $callback;
90 public function executeEventCallback($eventName, $caller, array $callerArguments = array()) {
91 if (isset($this->eventCallbacks[$eventName])) {
93 $callback = $this->eventCallbacks[$eventName];
94 return $callback->execute($callerArguments, $caller, $eventName);
118 public function addElement($table, $id, array $data = array()) {
119 $element = $this->
getFactory()->getElement($table, $id, $data, $this);
120 $elementName = $element->__toString();
121 $this->elements[$elementName] = $element;
130 public function getOuterMostParents() {
131 if (!isset($this->outerMostParents)) {
132 $this->outerMostParents = array();
134 foreach ($this->elements as $element) {
148 if ($this->outerMostParentsRequireReferences === FALSE || $element->hasReferences()) {
149 $outerMostParent = $element->getOuterMostParent();
150 if ($outerMostParent !== FALSE) {
151 $outerMostParentName = $outerMostParent->__toString();
152 if (!isset($this->outerMostParents[$outerMostParentName])) {
153 $this->outerMostParents[$outerMostParentName] = $outerMostParent;
167 $outerMostParentName = $outerMostParent->__toString();
168 if (!isset($this->outerMostParents[$outerMostParentName])) {
169 throw new \RuntimeException(
'Element "' . $outerMostParentName .
'" was not detected as outermost parent.', 1289318609);
171 $nestedStructure = array_merge(array($outerMostParentName => $outerMostParent), $outerMostParent->getNestedChildren());
172 return $nestedStructure;
190 if (!isset($this->factory)) {
processOuterMostParent(\TYPO3\CMS\Version\Dependency\ElementEntity $element)
setEventCallback($eventName, \TYPO3\CMS\Version\Dependency\EventCallback $callback)
setOuterMostParentsRequireReferences($outerMostParentsRequireReferences)
static makeInstance($className)
addElement($table, $id, array $data=array())
getNestedElements(\TYPO3\CMS\Version\Dependency\ElementEntity $outerMostParent)
$outerMostParentsRequireReferences