public function configurationObjectAfter(GetConfigurationObjectDTO $serviceDataTransferObject)
    {
        // Will save the registered domain object properties paths.
        $this->delay(
            self::PRIORITY_SAVE_DOMAIN_OBJECTS_PATHS,
            function (GetConfigurationObjectDTO $serviceDataTransferObject) {
                if (false === empty($this->domainObjectsPaths)) {
                    $serviceDataTransferObject->getResult()
                        ->setInternalVar('domainObjectsPaths', $this->domainObjectsPaths);
                }
            }
        );

        // Will fetch real object instances of the registered domain object properties.
        $this->delay(
            self::PRIORITY_FETCH_DOMAIN_OBJECTS,
            function (GetConfigurationObjectDTO $serviceDataTransferObject) {
                $domainObjectPaths = $serviceDataTransferObject->getResult()->getInternalVar('domainObjectsPaths');

                if (false === empty($domainObjectPaths)) {
                    foreach ($domainObjectPaths as $path => $type) {
                        $this->fetchDomainObjectsInternal(
                            $serviceDataTransferObject->getResult()->getObject(true),
                            explode('.', $path),
                            $type
                        );
                    }
                }
            }
        );
    }