FileDocCategorySizeDatePackage
WebAppImpl.javaAPI DocExample36195Thu Mar 07 09:13:52 GMT 2002javajaxb.generated.web

WebAppImpl

public class WebAppImpl extends DefaultHandler implements LexicalHandler, Unmarshallable, WebApp
This class was generated from a set of XML constraints by the Enhydra Zeus XML Data Binding Framework. All source code in this file is constructed specifically to work with other Zeus-generated classes. If you modify this file by hand, you run the risk of breaking this interoperation, as well as introducing errors in source code compilation. * * * * MODIFY THIS FILE AT YOUR OWN RISK * * * * * To find out more about the Enhydra Zeus framework, you can point your browser at where you can download releases, join and discuss Zeus on user and developer mailing lists, and access source code. Please report any bugs through that website.

Fields Summary
private Icon
icon
private String
displayName
private boolean
zeus_DisplayNameSet
private String
description
private boolean
zeus_DescriptionSet
private Distributable
distributable
private List
contextParamList
private List
servletList
private List
servletMappingList
private SessionConfig
sessionConfig
private List
mimeMappingList
private WelcomeFileList
welcomeFileList
private List
errorPageList
private List
taglibList
private List
resourceRefList
private List
securityConstraintList
private LoginConfig
loginConfig
private List
securityRoleList
private List
envEntryList
private List
ejbRefList
private String
id
private boolean
zeus_IdSet
private String
docTypeString
Any DOCTYPE reference/statements.
private String
outputEncoding
The encoding for the output document
private Unmarshallable
zeus_currentUNode
The current node in unmarshalling
private Unmarshallable
zeus_parentUNode
The parent node in unmarshalling
private boolean
zeus_thisNodeHandled
Whether this node has been handled
private boolean
hasDTD
Whether a DTD exists for an unmarshal call
private boolean
validate
Whether validation is occurring
private Map
namespaceMappings
The namespace mappings on this element
private static EntityResolver
entityResolver
The EntityResolver for SAX parsing to use
private static ErrorHandler
errorHandler
The ErrorHandler for SAX parsing to use
private boolean
zeus_inDisplayName
Indicates if we are in the displayName element
private boolean
zeus_inDescription
Indicates if we are in the description element
Constructors Summary
public WebAppImpl()


      
        zeus_DisplayNameSet = false;
        zeus_DescriptionSet = false;
        contextParamList = new LinkedList();
        servletList = new LinkedList();
        servletMappingList = new LinkedList();
        mimeMappingList = new LinkedList();
        errorPageList = new LinkedList();
        taglibList = new LinkedList();
        resourceRefList = new LinkedList();
        securityConstraintList = new LinkedList();
        securityRoleList = new LinkedList();
        envEntryList = new LinkedList();
        ejbRefList = new LinkedList();
        zeus_IdSet = false;
        docTypeString = "";
        hasDTD = false;
        validate = false;
        namespaceMappings = new HashMap();
    
Methods Summary
public voidaddContextParam(ContextParam contextParam)

        contextParamList.add(contextParam);
    
public voidaddEjbRef(EjbRef ejbRef)

        ejbRefList.add(ejbRef);
    
public voidaddEnvEntry(EnvEntry envEntry)

        envEntryList.add(envEntry);
    
public voidaddErrorPage(ErrorPage errorPage)

        errorPageList.add(errorPage);
    
public voidaddMimeMapping(MimeMapping mimeMapping)

        mimeMappingList.add(mimeMapping);
    
public voidaddResourceRef(ResourceRef resourceRef)

        resourceRefList.add(resourceRef);
    
public voidaddSecurityConstraint(SecurityConstraint securityConstraint)

        securityConstraintList.add(securityConstraint);
    
public voidaddSecurityRole(SecurityRole securityRole)

        securityRoleList.add(securityRole);
    
public voidaddServlet(Servlet servlet)

        servletList.add(servlet);
    
public voidaddServletMapping(ServletMapping servletMapping)

        servletMappingList.add(servletMapping);
    
public voidaddTaglib(Taglib taglib)

        taglibList.add(taglib);
    
