/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.structure; import com.enonic.cms.core.Path; import com.enonic.cms.core.RequestParameters; import com.enonic.cms.core.RequestParametersToStringBuilder; public class SitePathToStringBuilder { private boolean htmlEscapeParameterAmps = false; public String toString( SitePath sitePath ) { StringBuffer s = new StringBuffer(); s.append( "/" ); s.append( sitePath.getSiteKey() ); Path lp = sitePath.getLocalPath(); if ( lp.isRelative() ) { s.append( "/" ); } Path localPath = sitePath.getLocalPath(); s.append( localPath.getPathWithoutFragmentAsString() ); if ( sitePath.hasParams() ) { s.append( "?" ).append( paramsToString( sitePath.getRequestParameters() ) ); } if ( localPath.hasFragment() ) { s.append( "#" ).append( localPath.getFragment() ); } return s.toString(); } private String paramsToString( RequestParameters params ) { RequestParametersToStringBuilder rptoStringBuilder = new RequestParametersToStringBuilder(); rptoStringBuilder.setHtmlEscapeParameterAmps( htmlEscapeParameterAmps ); return rptoStringBuilder.toString( params ); } public void setHtmlEscapeParameterAmps( boolean htmlEscapeParameterAmps ) { this.htmlEscapeParameterAmps = htmlEscapeParameterAmps; } }