Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 1997-2012 Oracle and/or its affiliates. All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common Development
   * and Distribution License("CDDL") (collectively, the "License").  You
   * may not use this file except in compliance with the License.  You can
  * obtain a copy of the License at
  * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
  * or packager/legal/LICENSE.txt.  See the License for the specific
  * language governing permissions and limitations under the License.
  *
  * When distributing the software, include this License Header Notice in each
  * file and include the License file at packager/legal/LICENSE.txt.
  *
  * GPL Classpath Exception:
  * Oracle designates this particular file as subject to the "Classpath"
  * exception as provided by Oracle in the GPL Version 2 section of the License
  * file that accompanied this code.
  *
  * Modifications:
  * If applicable, add the following below the License Header, with the fields
  * enclosed by brackets [] replaced by your own identifying information:
  * "Portions Copyright [year] [name of copyright owner]"
  *
  * Contributor(s):
  * If you wish your version of this file to be governed by only the CDDL or
  * only the GPL Version 2, indicate your decision by adding "[Contributor]
  * elects to include this software in this distribution under the [CDDL or GPL
  * Version 2] license."  If you don't indicate a single choice of license, a
  * recipient has the option to distribute your version of this file under
  * either the CDDL, the GPL Version 2 or to extend the choice of license to
  * its licensees as provided above.  However, if you add GPL Version 2 code
  * and therefore, elected the GPL Version 2 license, then the option applies
  * only if the new code is made subject to such option by the copyright
  * holder.
  */
 
 /*
  * FilterMappingNode.java
  *
  * Created on February 26, 2002, 9:21 PM
  */
 
 package org.glassfish.web.deployment.node;
 
 
 import java.util.Map;
 
This node handles all information relative to servlet-mapping xml tag

Author(s):
Jerome Dochez
Version:
 
 
     private static LocalStringManagerImpl localStrings =
             new LocalStringManagerImpl(ServletMappingNode.class);
    
    

Returns:
the descriptor instance to associate with this XMLNode
 
     @Override
         
        if (==null) {
              = new ServletFilterMappingDescriptor();
         }
         return ;
     }    
    
    
all sub-implementation of this class can use a dispatch table to map xml element to method name on the descriptor class for setting the element value.

Returns:
the map with the element name as a key, the setter method as a value
 
     @Override
     protected Map<StringStringgetDispatchTable() {
         Map<StringStringtable = super.getDispatchTable();
         table.put(."setName");
         return table;
    }    
    
    
receives notiification of the value for a particular tag

Parameters:
element the xml element
value it's associated value
    @Override
    public void setElementValue(XMLElement elementString value) {
        if (..equals(element.getQName())) {
            .addServletName(value);
        } else if (..equals(element.getQName())) {
            if (!URLPattern.isValid(value)) {
                // try trimming url (in case DD uses extra
                // whitespace for aligning)
                String trimmedUrl = value.trim();
                // If URL Pattern does not start with "/" then
                // prepend it (for Servlet2.2 Web apps)
                Object parent = getParentNode().getDescriptor();
                if (parent instanceof WebBundleDescriptor &&
                        ((WebBundleDescriptorparent).getSpecVersion().equals("2.2")) {
                    if(!trimmedUrl.startsWith("/") &&
                            !trimmedUrl.startsWith("*.")) {
                        trimmedUrl = "/" + trimmedUrl;
                    }
                }
                if (URLPattern.isValid(trimmedUrl)) {
                    // warn user if url included \r or \n
                    if (URLPattern.containsCRorLF(value)) {
                        DOLUtils.getDefaultLogger().log(.,
                                "enterprise.deployment.backend.urlcontainscrlf",
                                new Object[] { value });
                    }
                    value = trimmedUrl;
                } else {
                    throw new IllegalArgumentException(
                            .getLocalString(
                                    "enterprise.deployment.invalidurlpattern",
                                    "Invalid URL Pattern: [{0}]",
                                    new Object[] { value }));
                }
            }
            .addURLPattern(value);
        } else if (..equals(element.getQName())) {
            .addDispatcher(value);
        } else super.setElementValue(elementvalue);
    }   
    
    
write the descriptor class to a DOM tree and return it

Parameters:
parent node in the DOM tree
nodeName node name for the root element of this xml fragment
descriptor the descriptor to write
Returns:
the DOM tree top node
    @Override
    public Node writeDescriptor(Node parentString nodeNameServletFilterMappingDescriptor descriptor) {
        Node myNode = appendChild(parentnodeName);
        appendTextChild(myNode.descriptor.getName());                        
        for (String servletName : descriptor.getServletNames()) {
            appendTextChild(myNode.servletName);
        }
        for (String urlPattern : descriptor.getUrlPatterns()) {
            appendTextChild(myNode.urlPattern);
        }
        for (DispatcherType dispatcherType : descriptor.getDispatchers()) {
            appendTextChild(myNode.dispatcherType.name());
        }
        return myNode;
    }
New to GrepCode? Check out our FAQ X