public voidcharacters(char[] ch, int start, int len)


        // Feed this to the correct ContentHandler
        Unmarshallable current = getCurrentUNode();
        if (current != this) {
            current.characters(ch, start, len);
            return;
        }

        String text = new String(ch, start, len);
        text = text.trim();
        if (zeus_inDisplayName) {
            if (this.displayName == null) {
                this.displayName = text;
            } else {
                this.displayName = new StringBuffer(this.displayName).append(text).toString();
            }
            return;
        }

        if (zeus_inDescription) {
            if (this.description == null) {
                this.description = text;
            } else {
                this.description = new StringBuffer(this.description).append(text).toString();
            }
            return;
        }

    
public voidcomment(char[] ch, int start, int len)

        // Currently no-op
    
public voidendCDATA()

        // Currently no-op
    
public voidendDTD()

        // Currently no-op
    
public voidendElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName)


        Unmarshallable current = getCurrentUNode();
        if (current != this) {
            current.endElement(namespaceURI, localName, qName);
            return;
        }

        if (localName.equals("display-name")) {
            this.zeus_inDisplayName = false;
            return;
        }

        if (localName.equals("description")) {
            this.zeus_inDescription = false;
            return;
        }

        Unmarshallable parent = getCurrentUNode().getParentUNode();
        if (parent != null) {
            parent.setCurrentUNode(parent);
        }
    
public voidendEntity(java.lang.String name)

        // Currently no-op
    
public voiderror(org.xml.sax.SAXParseException e)

        if ((validate) && (!hasDTD)) {
            throw new SAXException("Validation is turned on, but no DTD has been specified in the input XML document. Please supply a DTD through a DOCTYPE reference.");
        }
        if (errorHandler != null) {
            errorHandler.error(e);
        }
    
