FileDocCategorySizeDatePackage
MapElementNode.javaAPI DocGlassfish v2 API5214Fri May 04 22:31:48 BST 2007com.sun.enterprise.deployment.node.runtime.connector

MapElementNode

public class MapElementNode extends com.sun.enterprise.deployment.node.runtime.RuntimeDescriptorNode
This node handles the role-map runtime deployment descriptors
author
Jerome Dochez
version

Fields Summary
Constructors Summary
public MapElementNode()

        registerElementHandler(new XMLElement(RuntimeTagNames.PRINCIPAL), 
                               PrincipalNode.class); 
        registerElementHandler(new XMLElement(RuntimeTagNames.BACKEND_PRINCIPAL), 
                               PrincipalNode.class);			       
    
Methods Summary
public voidaddDescriptor(java.lang.Object newDescriptor)
Adds a new DOL descriptor instance to the descriptor instance associated with this XMLNode

param
descriptor the new descriptor

	MapElement descriptor = (MapElement) getDescriptor();
	if (descriptor==null) {
	    throw new RuntimeException("Cannot set info on null descriptor");
	}
	if (newDescriptor instanceof Principal) {
	    Principal principal = (Principal) newDescriptor;
	    if (principal.getValue(Principal.CREDENTIAL)==null) {
		descriptor.addPrincipal(principal);
	    } else {
		descriptor.setBackendPrincipal(true);
		descriptor.setAttributeValue(MapElement.BACKEND_PRINCIPAL, Principal.USER_NAME, principal.getValue(Principal.USER_NAME));
		descriptor.setAttributeValue(MapElement.BACKEND_PRINCIPAL, Principal.PASSWORD, principal.getValue(Principal.PASSWORD));
		descriptor.setAttributeValue(MapElement.BACKEND_PRINCIPAL, Principal.CREDENTIAL, principal.getValue(Principal.CREDENTIAL));
		
	    }
	}
    
public org.w3c.dom.NodewriteDescriptor(org.w3c.dom.Node parent, java.lang.String nodeName, com.sun.enterprise.deployment.runtime.connector.MapElement descriptor)
write the descriptor class to a DOM tree and return it

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

	Node mapElementNode = super.writeDescriptor(parent, nodeName, descriptor);
	PrincipalNode pn = new PrincipalNode();
	Principal[] principals = descriptor.getPrincipal();
	for (int i=0;i<principals.length;i++) {
	    pn.writeDescriptor(mapElementNode, RuntimeTagNames.PRINCIPAL, principals[i]);
	}
	// backend-principal
	if (descriptor.isBackendPrincipal()) {
	    Element backend = (Element) appendChild(mapElementNode, RuntimeTagNames.BACKEND_PRINCIPAL);
	    setAttribute(backend, RuntimeTagNames.USER_NAME, 
	    	(String) descriptor.getAttributeValue(MapElement.BACKEND_PRINCIPAL, Principal.USER_NAME));
	    setAttribute(backend, RuntimeTagNames.PASSWORD, 
	    	(String) descriptor.getAttributeValue(MapElement.BACKEND_PRINCIPAL, Principal.PASSWORD));
	    setAttribute(backend, RuntimeTagNames.CREDENTIAL, 
	    	(String) descriptor.getAttributeValue(MapElement.BACKEND_PRINCIPAL, Principal.CREDENTIAL));
	}
		
	return mapElementNode;