001    package org.mesopotamia.lang.java;
002    
003    import java.util.List;
004    
005    import org.mesopotamia.MesopotamiaException;
006    import org.mesopotamia.NodeData;
007    import org.mesopotamia.RepositoryLanguage;
008    import org.mesopotamia.Scan;
009    import org.w3c.dom.Element;
010    
011    import biz.hammurapi.util.CollectionVisitable;
012    import biz.hammurapi.util.Visitor;
013    
014    public class CasesGroup extends JavaLanguageElement {
015    
016            public CasesGroup(NodeData xData, Class<?> context, Scan scan,
017                            RepositoryLanguage language, Object environment) throws MesopotamiaException {
018                    super(xData, context, scan, language, environment);
019    
020                    // Select attributes
021                    Cases = select(Case.class, "LITERAL_case|LITERAL_default");
022                    Statements = select(Statement.class, "SLIST/*");
023    
024            }
025    
026            public void toDom(Element holder) {
027                    super.toDom(holder);
028    
029                    // Serialize attributes
030                    setElement(holder, "Cases", Cases);
031                    setElement(holder, "Statements", Statements);
032            }
033    
034            // Attributes
035            private List<Case> Cases;
036    
037            private List<Statement> Statements;
038    
039            // Accessors
040            public List<Case> getCases() {
041                    return Cases;
042            }
043    
044            public List<Statement> getStatements() {
045                    return Statements;
046            }
047    
048            protected void acceptChildren(Visitor visitor) {
049                    super.acceptChildren(visitor);
050                    // Visiting non-text attributes
051                    new CollectionVisitable(Cases, false).accept(visitor);
052                    new CollectionVisitable(Statements, false).accept(visitor);
053            }
054    
055    }