57 if (!isset($this->dependencyResolver)) {
58 $this->dependencyResolver = GeneralUtility::makeInstance(Dependency\DependencyResolver::class);
59 $this->dependencyResolver->setOuterMostParentsRequireReferences(
true);
60 $this->dependencyResolver->setWorkspace($this->
getWorkspace());
62 $this->dependencyResolver->setEventCallback(
67 $this->dependencyResolver->setEventCallback(
72 $this->dependencyResolver->setEventCallback(
90 return GeneralUtility::makeInstance(
91 Dependency\EventCallback::class,
105 if (!isset($this->elementEntityProcessor)) {
106 $this->elementEntityProcessor = GeneralUtility::makeInstance(Dependency\ElementEntityProcessor::class);
107 $this->elementEntityProcessor->setWorkspace($this->
getWorkspace());
119 return (
int)
$GLOBALS[
'BE_USER']->workspace;
132 $this->nestedDataArray = [];
136 if (empty($outerMostParents)) {
141 foreach ($outerMostParents as $outerMostParent) {
148 $processedDataArray = $this->
finalize($this->dataArray);
150 unset($this->dataArray);
151 unset($this->nestedDataArray);
153 return $processedDataArray;
165 $processedDataArray = [];
167 $dataElementIdentifier = $dataElement[
'id'];
168 $processedDataArray[] = $dataElement;
170 if (!empty($this->nestedDataArray[$dataElementIdentifier])) {
171 $processedDataArray = array_merge(
173 $this->
finalize($this->nestedDataArray[$dataElementIdentifier])
175 unset($this->nestedDataArray[$dataElementIdentifier]);
179 return $processedDataArray;
192 $parentIdentifier = $parent->__toString();
193 $parentIsSet = isset($this->dataArray[$parentIdentifier]);
200 $nextParentIdentifier = $parentIdentifier;
204 foreach ($parent->getChildren() as $child) {
206 $child->getElement(),
208 $nextParentIdentifier,
212 $childIdentifier = $child->getElement()->__toString();
213 if (!empty($nextParentIdentifier) && isset($this->dataArray[$childIdentifier])) {
217 $this->nestedDataArray[$nextParentIdentifier][] = $this->dataArray[$childIdentifier];
218 unset($this->dataArray[$childIdentifier]);