/** * Copyright 2005-2016 hdiv.org * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.hdiv.urlProcessor; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.hdiv.context.RequestContextHolder; import org.hdiv.state.IState; import org.hdiv.util.HDIVUtil; /** * UrlProcessor implementation for {@link IState} restore and URL validation purpose method. * * @since 2.1.7 */ public class BasicUrlProcessor extends AbstractUrlProcessor { @Deprecated public final BasicUrlData createBasicUrlData(final String url, final HttpServletRequest request) { return createBasicUrlData(url, HDIVUtil.getRequestContext(request)); } /** * Create {@link UrlData} instance only with the ContextPath relative url and parameters in a Map. * * @param url original url, must be context relative * @param request {@link HttpServletRequest} object * @return new instance of {@link BasicUrlData} */ public BasicUrlData createBasicUrlData(String url, final RequestContextHolder request) { BasicUrlData urlData = new BasicUrlData(); // Remove parameters int paramInit = url.indexOf('?'); if (paramInit > -1) { String urlParams = url.substring(paramInit + 1); Map<String, String[]> ulrParamsMap = getUrlParamsAsMap(request.getHdivParameterName(), new StringBuilder(128), urlParams); urlData.setUrlParams(ulrParamsMap); url = url.substring(0, paramInit); } urlData.setContextPathRelativeUrl(url); return urlData; } @Deprecated public final BasicUrlData processUrl(final HttpServletRequest request, final String url) { return createBasicUrlData(url, request); } /** * Creates {@link BasicUrlData} instance with contextPath relative URL and parameters processed. * * @param request {@link HttpServletRequest} object * @param url URL to process * @return {@link BasicUrlData} instance */ public BasicUrlData processUrl(final RequestContextHolder request, final String url) { return createBasicUrlData(url, request); } }