FilterMappingNodepublic class FilterMappingNode extends com.sun.enterprise.deployment.node.DeploymentDescriptorNode This node handles all information relative to servlet-mapping xml tag |
Fields Summary |
---|
private com.sun.enterprise.deployment.ServletFilterMappingDescriptor | descriptor | private static com.sun.enterprise.util.LocalStringManagerImpl | localStrings |
Methods Summary |
---|
public java.lang.Object | getDescriptor()
if (descriptor==null) {
descriptor = (ServletFilterMappingDescriptor) super.getDescriptor();
}
return descriptor;
| protected java.util.Map | getDispatchTable()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.
Map table = super.getDispatchTable();
table.put(WebTagNames.FILTER_NAME, "setName");
return table;
| public void | setElementValue(com.sun.enterprise.deployment.node.XMLElement element, java.lang.String value)receives notiification of the value for a particular tag
if (WebTagNames.SERVLET_NAME.equals(element.getQName())) {
descriptor.addServletName(value);
} else if (WebTagNames.URL_PATTERN.equals(element.getQName())) {
// If URL Pattern does not start with "/" then
// prepend it (for Servlet2.2 Web apps)
Object parent = getParentNode().getDescriptor();
if (parent instanceof WebBundleDescriptor &&
((WebBundleDescriptor) parent).getSpecVersion().equals("2.2"))
{
if(!value.startsWith("/") && !value.startsWith("*.")) {
value = "/" + value;
}
}
if (!URLPattern.isValid(value)) {
throw new IllegalArgumentException(localStrings.getLocalString(
"enterprise.deployment.invalidurlpattern",
"Invalid URL Pattern: [{0}]",
new Object[] {value}));
}
descriptor.addURLPattern(value);
} else if (WebTagNames.DISPATCHER.equals(element.getQName())) {
descriptor.addDispatcher(value);
} else super.setElementValue(element, value);
| public org.w3c.dom.Node | writeDescriptor(org.w3c.dom.Node parent, java.lang.String nodeName, com.sun.enterprise.deployment.ServletFilterMappingDescriptor descriptor)write the descriptor class to a DOM tree and return it
Node myNode = appendChild(parent, nodeName);
appendTextChild(myNode, WebTagNames.FILTER_NAME, descriptor.getName());
for (String servletName : descriptor.getServletNames()) {
appendTextChild(myNode, WebTagNames.SERVLET_NAME, servletName);
}
for (String urlPattern : descriptor.getURLPatterns()) {
appendTextChild(myNode, WebTagNames.URL_PATTERN, urlPattern);
}
Set dispatchers = descriptor.getDispatchers();
for (Iterator i = dispatchers.iterator(); i.hasNext();) {
String dispatcher = (String) i.next();
appendTextChild(myNode, WebTagNames.DISPATCHER, dispatcher);
}
return myNode;
|
|