package org.jboss.resteasy.util;

import java.util.regex.Pattern;

import javax.ws.rs.core.UriInfo;

import org.jboss.resteasy.core.ResteasyContext;
import org.jboss.resteasy.specimpl.ResteasyUriInfo;

Utility to replace predefined expressions within a string with values from the HTTP request;

${basepath} - UriInfo.getBaseUri().getRawPath() ${absolutepath} - UriInfo.getAbsolutePath().getRawPath() ${absoluteuri} - UriInfo.getAbsolutePath().toString() ${baseuri} - UriInfo.getBaseUri().toString() ${contextpath} - HttpServletRequest.getContextPath()

Author:Bill Burke
Version:$Revision: 1 $
/** * Utility to replace predefined expressions within a string with values from the HTTP request; * <p> * ${basepath} - UriInfo.getBaseUri().getRawPath() * ${absolutepath} - UriInfo.getAbsolutePath().getRawPath() * ${absoluteuri} - UriInfo.getAbsolutePath().toString() * ${baseuri} - UriInfo.getBaseUri().toString() * ${contextpath} - HttpServletRequest.getContextPath() * * @author <a href="mailto:bill@burkecentral.com">Bill Burke</a> * @version $Revision: 1 $ */
public class StringContextReplacement { private static final Pattern basepath = Pattern.compile("\\$\\{basepath\\}"); private static final Pattern absolutepath = Pattern.compile("\\$\\{absolutepath\\}"); private static final Pattern absoluteUri = Pattern.compile("\\$\\{absoluteuri\\}"); private static final Pattern baseUri = Pattern.compile("\\$\\{baseuri\\}"); private static final Pattern contextPath = Pattern.compile("\\$\\{contextpath\\}");
Utility to replace predefined expressions within a string with values from the HTTP request;

${basepath} - UriInfo.getBaseUri().getRawPath() ${absolutepath} - UriInfo.getAbsolutePath().getRawPath() ${absoluteuri} - UriInfo.getAbsolutePath().toString() ${baseuri} - UriInfo.getBaseUri().toString() ${contextpath} - HttpServletRequest.getContextPath()

Params:
  • original – original string
Returns:string with replaced expression
/** * Utility to replace predefined expressions within a string with values from the HTTP request; * <p> * ${basepath} - UriInfo.getBaseUri().getRawPath() * ${absolutepath} - UriInfo.getAbsolutePath().getRawPath() * ${absoluteuri} - UriInfo.getAbsolutePath().toString() * ${baseuri} - UriInfo.getBaseUri().toString() * ${contextpath} - HttpServletRequest.getContextPath() * * @param original original string * @return string with replaced expression */
public static String replace(String original) { UriInfo uriInfo = ResteasyContext.getContextData(UriInfo.class); if (uriInfo != null) { String base = uriInfo.getBaseUri().getRawPath(); String abs = uriInfo.getAbsolutePath().getRawPath(); String absU = uriInfo.getAbsolutePath().toString(); String baseU = uriInfo.getBaseUri().toString(); original = basepath.matcher(original).replaceAll(base); original = absolutepath.matcher(original).replaceAll(abs); original = absoluteUri.matcher(original).replaceAll(absU); original = baseUri.matcher(original).replaceAll(baseU); if (uriInfo instanceof ResteasyUriInfo) { original = contextPath.matcher(original).replaceAll(((ResteasyUriInfo)uriInfo).getContextPath()); } } return original; } }