WebResourceCollectionNodepublic class WebResourceCollectionNode extends com.sun.enterprise.deployment.node.DeploymentDescriptorNode This nodes handles the web-collection xml tag element |
Fields Summary |
---|
private com.sun.enterprise.deployment.WebResourceCollectionImpl | descriptor | private static com.sun.enterprise.util.LocalStringManagerImpl | localStrings |
Methods Summary |
---|
public java.lang.Object | getDescriptor()
if (descriptor==null) {
descriptor = (WebResourceCollectionImpl) DescriptorFactory.getDescriptor(getXMLPath());
}
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.WEB_RESOURCE_NAME, "setName");
table.put(WebTagNames.HTTP_METHOD, "addHttpMethod");
return table;
| protected com.sun.enterprise.deployment.node.XMLElement | getXMLRootTag()
return new XMLElement(WebTagNames.WEB_RESOURCE_COLLECTION);
| 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.URL_PATTERN.equals(element.getQName())) {
// If URL Pattern does not start with "/" then
// prepend it (for Servlet2.2 Web apps)
Object parent = getParentNode().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 super.setElementValue(element, value);
| public org.w3c.dom.Node | writeDescriptor(org.w3c.dom.Node parent, java.lang.String nodeName, com.sun.enterprise.deployment.WebResourceCollectionImpl descriptor)write the descriptor class to a DOM tree and return it
Node myNode = appendChild(parent, nodeName);
appendTextChild(myNode, WebTagNames.WEB_RESOURCE_NAME, descriptor.getName());
writeLocalizedDescriptions(myNode, descriptor);
// url-pattern*
for (Enumeration urlPatterns = descriptor.getUrlPatterns();urlPatterns.hasMoreElements();) {
appendTextChild(myNode, WebTagNames.URL_PATTERN, (String) urlPatterns.nextElement());
}
// http-method*
for (Enumeration httpMethods = descriptor.getHttpMethods();httpMethods.hasMoreElements();) {
appendTextChild(myNode, WebTagNames.HTTP_METHOD, (String) httpMethods.nextElement());
}
return myNode;
|
|