private java.lang.StringescapeAttributeValue(java.lang.String attributeValue)


        
        String returnValue = attributeValue;
        for (int i = 0; i < returnValue.length(); i++) {
            char ch = returnValue.charAt(i);
            if (ch == '"") {
                returnValue = new StringBuffer()
                    .append(returnValue.substring(0, i))
                    .append(""")
                    .append(returnValue.substring(i+1))
                    .toString();
            }
        }
        return returnValue;
    
private java.lang.StringescapeTextValue(java.lang.String textValue)

        String returnValue = textValue;
        for (int i = 0; i < returnValue.length(); i++) {
            char ch = returnValue.charAt(i);
            if (ch == '<") {
                returnValue = new StringBuffer()
                    .append(returnValue.substring(0, i))
                    .append("<")
                    .append(returnValue.substring(i+1))
                    .toString();
            } else if (ch == '>") {
                returnValue = new StringBuffer()
                    .append(returnValue.substring(0, i))
                    .append(">")
                    .append(returnValue.substring(i+1))
                    .toString();
            }
        }
        return returnValue;
    
public voidfatalError(org.xml.sax.SAXParseException e)

        if ((validate) && (!hasDTD)) {
            throw new SAXException("Validation is turned on, but no DTD has been specified in the input XML document. Please supply a DTD through a DOCTYPE reference.");
        }
        if (errorHandler != null) {
            errorHandler.fatalError(e);
        }
    
public java.util.ListgetContextParamList()

        return contextParamList;
    
public UnmarshallablegetCurrentUNode()

        return zeus_currentUNode;
    
public java.lang.StringgetDescription()

        return description;
    
public java.lang.StringgetDisplayName()

        return displayName;
    
public DistributablegetDistributable()

        return distributable;
    
public java.util.ListgetEjbRefList()

        return ejbRefList;
    
public java.util.ListgetEnvEntryList()

        return envEntryList;
    
public java.util.ListgetErrorPageList()

        return errorPageList;
    
public IcongetIcon()

        return icon;
    
public java.lang.StringgetId()

        return id;
    
public LoginConfiggetLoginConfig()

        return loginConfig;
    
public java.util.ListgetMimeMappingList()

        return mimeMappingList;
    
public UnmarshallablegetParentUNode()

        return zeus_parentUNode;
    
public java.util.ListgetResourceRefList()

        return resourceRefList;
    
public java.util.ListgetSecurityConstraintList()

        return securityConstraintList;
    
public java.util.ListgetSecurityRoleList()

        return securityRoleList;
    
public java.util.ListgetServletList()

        return servletList;
    
public java.util.ListgetServletMappingList()

        return servletMappingList;
    
public SessionConfiggetSessionConfig()

        return sessionConfig;
    
public java.util.ListgetTaglibList()

        return taglibList;
    
public WelcomeFileListgetWelcomeFileList()

        return welcomeFileList;
    
public voidmarshal(java.io.File file)

        // Delegate to the marshal(Writer) method
        marshal(new FileWriter(file));
    
public voidmarshal(java.io.OutputStream outputStream)

        // Delegate to the marshal(Writer) method
        marshal(new OutputStreamWriter(outputStream));
    
public voidmarshal(java.io.Writer writer)

        // Write out the XML declaration
        writer.write("<?xml version=\"1.0\" ");
        if (outputEncoding != null) {
            writer.write("encoding=\"");
            writer.write(outputEncoding);
            writer.write("\"?>\n\n");

        } else {
            writer.write("encoding=\"UTF-8\"?>\n\n");

        }
        // Handle DOCTYPE declaration
        writer.write(docTypeString);
        writer.write("\n");
        // Now start the recursive writing
        writeXMLRepresentation(writer, "");

        // Close up
        writer.flush();
        writer.close();
    
public voidremoveContextParam(ContextParam contextParam)

        contextParamList.remove(contextParam);
    
public voidremoveEjbRef(EjbRef ejbRef)

        ejbRefList.remove(ejbRef);
    
public voidremoveEnvEntry(EnvEntry envEntry)

        envEntryList.remove(envEntry);
    
public voidremoveErrorPage(ErrorPage errorPage)

        errorPageList.remove(errorPage);
    
public voidremoveMimeMapping(MimeMapping mimeMapping)

        mimeMappingList.remove(mimeMapping);
    
public voidremoveResourceRef(ResourceRef resourceRef)

        resourceRefList.remove(resourceRef);
    
public voidremoveSecurityConstraint(SecurityConstraint securityConstraint)

        securityConstraintList.remove(securityConstraint);
    
public voidremoveSecurityRole(SecurityRole securityRole)

        securityRoleList.remove(securityRole);
    
public voidremoveServlet(Servlet servlet)

        servletList.remove(servlet);
    
public voidremoveServletMapping(ServletMapping servletMapping)

        servletMappingList.remove(servletMapping);
    
public voidremoveTaglib(Taglib taglib)

        taglibList.remove(taglib);
    
public voidsetContextParamList(java.util.List contextParamList)

        this.contextParamList = contextParamList;
    
public voidsetCurrentUNode(Unmarshallable currentUNode)

        this.zeus_currentUNode = currentUNode;
    
public voidsetDescription(java.lang.String description)

        this.description = description;
        zeus_DescriptionSet = true;
    
public voidsetDisplayName(java.lang.String displayName)

        this.displayName = displayName;
        zeus_DisplayNameSet = true;
    
public voidsetDistributable(Distributable distributable)

        this.distributable = distributable;
    
public voidsetDocType(java.lang.String name, java.lang.String publicID, java.lang.String systemID)

        try {
            startDTD(name, publicID, systemID);
        } catch (SAXException neverHappens) { }
    
public voidsetDocumentLocator(org.xml.sax.Locator locator)

        // no-op
    
public voidsetEjbRefList(java.util.List ejbRefList)

        this.ejbRefList = ejbRefList;
    
public static voidsetEntityResolver(org.xml.sax.EntityResolver resolver)

This sets a SAX EntityResolver for this unmarshalling process.

param
resolver the entity resolver to use.

        entityResolver = resolver;
    
public voidsetEnvEntryList(java.util.List envEntryList)

        this.envEntryList = envEntryList;
    
public static voidsetErrorHandler(org.xml.sax.ErrorHandler handler)

This sets a SAX ErrorHandler for this unmarshalling process.

param
handler the entity resolver to use.

        errorHandler = handler;
    
public voidsetErrorPageList(java.util.List errorPageList)

        this.errorPageList = errorPageList;
    
public voidsetIcon(Icon icon)

        this.icon = icon;
    
public voidsetId(java.lang.String id)

        this.id = id;
        zeus_IdSet = true;
    
public voidsetLoginConfig(LoginConfig loginConfig)

        this.loginConfig = loginConfig;
    
public voidsetMimeMappingList(java.util.List mimeMappingList)

        this.mimeMappingList = mimeMappingList;
    
public voidsetOutputEncoding(java.lang.String outputEncoding)

        this.outputEncoding = outputEncoding;
    
public voidsetParentUNode(Unmarshallable parentUNode)

        this.zeus_parentUNode = parentUNode;
    
public voidsetResourceRefList(java.util.List resourceRefList)

        this.resourceRefList = resourceRefList;
    
public voidsetSecurityConstraintList(java.util.List securityConstraintList)

        this.securityConstraintList = securityConstraintList;
    
public voidsetSecurityRoleList(java.util.List securityRoleList)

        this.securityRoleList = securityRoleList;
    
public voidsetServletList(java.util.List servletList)

        this.servletList = servletList;
    
public voidsetServletMappingList(java.util.List servletMappingList)

        this.servletMappingList = servletMappingList;
    
public voidsetSessionConfig(SessionConfig sessionConfig)

        this.sessionConfig = sessionConfig;
    
public voidsetTaglibList(java.util.List taglibList)

        this.taglibList = taglibList;
    
public voidsetValidating(boolean validate)

        this.validate = validate;
    
public voidsetWelcomeFileList(WelcomeFileList welcomeFileList)

        this.welcomeFileList = welcomeFileList;
    
public voidstartCDATA()

        // Currently no-op
    
public voidstartDTD(java.lang.String name, java.lang.String publicID, java.lang.String systemID)


        if ((name == null) || (name.equals(""))) {
            docTypeString = "";
            return;
        }

        hasDTD = true;
        StringBuffer docTypeSB = new StringBuffer();
        boolean hasPublic = false;

        docTypeSB.append("<!DOCTYPE ")
                 .append(name);

        if ((publicID != null) && (!publicID.equals(""))) {
            docTypeSB.append(" PUBLIC \"")
                     .append(publicID)
                     .append("\"");
            hasPublic = true;
        }

        if ((systemID != null) && (!systemID.equals(""))) {
            if (!hasPublic) {
                docTypeSB.append(" SYSTEM");
            }
            docTypeSB.append(" \"")
                     .append(systemID)
                     .append("\"");

        }

        docTypeSB.append(">");

        docTypeString = docTypeSB.toString();
    
public voidstartDocument()

        // no-op
    
public voidstartElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)


        // Feed this to the correct ContentHandler
        Unmarshallable current = getCurrentUNode();
        if (current != this) {
            current.startElement(namespaceURI, localName, qName, atts);
            return;
        }

        // See if we handle, or we delegate
        if ((localName.equals("web-app")) && (!zeus_thisNodeHandled)) {
            // Handle ourselves
            for (int i=0, len=atts.getLength(); i<len; i++) {
                String attName= atts.getLocalName(i);
                String attValue = atts.getValue(i);
                if (attName.equals("id")) {
                    setId(attValue);
                }
            }
            zeus_thisNodeHandled = true;
            return;
        } else {
            // Delegate handling
            if (localName.equals("icon")) {
                IconImpl icon = new IconImpl();
                current = getCurrentUNode();
                icon.setParentUNode(current);
                icon.setCurrentUNode(icon);
                this.setCurrentUNode(icon);
                icon.startElement(namespaceURI, localName, qName, atts);
                // Add this value in
                this.icon = icon;
                return;
            }
            if (localName.equals("display-name")) {
                this.zeus_inDisplayName = true;
                return;
            }
            if (localName.equals("description")) {
                this.zeus_inDescription = true;
                return;
            }
            if (localName.equals("distributable")) {
                DistributableImpl distributable = new DistributableImpl();
                current = getCurrentUNode();
                distributable.setParentUNode(current);
                distributable.setCurrentUNode(distributable);
                this.setCurrentUNode(distributable);
                distributable.startElement(namespaceURI, localName, qName, atts);
                // Add this value in
                this.distributable = distributable;
                return;
            }
            if (localName.equals("context-param")) {
                ContextParamImpl contextParam = new ContextParamImpl();
                current = getCurrentUNode();
                contextParam.setParentUNode(current);
                contextParam.setCurrentUNode(contextParam);
                this.setCurrentUNode(contextParam);
                contextParam.startElement(namespaceURI, localName, qName, atts);
                // Add this value in
                contextParamList.add(contextParam);
                return;
            }
            if (localName.equals("servlet")) {
                ServletImpl servlet = new ServletImpl();
                current = getCurrentUNode();
                servlet.setParentUNode(current);
                servlet.setCurrentUNode(servlet);
                this.setCurrentUNode(servlet);
                servlet.startElement(namespaceURI, localName, qName, atts);
                // Add this value in
                servletList.add(servlet);
                return;
            }
            if (localName.equals("servlet-mapping")) {
                ServletMappingImpl servletMapping = new ServletMappingImpl();
                current = getCurrentUNode();
                servletMapping.setParentUNode(current);
                servletMapping.setCurrentUNode(servletMapping);
                this.setCurrentUNode(servletMapping);
                servletMapping.startElement(namespaceURI, localName, qName, atts);
                // Add this value in
                servletMappingList.add(servletMapping);
                return;
            }
            if (localName.equals("session-config")) {
                SessionConfigImpl sessionConfig = new SessionConfigImpl();
                current = getCurrentUNode();
                sessionConfig.setParentUNode(current);
                sessionConfig.setCurrentUNode(sessionConfig);
                this.setCurrentUNode(sessionConfig);
                sessionConfig.startElement(namespaceURI, localName, qName, atts);
                // Add this value in
                this.sessionConfig = sessionConfig;
                return;
            }
            if (localName.equals("mime-mapping")) {
                MimeMappingImpl mimeMapping = new MimeMappingImpl();
                current = getCurrentUNode();
                mimeMapping.setParentUNode(current);
                mimeMapping.setCurrentUNode(mimeMapping);
                this.setCurrentUNode(mimeMapping);
                mimeMapping.startElement(namespaceURI, localName, qName, atts);
                // Add this value in
                mimeMappingList.add(mimeMapping);
                return;
            }
            if (localName.equals("welcome-file-list")) {
                WelcomeFileListImpl welcomeFileList = new WelcomeFileListImpl();
                current = getCurrentUNode();
                welcomeFileList.setParentUNode(current);
                welcomeFileList.setCurrentUNode(welcomeFileList);
                this.setCurrentUNode(welcomeFileList);
                welcomeFileList.startElement(namespaceURI, localName, qName, atts);
                // Add this value in
                this.welcomeFileList = welcomeFileList;
                return;
            }
            if (localName.equals("error-page")) {
                ErrorPageImpl errorPage = new ErrorPageImpl();
                current = getCurrentUNode();
                errorPage.setParentUNode(current);
                errorPage.setCurrentUNode(errorPage);
                this.setCurrentUNode(errorPage);
                errorPage.startElement(namespaceURI, localName, qName, atts);
                // Add this value in
                errorPageList.add(errorPage);
                return;
            }
            if (localName.equals("taglib")) {
                TaglibImpl taglib = new TaglibImpl();
                current = getCurrentUNode();
                taglib.setParentUNode(current);
                taglib.setCurrentUNode(taglib);
                this.setCurrentUNode(taglib);
                taglib.startElement(namespaceURI, localName, qName, atts);
                // Add this value in
                taglibList.add(taglib);
                return;
            }
            if (localName.equals("resource-ref")) {
                ResourceRefImpl resourceRef = new ResourceRefImpl();
                current = getCurrentUNode();
                resourceRef.setParentUNode(current);
                resourceRef.setCurrentUNode(resourceRef);
                this.setCurrentUNode(resourceRef);
                resourceRef.startElement(namespaceURI, localName, qName, atts);
                // Add this value in
                resourceRefList.add(resourceRef);
                return;
            }
            if (localName.equals("security-constraint")) {
                SecurityConstraintImpl securityConstraint = new SecurityConstraintImpl();
                current = getCurrentUNode();
                securityConstraint.setParentUNode(current);
                securityConstraint.setCurrentUNode(securityConstraint);
                this.setCurrentUNode(securityConstraint);
                securityConstraint.startElement(namespaceURI, localName, qName, atts);
                // Add this value in
                securityConstraintList.add(securityConstraint);
                return;
            }
            if (localName.equals("login-config")) {
                LoginConfigImpl loginConfig = new LoginConfigImpl();
                current = getCurrentUNode();
                loginConfig.setParentUNode(current);
                loginConfig.setCurrentUNode(loginConfig);
                this.setCurrentUNode(loginConfig);
                loginConfig.startElement(namespaceURI, localName, qName, atts);
                // Add this value in
                this.loginConfig = loginConfig;
                return;
            }
            if (localName.equals("security-role")) {
                SecurityRoleImpl securityRole = new SecurityRoleImpl();
                current = getCurrentUNode();
                securityRole.setParentUNode(current);
                securityRole.setCurrentUNode(securityRole);
                this.setCurrentUNode(securityRole);
                securityRole.startElement(namespaceURI, localName, qName, atts);
                // Add this value in
                securityRoleList.add(securityRole);
                return;
            }
            if (localName.equals("env-entry")) {
                EnvEntryImpl envEntry = new EnvEntryImpl();
                current = getCurrentUNode();
                envEntry.setParentUNode(current);
                envEntry.setCurrentUNode(envEntry);
                this.setCurrentUNode(envEntry);
                envEntry.startElement(namespaceURI, localName, qName, atts);
                // Add this value in
                envEntryList.add(envEntry);
                return;
            }
            if (localName.equals("ejb-ref")) {
                EjbRefImpl ejbRef = new EjbRefImpl();
                current = getCurrentUNode();
                ejbRef.setParentUNode(current);
                ejbRef.setCurrentUNode(ejbRef);
                this.setCurrentUNode(ejbRef);
                ejbRef.startElement(namespaceURI, localName, qName, atts);
                // Add this value in
                ejbRefList.add(ejbRef);
                return;
            }
        }
    
public voidstartEntity(java.lang.String name)

        // Currently no-op
    
public voidstartPrefixMapping(java.lang.String prefix, java.lang.String uri)

        namespaceMappings.put(prefix, uri);
    
public static WebAppunmarshal(java.io.File file)

        // Delegate to the unmarshal(Reader) method
        return unmarshal(new FileReader(file));
    
public static WebAppunmarshal(java.io.File file, boolean validate)

        // Delegate to the unmarshal(Reader) method
        return unmarshal(new FileReader(file), validate);
    
public static WebAppunmarshal(java.io.InputStream inputStream)

        // Delegate to the unmarshal(Reader) method
        return unmarshal(new InputStreamReader(inputStream));
    
public static WebAppunmarshal(java.io.InputStream inputStream, boolean validate)

        // Delegate to the unmarshal(Reader) method
        return unmarshal(new InputStreamReader(inputStream), validate);
    
public static WebAppunmarshal(java.io.Reader reader)

        // Delegate with default validation value
        return unmarshal(reader, false);
    
public static WebAppunmarshal(java.io.Reader reader, boolean validate)

        WebAppImpl webApp = new WebAppImpl();
        webApp.setValidating(validate);
        webApp.setCurrentUNode(webApp);
        webApp.setParentUNode(null);
        // Load the XML parser
        XMLReader parser = null;
        String parserClass = System.getProperty("org.xml.sax.driver",
            "org.apache.xerces.parsers.SAXParser");
        try {
            parser = XMLReaderFactory.createXMLReader(parserClass);

            // Set entity resolver, if needed
            if (entityResolver != null) {
                parser.setEntityResolver(entityResolver);
            }

            // Set error handler
            parser.setErrorHandler(webApp);

            // Register lexical handler
            parser.setProperty("http://xml.org/sax/properties/lexical-handler", webApp);

            // Register content handler
            parser.setContentHandler(webApp);
        } catch (SAXException e) {
            throw new IOException("Could not load XML parser: " + 
                e.getMessage());
        }

        InputSource inputSource = new InputSource(reader);
        try {
            parser.setFeature("http://xml.org/sax/features/validation", new Boolean(validate).booleanValue());
            parser.setFeature("http://xml.org/sax/features/namespaces", true);
            parser.setFeature("http://xml.org/sax/features/namespace-prefixes", false);
            parser.parse(inputSource);
        } catch (SAXException e) {
            throw new IOException("Error parsing XML document: " + 
                e.getMessage());
        }

        // Return the resultant object
        return webApp;
    
public voidwarning(org.xml.sax.SAXParseException e)

        if (errorHandler != null) {
            errorHandler.warning(e);
        }
    
protected voidwriteXMLRepresentation(java.io.Writer writer, java.lang.String indent)


        writer.write(indent);
        writer.write("<web-app");

        // Handle namespace mappings (if needed)
        for (Iterator i = namespaceMappings.keySet().iterator(); i.hasNext(); ) {
            String prefix = (String)i.next();
            String uri = (String)namespaceMappings.get(prefix);
            writer.write(" xmlns");
            if (!prefix.trim().equals("")) {
                writer.write(":");
                writer.write(prefix);
            }
            writer.write("=\"");
            writer.write(uri);
            writer.write("\"\n        ");
        }

        // Handle attributes (if needed)
        if (zeus_IdSet) {
            writer.write(" id=\"");
            writer.write(escapeAttributeValue(id));
            writer.write("\"");
        }
        writer.write(">");
        writer.write("\n");

        // Handle child elements
        if (icon != null) {
            ((IconImpl)icon).writeXMLRepresentation(writer,
                new StringBuffer(indent).append("  ").toString());
        }

        if (displayName != null) {
            writer.write(new StringBuffer(indent).append("  ").toString());
            writer.write("<display-name>");
            writer.write(this.displayName);
            writer.write("</display-name>\n");
        }

        if (description != null) {
            writer.write(new StringBuffer(indent).append("  ").toString());
            writer.write("<description>");
            writer.write(this.description);
            writer.write("</description>\n");
        }

        if (distributable != null) {
            ((DistributableImpl)distributable).writeXMLRepresentation(writer,
                new StringBuffer(indent).append("  ").toString());
        }

        for (Iterator i=contextParamList.iterator(); i.hasNext(); ) {
            ContextParamImpl contextParam = (ContextParamImpl)i.next();
            contextParam.writeXMLRepresentation(writer,
                new StringBuffer(indent).append("  ").toString());
        }
        for (Iterator i=servletList.iterator(); i.hasNext(); ) {
            ServletImpl servlet = (ServletImpl)i.next();
            servlet.writeXMLRepresentation(writer,
                new StringBuffer(indent).append("  ").toString());
        }
        for (Iterator i=servletMappingList.iterator(); i.hasNext(); ) {
            ServletMappingImpl servletMapping = (ServletMappingImpl)i.next();
            servletMapping.writeXMLRepresentation(writer,
                new StringBuffer(indent).append("  ").toString());
        }
        if (sessionConfig != null) {
            ((SessionConfigImpl)sessionConfig).writeXMLRepresentation(writer,
                new StringBuffer(indent).append("  ").toString());
        }

        for (Iterator i=mimeMappingList.iterator(); i.hasNext(); ) {
            MimeMappingImpl mimeMapping = (MimeMappingImpl)i.next();
            mimeMapping.writeXMLRepresentation(writer,
                new StringBuffer(indent).append("  ").toString());
        }
        if (welcomeFileList != null) {
            ((WelcomeFileListImpl)welcomeFileList).writeXMLRepresentation(writer,
                new StringBuffer(indent).append("  ").toString());
        }

        for (Iterator i=errorPageList.iterator(); i.hasNext(); ) {
            ErrorPageImpl errorPage = (ErrorPageImpl)i.next();
            errorPage.writeXMLRepresentation(writer,
                new StringBuffer(indent).append("  ").toString());
        }
        for (Iterator i=taglibList.iterator(); i.hasNext(); ) {
            TaglibImpl taglib = (TaglibImpl)i.next();
            taglib.writeXMLRepresentation(writer,
                new StringBuffer(indent).append("  ").toString());
        }
        for (Iterator i=resourceRefList.iterator(); i.hasNext(); ) {
            ResourceRefImpl resourceRef = (ResourceRefImpl)i.next();
            resourceRef.writeXMLRepresentation(writer,
                new StringBuffer(indent).append("  ").toString());
        }
        for (Iterator i=securityConstraintList.iterator(); i.hasNext(); ) {
            SecurityConstraintImpl securityConstraint = (SecurityConstraintImpl)i.next();
            securityConstraint.writeXMLRepresentation(writer,
                new StringBuffer(indent).append("  ").toString());
        }
        if (loginConfig != null) {
            ((LoginConfigImpl)loginConfig).writeXMLRepresentation(writer,
                new StringBuffer(indent).append("  ").toString());
        }

        for (Iterator i=securityRoleList.iterator(); i.hasNext(); ) {
            SecurityRoleImpl securityRole = (SecurityRoleImpl)i.next();
            securityRole.writeXMLRepresentation(writer,
                new StringBuffer(indent).append("  ").toString());
        }
        for (Iterator i=envEntryList.iterator(); i.hasNext(); ) {
            EnvEntryImpl envEntry = (EnvEntryImpl)i.next();
            envEntry.writeXMLRepresentation(writer,
                new StringBuffer(indent).append("  ").toString());
        }
        for (Iterator i=ejbRefList.iterator(); i.hasNext(); ) {
            EjbRefImpl ejbRef = (EjbRefImpl)i.next();
            ejbRef.writeXMLRepresentation(writer,
                new StringBuffer(indent).append("  ").toString());
        }
        writer.write(indent);
        writer.write("</web-app>\n");