/**
  *
  */
 public function finalize()
 {
     if (!defined('GANTRY_FINALIZED')) {
         // Run the admin init
         if ($this->isAdmin()) {
             $this->adminFinalize();
             return;
         }
         $this->addStyle($this->templateName . '-custom.css', 1000);
         gantry_import('core.params.overrides.gantrycookieparamoverride');
         gantry_import('core.params.overrides.gantrysessionparamoverride');
         $cache = GantryCache::getInstance();
         if (!$this->_parts_cached) {
             $parts_cache = array();
             foreach ($this->_parts_to_cache as $part) {
                 $parts_cache[$part] = $this->{$part};
             }
             if ($parts_cache) {
                 $cache->set($this->cacheKey('parts'), $parts_cache);
             }
         }
         // Finalize all features
         foreach ($this->getFeatures() as $feature) {
             $feature_instance = $this->getFeature($feature);
             if ($feature_instance->isEnabled() && method_exists($feature_instance, 'finalize')) {
                 $feature_instance->finalize();
             }
         }
         $this->renderCombinesInlines();
         if (isset($_REQUEST['reset-settings'])) {
             GantrySessionParamOverride::clean();
             GantryCookieParamOverride::clean();
         } else {
             GantrySessionParamOverride::store();
             GantryCookieParamOverride::store();
         }
         if ($this->get("gzipper-enabled", false)) {
             gantry_import('core.gantrygzipper');
             GantryGZipper::processCSSFiles();
             GantryGZipper::processJsFiles();
         } else {
             ksort($this->_styles);
             foreach ($this->_styles as $priorities) {
                 foreach ($priorities as $css_file) {
                     /** @var $css_file GantryStyleLink */
                     $this->document->addStyleSheet($css_file->getUrl());
                 }
             }
             foreach ($this->_scripts as $js_file) {
                 $this->document->addScript($js_file);
             }
         }
         define('GANTRY_FINALIZED', true);
     }
     if ($this->altindex !== false) {
         $contents = ob_get_contents();
         ob_end_clean();
         ob_start();
         echo $this->altindex;
     }
 }