package bvira.web; import bvira.framework.ContextPath; import bvira.framework.ContextRoot; import bvira.framework.ParameterName; import bvira.framework.Parameters; import bvira.framework.RequestContext; import bvira.framework.RequestUri; import javax.servlet.http.HttpServletRequest; public class WebRequestContext implements RequestContext { private final ContextRoot contextRoot; private final ContextPath contextPath; private final RequestUri requestUri; private final Parameters parameters; private WebRequestContext(ContextPath contextPath, ContextRoot contextRoot, RequestUri requestUri, Parameters parameters) { this.contextPath = contextPath; this.contextRoot = contextRoot; this.requestUri = requestUri; this.parameters = parameters; } public static RequestContext create(HttpServletRequest request, RequestUri requestUri) { ContextRoot contextRoot = new ContextRoot(request.getServerName(), request.getServerPort()); ContextPath contextPath = new ContextPath(request.getContextPath()); Parameters parameters = new Parameters(request.getParameterMap()); return new WebRequestContext(contextPath, contextRoot, requestUri, parameters); } public ContextPath getContextPath() { return contextPath; } public ContextRoot getContextRoot() { return contextRoot; } public RequestUri getRequestUri() { return requestUri; } public Parameters getParameters() { return parameters; } public String getParameter(ParameterName field) { return parameters.get(field.getName()); } }