//# 1 errors, 241 messages
//#
/*
    //#ThemeMetadataParser.java:1:1: class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#ThemeMetadataParser.java:1:1: method: org.apache.roller.weblogger.business.themes.ThemeMetadataParser.org.apache.roller.weblogger.business.themes.ThemeMetadataParser__static_init
 * Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  The ASF licenses this file to You
 * under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.  For additional information regarding
 * copyright in this work, please see the NOTICE file in the top level
 * directory of this distribution.
 */

package org.apache.roller.weblogger.business.themes;

import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.apache.roller.weblogger.pojos.WeblogTemplate;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;


/**
 * The parser for theme xml descriptors.
 *
 * This class unmarshalls a theme descriptor into a set of objects.
 */
public class ThemeMetadataParser {
    //#ThemeMetadataParser.java:38: method: void org.apache.roller.weblogger.business.themes.ThemeMetadataParser.org.apache.roller.weblogger.business.themes.ThemeMetadataParser()
    //#ThemeMetadataParser.java:38: end of method: void org.apache.roller.weblogger.business.themes.ThemeMetadataParser.org.apache.roller.weblogger.business.themes.ThemeMetadataParser()
    
    
    /**
     * Unmarshall the given input stream into our defined
     * set of Java objects.
     **/
    public ThemeMetadata unmarshall(InputStream instream) 
        throws ThemeParsingException, IOException, JDOMException {
        
        if(instream == null)
    //#ThemeMetadataParser.java:48: method: ThemeMetadata org.apache.roller.weblogger.business.themes.ThemeMetadataParser.unmarshall(InputStream)
    //#input(ThemeMetadata unmarshall(InputStream)): instream
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadata.__Descendant_Table[org/apache/roller/weblogger/business/themes/ThemeMetadata]
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadata.__Dispatch_Table.addResource(Ljava/lang/String;)V
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadata.__Dispatch_Table.addTemplate(Lorg/apache/roller/weblogger/business/themes/ThemeMetadataTemplate;)V
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadata.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadata.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadata.__Dispatch_Table.setAuthor(Ljava/lang/String;)V
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadata.__Dispatch_Table.setId(Ljava/lang/String;)V
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadata.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadata.__Dispatch_Table.setPreviewImage(Ljava/lang/String;)V
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadata.__Dispatch_Table.setStylesheet(Lorg/apache/roller/weblogger/business/themes/ThemeMetadataTemplate;)V
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Descendant_Table[org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate]
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.getAction()Ljava/lang/String;
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.getContentsFile()Ljava/lang/String;
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.getLink()Ljava/lang/String;
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.getTemplateLanguage()Ljava/lang/String;
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setAction(Ljava/lang/String;)V
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setContentType(Ljava/lang/String;)V
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setContentsFile(Ljava/lang/String;)V
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setDescription(Ljava/lang/String;)V
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setHidden(Z)V
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setLink(Ljava/lang/String;)V
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setNavbar(Z)V
    //#input(ThemeMetadata unmarshall(InputStream)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setTemplateLanguage(Ljava/lang/String;)V
    //#input(ThemeMetadata unmarshall(InputStream)): this
    //#output(ThemeMetadata unmarshall(InputStream)): new HashSet(ThemeMetadata#1) num objects
    //#output(ThemeMetadata unmarshall(InputStream)): new HashSet(ThemeMetadata#2) num objects
    //#output(ThemeMetadata unmarshall(InputStream)): new ThemeMetadata(unmarshall#1) num objects
    //#output(ThemeMetadata unmarshall(InputStream)): return_value.__Tag
    //#output(ThemeMetadata unmarshall(InputStream)): return_value.author
    //#output(ThemeMetadata unmarshall(InputStream)): return_value.id
    //#output(ThemeMetadata unmarshall(InputStream)): return_value.name
    //#output(ThemeMetadata unmarshall(InputStream)): return_value.previewImage
    //#output(ThemeMetadata unmarshall(InputStream)): return_value.resources
    //#output(ThemeMetadata unmarshall(InputStream)): return_value.stylesheet
    //#output(ThemeMetadata unmarshall(InputStream)): return_value.templates
    //#output(ThemeMetadata unmarshall(InputStream)): new ThemeMetadataTemplate(elementToStylesheet#1) num objects
    //#output(ThemeMetadata unmarshall(InputStream)): new ThemeMetadataTemplate(elementToStylesheet#1).__Tag
    //#output(ThemeMetadata unmarshall(InputStream)): new ThemeMetadataTemplate(elementToStylesheet#1).action
    //#output(ThemeMetadata unmarshall(InputStream)): new ThemeMetadataTemplate(elementToStylesheet#1).contentType
    //#output(ThemeMetadata unmarshall(InputStream)): new ThemeMetadataTemplate(elementToStylesheet#1).contentsFile
    //#output(ThemeMetadata unmarshall(InputStream)): new ThemeMetadataTemplate(elementToStylesheet#1).description
    //#output(ThemeMetadata unmarshall(InputStream)): new ThemeMetadataTemplate(elementToStylesheet#1).hidden
    //#output(ThemeMetadata unmarshall(InputStream)): new ThemeMetadataTemplate(elementToStylesheet#1).link
    //#output(ThemeMetadata unmarshall(InputStream)): new ThemeMetadataTemplate(elementToStylesheet#1).name
    //#output(ThemeMetadata unmarshall(InputStream)): new ThemeMetadataTemplate(elementToStylesheet#1).navbar
    //#output(ThemeMetadata unmarshall(InputStream)): new ThemeMetadataTemplate(elementToStylesheet#1).templateLanguage
    //#output(ThemeMetadata unmarshall(InputStream)): return_value
    //#new obj(ThemeMetadata unmarshall(InputStream)): new HashSet(ThemeMetadata#1)
    //#new obj(ThemeMetadata unmarshall(InputStream)): new HashSet(ThemeMetadata#2)
    //#new obj(ThemeMetadata unmarshall(InputStream)): new ThemeMetadata(unmarshall#1)
    //#new obj(ThemeMetadata unmarshall(InputStream)): new ThemeMetadataTemplate(elementToStylesheet#1)
    //#pre[1] (ThemeMetadata unmarshall(InputStream)): instream != null
    //#presumption(ThemeMetadata unmarshall(InputStream)): java.util.Iterator:next(...)@85 != null
    //#presumption(ThemeMetadata unmarshall(InputStream)): java.util.Iterator:next(...)@94 != null
    //#presumption(ThemeMetadata unmarshall(InputStream)): org.apache.commons.lang.StringUtils:isEmpty(...)@63 == 0
    //#presumption(ThemeMetadata unmarshall(InputStream)): org.apache.commons.lang.StringUtils:isEmpty(...)@63 == 0
    //#presumption(ThemeMetadata unmarshall(InputStream)): org.jdom.Document:getRootElement(...)@57 != null
    //#presumption(ThemeMetadata unmarshall(InputStream)): org.jdom.Element:getChild(...)@68 != null
    //#presumption(ThemeMetadata unmarshall(InputStream)): org.jdom.Element:getChildren(...)@82 != null
    //#presumption(ThemeMetadata unmarshall(InputStream)): org.jdom.Element:getChildren(...)@91 != null
    //#presumption(ThemeMetadata unmarshall(InputStream)): org.jdom.input.SAXBuilder:build(...)@54 != null
    //#post(ThemeMetadata unmarshall(InputStream)): return_value == &new ThemeMetadata(unmarshall#1)
    //#post(ThemeMetadata unmarshall(InputStream)): new HashSet(ThemeMetadata#1) num objects == 1
    //#post(ThemeMetadata unmarshall(InputStream)): new HashSet(ThemeMetadata#2) num objects == 1
    //#post(ThemeMetadata unmarshall(InputStream)): new ThemeMetadata(unmarshall#1) num objects == 1
    //#post(ThemeMetadata unmarshall(InputStream)): return_value.__Tag == org/apache/roller/weblogger/business/themes/ThemeMetadata
    //#post(ThemeMetadata unmarshall(InputStream)): init'ed(return_value.author)
    //#post(ThemeMetadata unmarshall(InputStream)): init'ed(return_value.id)
    //#post(ThemeMetadata unmarshall(InputStream)): init'ed(return_value.name)
    //#post(ThemeMetadata unmarshall(InputStream)): init'ed(return_value.previewImage)
    //#post(ThemeMetadata unmarshall(InputStream)): return_value.resources == &new HashSet(ThemeMetadata#2)
    //#post(ThemeMetadata unmarshall(InputStream)): return_value.stylesheet in Addr_Set{null,&new ThemeMetadataTemplate(elementToStylesheet#1)}
    //#post(ThemeMetadata unmarshall(InputStream)): return_value.templates == &new HashSet(ThemeMetadata#1)
    //#post(ThemeMetadata unmarshall(InputStream)): new ThemeMetadataTemplate(elementToStylesheet#1) num objects <= 1
    //#post(ThemeMetadata unmarshall(InputStream)): init'ed(new ThemeMetadataTemplate(elementToStylesheet#1).__Tag)
    //#post(ThemeMetadata unmarshall(InputStream)): init'ed(new ThemeMetadataTemplate(elementToStylesheet#1).action)
    //#post(ThemeMetadata unmarshall(InputStream)): init'ed(new ThemeMetadataTemplate(elementToStylesheet#1).contentType)
    //#post(ThemeMetadata unmarshall(InputStream)): init'ed(new ThemeMetadataTemplate(elementToStylesheet#1).contentsFile)
    //#post(ThemeMetadata unmarshall(InputStream)): init'ed(new ThemeMetadataTemplate(elementToStylesheet#1).description)
    //#post(ThemeMetadata unmarshall(InputStream)): init'ed(new ThemeMetadataTemplate(elementToStylesheet#1).hidden)
    //#post(ThemeMetadata unmarshall(InputStream)): init'ed(new ThemeMetadataTemplate(elementToStylesheet#1).link)
    //#post(ThemeMetadata unmarshall(InputStream)): init'ed(new ThemeMetadataTemplate(elementToStylesheet#1).name)
    //#post(ThemeMetadata unmarshall(InputStream)): init'ed(new ThemeMetadataTemplate(elementToStylesheet#1).navbar)
    //#post(ThemeMetadata unmarshall(InputStream)): init'ed(new ThemeMetadataTemplate(elementToStylesheet#1).templateLanguage)
    //#unanalyzed(ThemeMetadata unmarshall(InputStream)): Effects-of-calling:org.jdom.Element:getAttributeValue
    //#unanalyzed(ThemeMetadata unmarshall(InputStream)): Effects-of-calling:org.jdom.Element:getChildText
    //#unanalyzed(ThemeMetadata unmarshall(InputStream)): Effects-of-calling:java.lang.String:equalsIgnoreCase
    //#unanalyzed(ThemeMetadata unmarshall(InputStream)): Effects-of-calling:org.apache.commons.lang.StringUtils:isEmpty
    //#unanalyzed(ThemeMetadata unmarshall(InputStream)): Effects-of-calling:java.util.HashSet
    //#unanalyzed(ThemeMetadata unmarshall(InputStream)): Effects-of-calling:java.util.Set:add
    //#test_vector(ThemeMetadata unmarshall(InputStream)): java.lang.String:equals(...)@98: {0}, {1}
    //#test_vector(ThemeMetadata unmarshall(InputStream)): java.util.Iterator:hasNext(...)@84: {0}, {1}
    //#test_vector(ThemeMetadata unmarshall(InputStream)): java.util.Iterator:hasNext(...)@93: {0}, {1}
    //#test_vector(ThemeMetadata unmarshall(InputStream)): org.jdom.Element:getChild(...)@76: Addr_Set{null}, Inverse{null}
            throw new IOException("InputStream is null!");
        
        ThemeMetadata theme = new ThemeMetadata();
        
        SAXBuilder builder = new SAXBuilder();
    //#ThemeMetadataParser.java:53: Warning: method not available
    //#    -- call on void org.jdom.input.SAXBuilder()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadata unmarshall(InputStream)
    //#    unanalyzed callee: void org.jdom.input.SAXBuilder()
        Document doc = builder.build(instream);
    //#ThemeMetadataParser.java:54: Warning: method not available
    //#    -- call on Document org.jdom.input.SAXBuilder:build(InputStream)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadata unmarshall(InputStream)
    //#    unanalyzed callee: Document org.jdom.input.SAXBuilder:build(InputStream)
        
        // start at root and get theme id, name, and author
        Element root = doc.getRootElement();
    //#ThemeMetadataParser.java:57: Warning: method not available
    //#    -- call on Element org.jdom.Document:getRootElement()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadata unmarshall(InputStream)
    //#    unanalyzed callee: Element org.jdom.Document:getRootElement()
        theme.setId(root.getChildText("id"));
    //#ThemeMetadataParser.java:58: Warning: method not available
    //#    -- call on String org.jdom.Element:getChildText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadata unmarshall(InputStream)
    //#    unanalyzed callee: String org.jdom.Element:getChildText(String)
        theme.setName(root.getChildText("name"));
    //#ThemeMetadataParser.java:59: Warning: method not available
    //#    -- call on String org.jdom.Element:getChildText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadata unmarshall(InputStream)
    //#    unanalyzed callee: String org.jdom.Element:getChildText(String)
        theme.setAuthor(root.getChildText("author"));
    //#ThemeMetadataParser.java:60: Warning: method not available
    //#    -- call on String org.jdom.Element:getChildText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadata unmarshall(InputStream)
    //#    unanalyzed callee: String org.jdom.Element:getChildText(String)
        
        // if either id or name is null then throw a parsing exception
        if(StringUtils.isEmpty(theme.getId()) || StringUtils.isEmpty(theme.getName())) {
    //#ThemeMetadataParser.java:63: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadata unmarshall(InputStream)
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            throw new ThemeParsingException("'id' and 'name' are required theme elements");
        }
        
        // now grab the preview image path
        Element previewImage = root.getChild("preview-image");
    //#ThemeMetadataParser.java:68: Warning: method not available
    //#    -- call on Element org.jdom.Element:getChild(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadata unmarshall(InputStream)
    //#    unanalyzed callee: Element org.jdom.Element:getChild(String)
        if(previewImage != null) {
            theme.setPreviewImage(previewImage.getAttributeValue("path"));
    //#ThemeMetadataParser.java:70: Warning: method not available
    //#    -- call on String org.jdom.Element:getAttributeValue(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadata unmarshall(InputStream)
    //#    unanalyzed callee: String org.jdom.Element:getAttributeValue(String)
        } else {
            throw new ThemeParsingException("No preview image specified");
        }
        
        // grab the stylesheet if it exists
        Element stylesheet = root.getChild("stylesheet");
    //#ThemeMetadataParser.java:76: Warning: method not available
    //#    -- call on Element org.jdom.Element:getChild(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadata unmarshall(InputStream)
    //#    unanalyzed callee: Element org.jdom.Element:getChild(String)
        if(stylesheet != null) {
            theme.setStylesheet(elementToStylesheet(stylesheet));
        }
        
        // now grab the static resources
        List resources = root.getChildren("resource");
    //#ThemeMetadataParser.java:82: Warning: method not available
    //#    -- call on List org.jdom.Element:getChildren(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadata unmarshall(InputStream)
    //#    unanalyzed callee: List org.jdom.Element:getChildren(String)
        Iterator resourcesIter = resources.iterator();
        while (resourcesIter.hasNext()) {
            Element resource = (Element) resourcesIter.next();
            theme.addResource(resource.getAttributeValue("path"));
    //#ThemeMetadataParser.java:86: Warning: method not available
    //#    -- call on String org.jdom.Element:getAttributeValue(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadata unmarshall(InputStream)
    //#    unanalyzed callee: String org.jdom.Element:getAttributeValue(String)
        }
        
        // now grab the templates
        boolean weblogActionTemplate = false;
        List templates = root.getChildren("template");
    //#ThemeMetadataParser.java:91: Warning: method not available
    //#    -- call on List org.jdom.Element:getChildren(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadata unmarshall(InputStream)
    //#    unanalyzed callee: List org.jdom.Element:getChildren(String)
        Iterator templatesIter = templates.iterator();
        while (templatesIter.hasNext()) {
            Element template = (Element) templatesIter.next();
            ThemeMetadataTemplate tmpl = elementToTemplateMetadata(template);
            theme.addTemplate(tmpl);
            
            if(WeblogTemplate.ACTION_WEBLOG.equals(tmpl.getAction())) {
                weblogActionTemplate = true;
            }
        }
        
        // make sure all required elements are present and values are valid
        // check that there is a template with action='weblog'
        if(!weblogActionTemplate) {
    //#ThemeMetadataParser.java:105: ?org/apache/roller/weblogger/business/themes/ThemeParsingException check
    //#    weblogActionTemplate == 1
    //#    severity: MEDIUM
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadata unmarshall(InputStream)
    //#    basic block: bb_12
    //#    assertion: weblogActionTemplate == 1
    //#    VN: weblogActionTemplate
    //#    Expected: {-Inf..-1, 1..+Inf}
    //#    Bad: {0}
    //#    Attribs:  Int  Bad singleton  Bad overlaps +/-1000  Bad > Exp
            throw new ThemeParsingException("did not find a template of action = 'weblog'");
        }
        
        return theme;
    //#ThemeMetadataParser.java:109: end of method: ThemeMetadata org.apache.roller.weblogger.business.themes.ThemeMetadataParser.unmarshall(InputStream)
    }
    
    
    private ThemeMetadataTemplate elementToTemplateMetadata(Element element) 
            throws ThemeParsingException {
        
        ThemeMetadataTemplate template = new ThemeMetadataTemplate();
    //#ThemeMetadataParser.java:116: method: ThemeMetadataTemplate org.apache.roller.weblogger.business.themes.ThemeMetadataParser.elementToTemplateMetadata(Element)
    //#input(ThemeMetadataTemplate elementToTemplateMetadata(Element)): element
    //#input(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Descendant_Table[org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate]
    //#input(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.getAction()Ljava/lang/String;
    //#input(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.getContentsFile()Ljava/lang/String;
    //#input(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.getTemplateLanguage()Ljava/lang/String;
    //#input(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setAction(Ljava/lang/String;)V
    //#input(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setContentType(Ljava/lang/String;)V
    //#input(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setContentsFile(Ljava/lang/String;)V
    //#input(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setDescription(Ljava/lang/String;)V
    //#input(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setHidden(Z)V
    //#input(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setLink(Ljava/lang/String;)V
    //#input(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setNavbar(Z)V
    //#input(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setTemplateLanguage(Ljava/lang/String;)V
    //#output(ThemeMetadataTemplate elementToTemplateMetadata(Element)): new ThemeMetadataTemplate(elementToTemplateMetadata#1) num objects
    //#output(ThemeMetadataTemplate elementToTemplateMetadata(Element)): return_value.__Tag
    //#output(ThemeMetadataTemplate elementToTemplateMetadata(Element)): return_value.action
    //#output(ThemeMetadataTemplate elementToTemplateMetadata(Element)): return_value.contentType
    //#output(ThemeMetadataTemplate elementToTemplateMetadata(Element)): return_value.contentsFile
    //#output(ThemeMetadataTemplate elementToTemplateMetadata(Element)): return_value.description
    //#output(ThemeMetadataTemplate elementToTemplateMetadata(Element)): return_value.hidden
    //#output(ThemeMetadataTemplate elementToTemplateMetadata(Element)): return_value.link
    //#output(ThemeMetadataTemplate elementToTemplateMetadata(Element)): return_value.name
    //#output(ThemeMetadataTemplate elementToTemplateMetadata(Element)): return_value.navbar
    //#output(ThemeMetadataTemplate elementToTemplateMetadata(Element)): return_value.templateLanguage
    //#output(ThemeMetadataTemplate elementToTemplateMetadata(Element)): return_value
    //#new obj(ThemeMetadataTemplate elementToTemplateMetadata(Element)): new ThemeMetadataTemplate(elementToTemplateMetadata#1)
    //#pre[1] (ThemeMetadataTemplate elementToTemplateMetadata(Element)): element != null
    //#presumption(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org.apache.commons.lang.StringUtils:isEmpty(...)@137 == 0
    //#presumption(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org.apache.commons.lang.StringUtils:isEmpty(...)@140 == 0
    //#presumption(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org.apache.commons.lang.StringUtils:isEmpty(...)@143 == 0
    //#presumption(ThemeMetadataTemplate elementToTemplateMetadata(Element)): org.apache.commons.lang.StringUtils:isEmpty(...)@146 == 0
    //#post(ThemeMetadataTemplate elementToTemplateMetadata(Element)): return_value == &new ThemeMetadataTemplate(elementToTemplateMetadata#1)
    //#post(ThemeMetadataTemplate elementToTemplateMetadata(Element)): new ThemeMetadataTemplate(elementToTemplateMetadata#1) num objects == 1
    //#post(ThemeMetadataTemplate elementToTemplateMetadata(Element)): return_value.__Tag == org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate
    //#post(ThemeMetadataTemplate elementToTemplateMetadata(Element)): init'ed(return_value.action)
    //#post(ThemeMetadataTemplate elementToTemplateMetadata(Element)): init'ed(return_value.contentType)
    //#post(ThemeMetadataTemplate elementToTemplateMetadata(Element)): init'ed(return_value.contentsFile)
    //#post(ThemeMetadataTemplate elementToTemplateMetadata(Element)): init'ed(return_value.description)
    //#post(ThemeMetadataTemplate elementToTemplateMetadata(Element)): init'ed(return_value.hidden)
    //#post(ThemeMetadataTemplate elementToTemplateMetadata(Element)): init'ed(return_value.link)
    //#post(ThemeMetadataTemplate elementToTemplateMetadata(Element)): init'ed(return_value.name)
    //#post(ThemeMetadataTemplate elementToTemplateMetadata(Element)): init'ed(return_value.navbar)
    //#post(ThemeMetadataTemplate elementToTemplateMetadata(Element)): init'ed(return_value.templateLanguage)
    //#test_vector(ThemeMetadataTemplate elementToTemplateMetadata(Element)): java.lang.String:equalsIgnoreCase(...)@127: {0}, {1}
    //#test_vector(ThemeMetadataTemplate elementToTemplateMetadata(Element)): java.lang.String:equalsIgnoreCase(...)@132: {0}, {1}
        
        template.setAction(element.getAttributeValue("action"));
    //#ThemeMetadataParser.java:118: Warning: method not available
    //#    -- call on String org.jdom.Element:getAttributeValue(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToTemplateMetadata(Element)
    //#    unanalyzed callee: String org.jdom.Element:getAttributeValue(String)
        template.setName(element.getChildText("name"));
    //#ThemeMetadataParser.java:119: Warning: method not available
    //#    -- call on String org.jdom.Element:getChildText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToTemplateMetadata(Element)
    //#    unanalyzed callee: String org.jdom.Element:getChildText(String)
        template.setDescription(element.getChildText("description"));
    //#ThemeMetadataParser.java:120: Warning: method not available
    //#    -- call on String org.jdom.Element:getChildText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToTemplateMetadata(Element)
    //#    unanalyzed callee: String org.jdom.Element:getChildText(String)
        template.setLink(element.getChildText("link"));
    //#ThemeMetadataParser.java:121: Warning: method not available
    //#    -- call on String org.jdom.Element:getChildText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToTemplateMetadata(Element)
    //#    unanalyzed callee: String org.jdom.Element:getChildText(String)
        template.setTemplateLanguage(element.getChildText("templateLanguage"));
    //#ThemeMetadataParser.java:122: Warning: method not available
    //#    -- call on String org.jdom.Element:getChildText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToTemplateMetadata(Element)
    //#    unanalyzed callee: String org.jdom.Element:getChildText(String)
        template.setContentType(element.getChildText("contentType"));
    //#ThemeMetadataParser.java:123: Warning: method not available
    //#    -- call on String org.jdom.Element:getChildText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToTemplateMetadata(Element)
    //#    unanalyzed callee: String org.jdom.Element:getChildText(String)
        template.setContentsFile(element.getChildText("contentsFile"));
    //#ThemeMetadataParser.java:124: Warning: method not available
    //#    -- call on String org.jdom.Element:getChildText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToTemplateMetadata(Element)
    //#    unanalyzed callee: String org.jdom.Element:getChildText(String)
        
        String navbar = element.getChildText("navbar");
    //#ThemeMetadataParser.java:126: Warning: method not available
    //#    -- call on String org.jdom.Element:getChildText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToTemplateMetadata(Element)
    //#    unanalyzed callee: String org.jdom.Element:getChildText(String)
        if("true".equalsIgnoreCase(navbar)) {
            template.setNavbar(true);
        }
        
        String hidden = element.getChildText("hidden");
    //#ThemeMetadataParser.java:131: Warning: method not available
    //#    -- call on String org.jdom.Element:getChildText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToTemplateMetadata(Element)
    //#    unanalyzed callee: String org.jdom.Element:getChildText(String)
        if("true".equalsIgnoreCase(hidden)) {
            template.setHidden(true);
        }
        
        // validate template
        if(StringUtils.isEmpty(template.getAction())) {
    //#ThemeMetadataParser.java:137: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToTemplateMetadata(Element)
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            throw new ThemeParsingException("templates must contain an 'action' attribute");
        }
        if(StringUtils.isEmpty(template.getName())) {
    //#ThemeMetadataParser.java:140: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToTemplateMetadata(Element)
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            throw new ThemeParsingException("templates must contain a 'name' element");
        }
        if(StringUtils.isEmpty(template.getTemplateLanguage())) {
    //#ThemeMetadataParser.java:143: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToTemplateMetadata(Element)
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            throw new ThemeParsingException("templates must contain a 'templateLanguage' element");
        }
        if(StringUtils.isEmpty(template.getContentsFile())) {
    //#ThemeMetadataParser.java:146: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToTemplateMetadata(Element)
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            throw new ThemeParsingException("templates must contain a 'contentsFile' element");
        }
        
        return template;
    //#ThemeMetadataParser.java:150: end of method: ThemeMetadataTemplate org.apache.roller.weblogger.business.themes.ThemeMetadataParser.elementToTemplateMetadata(Element)
    }
    
    
    private ThemeMetadataTemplate elementToStylesheet(Element element) 
            throws ThemeParsingException {
        
        ThemeMetadataTemplate template = new ThemeMetadataTemplate();
    //#ThemeMetadataParser.java:157: method: ThemeMetadataTemplate org.apache.roller.weblogger.business.themes.ThemeMetadataParser.elementToStylesheet(Element)
    //#input(ThemeMetadataTemplate elementToStylesheet(Element)): element
    //#input(ThemeMetadataTemplate elementToStylesheet(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Descendant_Table[org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate]
    //#input(ThemeMetadataTemplate elementToStylesheet(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.getContentsFile()Ljava/lang/String;
    //#input(ThemeMetadataTemplate elementToStylesheet(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.getLink()Ljava/lang/String;
    //#input(ThemeMetadataTemplate elementToStylesheet(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(ThemeMetadataTemplate elementToStylesheet(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.getTemplateLanguage()Ljava/lang/String;
    //#input(ThemeMetadataTemplate elementToStylesheet(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setContentsFile(Ljava/lang/String;)V
    //#input(ThemeMetadataTemplate elementToStylesheet(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setDescription(Ljava/lang/String;)V
    //#input(ThemeMetadataTemplate elementToStylesheet(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setLink(Ljava/lang/String;)V
    //#input(ThemeMetadataTemplate elementToStylesheet(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(ThemeMetadataTemplate elementToStylesheet(Element)): org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate.__Dispatch_Table.setTemplateLanguage(Ljava/lang/String;)V
    //#output(ThemeMetadataTemplate elementToStylesheet(Element)): new ThemeMetadataTemplate(elementToStylesheet#1) num objects
    //#output(ThemeMetadataTemplate elementToStylesheet(Element)): return_value.__Tag
    //#output(ThemeMetadataTemplate elementToStylesheet(Element)): return_value.action
    //#output(ThemeMetadataTemplate elementToStylesheet(Element)): return_value.contentType
    //#output(ThemeMetadataTemplate elementToStylesheet(Element)): return_value.contentsFile
    //#output(ThemeMetadataTemplate elementToStylesheet(Element)): return_value.description
    //#output(ThemeMetadataTemplate elementToStylesheet(Element)): return_value.hidden
    //#output(ThemeMetadataTemplate elementToStylesheet(Element)): return_value.link
    //#output(ThemeMetadataTemplate elementToStylesheet(Element)): return_value.name
    //#output(ThemeMetadataTemplate elementToStylesheet(Element)): return_value.navbar
    //#output(ThemeMetadataTemplate elementToStylesheet(Element)): return_value.templateLanguage
    //#output(ThemeMetadataTemplate elementToStylesheet(Element)): return_value
    //#new obj(ThemeMetadataTemplate elementToStylesheet(Element)): new ThemeMetadataTemplate(elementToStylesheet#1)
    //#pre[1] (ThemeMetadataTemplate elementToStylesheet(Element)): element != null
    //#presumption(ThemeMetadataTemplate elementToStylesheet(Element)): org.apache.commons.lang.StringUtils:isEmpty(...)@166 == 0
    //#presumption(ThemeMetadataTemplate elementToStylesheet(Element)): org.apache.commons.lang.StringUtils:isEmpty(...)@169 == 0
    //#presumption(ThemeMetadataTemplate elementToStylesheet(Element)): org.apache.commons.lang.StringUtils:isEmpty(...)@172 == 0
    //#presumption(ThemeMetadataTemplate elementToStylesheet(Element)): org.apache.commons.lang.StringUtils:isEmpty(...)@175 == 0
    //#post(ThemeMetadataTemplate elementToStylesheet(Element)): return_value == &new ThemeMetadataTemplate(elementToStylesheet#1)
    //#post(ThemeMetadataTemplate elementToStylesheet(Element)): new ThemeMetadataTemplate(elementToStylesheet#1) num objects == 1
    //#post(ThemeMetadataTemplate elementToStylesheet(Element)): return_value.__Tag == org/apache/roller/weblogger/business/themes/ThemeMetadataTemplate
    //#post(ThemeMetadataTemplate elementToStylesheet(Element)): return_value.action == null
    //#post(ThemeMetadataTemplate elementToStylesheet(Element)): return_value.contentType == null
    //#post(ThemeMetadataTemplate elementToStylesheet(Element)): init'ed(return_value.contentsFile)
    //#post(ThemeMetadataTemplate elementToStylesheet(Element)): init'ed(return_value.description)
    //#post(ThemeMetadataTemplate elementToStylesheet(Element)): return_value.hidden == 0
    //#post(ThemeMetadataTemplate elementToStylesheet(Element)): return_value.navbar == 0
    //#post(ThemeMetadataTemplate elementToStylesheet(Element)): init'ed(return_value.link)
    //#post(ThemeMetadataTemplate elementToStylesheet(Element)): init'ed(return_value.name)
    //#post(ThemeMetadataTemplate elementToStylesheet(Element)): init'ed(return_value.templateLanguage)
        
        template.setName(element.getChildText("name"));
    //#ThemeMetadataParser.java:159: Warning: method not available
    //#    -- call on String org.jdom.Element:getChildText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToStylesheet(Element)
    //#    unanalyzed callee: String org.jdom.Element:getChildText(String)
        template.setDescription(element.getChildText("description"));
    //#ThemeMetadataParser.java:160: Warning: method not available
    //#    -- call on String org.jdom.Element:getChildText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToStylesheet(Element)
    //#    unanalyzed callee: String org.jdom.Element:getChildText(String)
        template.setLink(element.getChildText("link"));
    //#ThemeMetadataParser.java:161: Warning: method not available
    //#    -- call on String org.jdom.Element:getChildText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToStylesheet(Element)
    //#    unanalyzed callee: String org.jdom.Element:getChildText(String)
        template.setTemplateLanguage(element.getChildText("templateLanguage"));
    //#ThemeMetadataParser.java:162: Warning: method not available
    //#    -- call on String org.jdom.Element:getChildText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToStylesheet(Element)
    //#    unanalyzed callee: String org.jdom.Element:getChildText(String)
        template.setContentsFile(element.getChildText("contentsFile"));
    //#ThemeMetadataParser.java:163: Warning: method not available
    //#    -- call on String org.jdom.Element:getChildText(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToStylesheet(Element)
    //#    unanalyzed callee: String org.jdom.Element:getChildText(String)
        
        // validate template
        if(StringUtils.isEmpty(template.getName())) {
    //#ThemeMetadataParser.java:166: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToStylesheet(Element)
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            throw new ThemeParsingException("stylesheet must contain a 'name' element");
        }
        if(StringUtils.isEmpty(template.getLink())) {
    //#ThemeMetadataParser.java:169: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToStylesheet(Element)
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            throw new ThemeParsingException("stylesheet must contain a 'link' element");
        }
        if(StringUtils.isEmpty(template.getTemplateLanguage())) {
    //#ThemeMetadataParser.java:172: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToStylesheet(Element)
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            throw new ThemeParsingException("stylesheet must contain a 'templateLanguage' element");
        }
        if(StringUtils.isEmpty(template.getContentsFile())) {
    //#ThemeMetadataParser.java:175: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
    //#    method: ThemeMetadataTemplate elementToStylesheet(Element)
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            throw new ThemeParsingException("stylesheet must contain a 'contentsFile' element");
        }
        
        return template;
    //#ThemeMetadataParser.java:179: end of method: ThemeMetadataTemplate org.apache.roller.weblogger.business.themes.ThemeMetadataParser.elementToStylesheet(Element)
    }
    
}
    //#output(org.apache.roller.weblogger.business.themes.ThemeMetadataParser__static_init): __Descendant_Table[org/apache/roller/weblogger/business/themes/ThemeMetadataParser]
    //#output(org.apache.roller.weblogger.business.themes.ThemeMetadataParser__static_init): __Dispatch_Table.elementToStylesheet(Lorg/jdom/Element;)Lorg/apache/roller/weblogger/business/themes/ThemeMetadataTemplate;
    //#output(org.apache.roller.weblogger.business.themes.ThemeMetadataParser__static_init): __Dispatch_Table.elementToTemplateMetadata(Lorg/jdom/Element;)Lorg/apache/roller/weblogger/business/themes/ThemeMetadataTemplate;
    //#output(org.apache.roller.weblogger.business.themes.ThemeMetadataParser__static_init): __Dispatch_Table.unmarshall(Ljava/io/InputStream;)Lorg/apache/roller/weblogger/business/themes/ThemeMetadata;
    //#post(org.apache.roller.weblogger.business.themes.ThemeMetadataParser__static_init): __Descendant_Table[org/apache/roller/weblogger/business/themes/ThemeMetadataParser] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.business.themes.ThemeMetadataParser__static_init): __Dispatch_Table.elementToStylesheet(Lorg/jdom/Element;)Lorg/apache/roller/weblogger/business/themes/ThemeMetadataTemplate; == &elementToStylesheet
    //#post(org.apache.roller.weblogger.business.themes.ThemeMetadataParser__static_init): __Dispatch_Table.elementToTemplateMetadata(Lorg/jdom/Element;)Lorg/apache/roller/weblogger/business/themes/ThemeMetadataTemplate; == &elementToTemplateMetadata
    //#post(org.apache.roller.weblogger.business.themes.ThemeMetadataParser__static_init): __Dispatch_Table.unmarshall(Ljava/io/InputStream;)Lorg/apache/roller/weblogger/business/themes/ThemeMetadata; == &unmarshall
    //#ThemeMetadataParser.java:: end of method: org.apache.roller.weblogger.business.themes.ThemeMetadataParser.org.apache.roller.weblogger.business.themes.ThemeMetadataParser__static_init
    //#ThemeMetadataParser.java:: end of class: org.apache.roller.weblogger.business.themes.ThemeMetadataParser
