public function warm(View $viewToWarm, View $contextualView = null)
    {
        $widgetMaps = [];

        if (null === $contextualView) {
            $contextualView = $viewToWarm;
        }

        foreach ($viewToWarm->getWidgetMaps() as $_widgetMap) {
            $_widgetMap->setContextualView($contextualView);
            $widgetMaps[] = $_widgetMap;
        }

        if ($template = $viewToWarm->getTemplate()) {
            $templateWidgetMaps = $this->warm($template, $contextualView);
            $widgetMaps = array_merge($widgetMaps, $templateWidgetMaps);
        }

        return $widgetMaps;
    }