FileDocCategorySizeDatePackage
CacheNode.javaAPI DocGlassfish v2 API5981Fri May 04 22:31:48 BST 2007com.sun.enterprise.deployment.node.runtime.web

CacheNode

public class CacheNode extends WebRuntimeNode
node for cache tag
author
Jerome Dochez

Fields Summary
Constructors Summary
public CacheNode()

	
	registerElementHandler(new XMLElement(RuntimeTagNames.CACHE_HELPER), 
				CacheHelperNode.class, "addNewCacheHelper"); 	
	registerElementHandler(new XMLElement(RuntimeTagNames.DEFAULT_HELPER), 
				WebPropertyNode.class, "setDefaultHelper");
	registerElementHandler(new XMLElement(RuntimeTagNames.PROPERTY), 
				WebPropertyNode.class, "addWebProperty"); 	
	registerElementHandler(new XMLElement(RuntimeTagNames.CACHE_MAPPING), 
				CacheMappingNode.class, "addNewCacheMapping"); 							
    
Methods Summary
protected booleansetAttributeValue(com.sun.enterprise.deployment.node.XMLElement elementName, com.sun.enterprise.deployment.node.XMLElement attributeName, java.lang.String value)
parsed an attribute of an element

param
the element name
param
the attribute name
param
the attribute value
return
true if the attribute was processed

	RuntimeDescriptor descriptor = (RuntimeDescriptor) getRuntimeDescriptor();
	if (descriptor==null) {
	    throw new RuntimeException("Trying to set values on a null descriptor");
	} 	
	if (attributeName.getQName().equals(RuntimeTagNames.MAX_ENTRIES)) {
	    descriptor.setAttributeValue(Cache.MAX_ENTRIES, value);
	    return true;    
	} else
	if (attributeName.getQName().equals(RuntimeTagNames.TIMEOUT_IN_SECONDS)) {
	    descriptor.setAttributeValue(Cache.TIMEOUT_IN_SECONDS, value);
	    return true;    
	} else
	if (attributeName.getQName().equals(RuntimeTagNames.ENABLED)) {
	    descriptor.setAttributeValue(Cache.ENABLED, value);
	    return true;    
	} else
	return false;
    
public org.w3c.dom.NodewriteDescriptor(org.w3c.dom.Node parent, java.lang.String nodeName, com.sun.enterprise.deployment.runtime.web.Cache descriptor)
write the descriptor class to a DOM tree and return it

param
parent node for the DOM tree
param
node name
param
the descriptor to write
return
the DOM tree top node

       

	Element cache = (Element) super.writeDescriptor(parent, nodeName, descriptor);
	
	// cache-helpers*
	CacheHelper[] cacheHelpers = descriptor.getCacheHelper();
	if (cacheHelpers!=null && cacheHelpers.length>0) {
	    CacheHelperNode chn = new CacheHelperNode();
	    for (int i=0;i<cacheHelpers.length;i++) {
		chn.writeDescriptor(cache, RuntimeTagNames.CACHE_HELPER, cacheHelpers	[i]);
	    }
	}
	
	WebPropertyNode wpn = new WebPropertyNode();
	
	// default-helper?
	DefaultHelper dh = descriptor.getDefaultHelper();
	if (dh!=null && dh.getWebProperty()!=null) {
	    Node dhn = appendChild(cache, RuntimeTagNames.DEFAULT_HELPER);
	    wpn.writeDescriptor(dhn, RuntimeTagNames.PROPERTY, dh.getWebProperty());
	}
	
	// property*
	wpn.writeDescriptor(cache, RuntimeTagNames.PROPERTY, descriptor.getWebProperty());
	
	// cache-mapping
	CacheMapping[] mappings = descriptor.getCacheMapping();
	if (mappings!=null && mappings.length>0) {
	    CacheMappingNode cmn = new CacheMappingNode();
	    for (int i=0;i<mappings.length;i++) {
		cmn.writeDescriptor(cache, RuntimeTagNames.CACHE_MAPPING, mappings[i]);
	    }
	}
	
	// max-entries, timeout-in-seconds, enabled
	setAttribute(cache, RuntimeTagNames.MAX_ENTRIES, (String) descriptor.getAttributeValue(Cache.MAX_ENTRIES));
	setAttribute(cache, RuntimeTagNames.TIMEOUT_IN_SECONDS, (String) descriptor.getAttributeValue(Cache.TIMEOUT_IN_SECONDS));
	setAttribute(cache, RuntimeTagNames.ENABLED, (String) descriptor.getAttributeValue(Cache.ENABLED));
	
	return cache;