Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2004-2005 Graeme Rocher
   *
   * 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.codehaus.groovy.grails.web.mapping;
 
 
 import java.util.Map;
 
 import  javax.servlet.ServletContext;
 import  javax.servlet.http.HttpServletRequest;
 
Holds information established from a matched URL.

Author(s):
Graeme Rocher
Since:
0.5
 
 public class DefaultUrlMappingInfo extends AbstractUrlMappingInfo {
 
     private Object controllerName;
     private Object actionName;
     private Object pluginName;
     private Object namespace;
     private Object redirectInfo;
     private Object id;
     private static final String ID_PARAM = "id";
     private UrlMappingData urlData;
     private Object viewName;
     private ServletContext servletContext;
     private static final String SETTING_GRAILS_WEB_DISABLE_MULTIPART = "grails.web.disable.multipart";
     private boolean parsingRequest;
     private Object uri;
     private UrlConverter urlConverter;
     private String httpMethod;
     private String version;
 
     @SuppressWarnings("rawtypes")
     private DefaultUrlMappingInfo(Map paramsUrlMappingData urlData, ServletContext servletContext) {
         setParams(params);
          = getParams().get();
         this. = urlData;
         this. = servletContext;
         ApplicationContext applicationContext = null;
         if(servletContext != null) {
 
             applicationContext = WebUtils.findApplicationContext(servletContext);
         }
         if(applicationContext != null && applicationContext.containsBean(.)) {
              = applicationContext.getBean(.UrlConverter.class);
         }
         else {
              = new CamelCaseUrlConverter();
         }
     }
 
     @SuppressWarnings("rawtypes")
     public DefaultUrlMappingInfo(Object redirectInfoObject controllerNameObject actionNameObject namespaceObject pluginNameObject viewNameMap params,
             UrlMappingData urlData, ServletContext servletContext) {
         this(redirectInfocontrollerNameactionNamenamespacepluginNameviewNamenull,.paramsurlDataservletContext);
     }
 
     public DefaultUrlMappingInfo(Object redirectInfoObject controllerNameObject actionNameObject namespaceObject pluginNameObject viewName,
                                  String httpMethodString versionMap<?, ?> paramsUrlMappingData urlData, ServletContext servletContext) {
         this(paramsurlDataservletContext);
         Assert.isTrue(redirectInfo != null || controllerName != null || viewName != null"URL mapping must either provide redirect information, a controller or a view name to map to!");
         Assert.notNull(params"Argument [params] cannot be null");
         this. = controllerName;
         this. = actionName;
        this. = pluginName;
        this. = namespace;
        this. = httpMethod;
        this. = version;
        this. = redirectInfo;
        if (actionName == null) {
            this. = viewName;
        }
    }
    @Override
    public String getVersion() {
        return this.;
    }
    @SuppressWarnings("rawtypes")
    public DefaultUrlMappingInfo(Object viewNameMap paramsUrlMappingData urlData, ServletContext servletContext) {
        this(paramsurlDataservletContext);
        this. = viewName;
        Assert.notNull(viewName"Argument [viewName] cannot be null or blank");
    }
    public DefaultUrlMappingInfo(Object uriUrlMappingData data, ServletContext servletContext) {
        this(.dataservletContext);
        this. = uri;
        Assert.notNull(uri"Argument [uri] cannot be null or blank");
    }
    public DefaultUrlMappingInfo(Object uri,String httpMethodUrlMappingData data, ServletContext servletContext) {
        this(.dataservletContext);
        this. = uri;
        this. = httpMethod;
        Assert.notNull(uri"Argument [uri] cannot be null or blank");
    }
    @Override
    public String getHttpMethod() {
        return ;
    }
    @Override
    public String toString() {
        return .getUrlPattern();
    }
    @SuppressWarnings("rawtypes")
    public Map getParameters() {
        return getParams();
    }
    public boolean isParsingRequest() {
        return ;
    }
    public void setParsingRequest(boolean parsingRequest) {
        this. = parsingRequest;
    }
    public String getPluginName() {
        return  == null ? null : .toString();
    }
    public String getNamespace() {
        String name = evaluateNameForValue();
        return .toUrlElement(name);
    }
    public String getControllerName() {
        String name = evaluateNameForValue();
        if (name == null && getViewName() == null) {
            throw new UrlMappingException("Unable to establish controller name to dispatch for [" +
                     + "]. Dynamic closure invocation returned null. Check your mapping file is correct, when assigning the controller name as a request parameter it cannot be an optional token!");
        }
        return .toUrlElement(name);
    }
    public String getActionName() {
        GrailsWebRequest webRequest = (GrailsWebRequest) RequestContextHolder.getRequestAttributes();
        String name = webRequest == null ? null : checkDispatchAction(webRequest.getCurrentRequest());
        if (name == null) {
            name = evaluateNameForValue(webRequest);
        }
        return .toUrlElement(name);
    }
    public String getViewName() {
        return evaluateNameForValue();
    }
    public String getId() {
        return evaluateNameForValue();
    }
    private String checkDispatchAction(HttpServletRequest request) {
        if (request.getAttribute(.) != nullreturn null;
        String dispatchActionName = null;
        Enumeration<StringparamNames = tryMultipartParams(requestrequest.getParameterNames());
        while (paramNames.hasMoreElements()) {
            String name = paramNames.nextElement();
            if (name.startsWith(.)) {
                // remove .x suffix in case of submit image
                if (name.endsWith(".x") || name.endsWith(".y")) {
                    name = name.substring(0, name.length() - 2);
                }
                dispatchActionName = GrailsNameUtils.getPropertyNameRepresentation(name.substring((.).length()));
                break;
            }
        }
        return dispatchActionName;
    }
    private Enumeration<StringtryMultipartParams(HttpServletRequest requestEnumeration<StringoriginalParams) {
        Enumeration<StringparamNames = originalParams;
        boolean disabled = getMultipartDisabled();
        if (!disabled) {
            MultipartResolver resolver = getResolver();
            if (resolver.isMultipart(request)) {
                MultipartHttpServletRequest resolvedMultipartRequest = getResolvedRequest(requestresolver);
                paramNames = resolvedMultipartRequest.getParameterNames();
            }
        }
        return paramNames;
    }
    private MultipartHttpServletRequest getResolvedRequest(HttpServletRequest requestMultipartResolver resolver) {
        MultipartHttpServletRequest resolvedMultipartRequest = (MultipartHttpServletRequestrequest.getAttribute(MultipartHttpServletRequest.class.getName());
        if (resolvedMultipartRequest == null) {
            resolvedMultipartRequest = resolver.resolveMultipart(request);
            request.setAttribute(MultipartHttpServletRequest.class.getName(), resolvedMultipartRequest);
        }
        return resolvedMultipartRequest;
    }
    private boolean getMultipartDisabled() {
        GrailsApplication app = WebUtils.lookupApplication();
        Object disableMultipart = app.getFlatConfig().get();
        boolean disabled = false;
        if (disableMultipart instanceof Boolean) {
            disabled = (Boolean)disableMultipart;
        }
        else if (disableMultipart instanceof String) {
            disabled = Boolean.valueOf((String)disableMultipart);
        }
        return disabled;
    }
    private MultipartResolver getResolver() {
        WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext();
    }
    public String getURI() {
        return evaluateNameForValue();
    }
    @Override
    public Object getRedirectInfo() {
        return ;
    }
New to GrepCode? Check out our FAQ X