/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core; import javax.servlet.http.HttpServletRequest; import com.google.common.base.Preconditions; import com.enonic.cms.core.portal.rendering.tracing.RenderTrace; import com.enonic.cms.core.structure.SiteKey; /** * Sep 3, 2010 */ public class SiteBasePathResolver { public static SiteBasePath resolveSiteBasePath( HttpServletRequest httpRequest, SiteKey sitekey ) { Preconditions.checkNotNull( httpRequest ); Preconditions.checkNotNull( sitekey ); SiteBasePath siteBasePath; if ( isInDebugMode() ) { Path adminPath = new Path( DeploymentPathResolver.getAdminDeploymentPath( httpRequest ) ); siteBasePath = new AdminSiteDebugBasePath( adminPath, sitekey ); } else if ( isInPreviewMode( httpRequest ) ) { Path adminPath = new Path( DeploymentPathResolver.getAdminDeploymentPath( httpRequest ) ); siteBasePath = new AdminSitePreviewBasePath( adminPath, sitekey ); } else { Path sitePrefixPath = new Path( DeploymentPathResolver.getSiteDeploymentPath( httpRequest ) ); siteBasePath = new PortalSiteBasePath( sitePrefixPath, sitekey ); } return siteBasePath; } private static boolean isInDebugMode() { return RenderTrace.isExecutingInDebugMode(); } private static boolean isInPreviewMode( HttpServletRequest httpRequest ) { String previewEnabled = (String) httpRequest.getAttribute( Attribute.PREVIEW_ENABLED ); return "true".equals( previewEnabled ); } }