protected function handleNoneSimpleTypes($data, Model $model)
    {
        // Check the nesting level.
        if ($this->pool->emergencyHandler->checkNesting() === true) {
            $text = $this->pool->messages->getHelp('maximumLevelReached2');
            if (is_array($data) === true) {
                $type = static::TYPE_ARRAY;
            } else {
                $type = static::TYPE_OBJECT;
            }
            $model->setData($text)
                ->setNormal($this->pool->messages->getHelp('maximumLevelReached1'))
                ->setType($type)
                ->setHasExtra(true);
            // Render it directly.
            return $this->pool->render->renderSingleChild($model);
        }

        if ($this->pool->recursionHandler->isInHive($data) === true) {
            // Render recursion.
            if (is_object($data) === true) {
                $normal = '\\' . get_class($data);
                $domId = $this->generateDomIdFromObject($data);
            } else {
                // Must be the globals array.
                $normal = '$GLOBALS';
                $domId = '';
            }

            return $this->pool->render->renderRecursion(
                $model->setDomid($domId)->setNormal($normal)
            );
        }

        // Looks like we are good.
        return $this->preprocessNoneSimpleTypes($data, $model);
    }