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 Switch extends JavaLanguageElement implements Statement {
015    
016            private Expression Expression;
017    
018            public Switch(NodeData xData, Class<?> context, Scan scan,
019                            RepositoryLanguage language, Object environment) throws MesopotamiaException {
020                    super(xData, context, scan, language, environment);
021    
022                    // Select attributes
023                    CasesGroup = select(CasesGroup.class, "CASE_GROUP");
024                    Expression = (Expression) selectSingleElement(Expression.class, "*[0]");
025            }
026    
027            public void toDom(Element holder) {
028                    super.toDom(holder);
029    
030                    // Serialize attributes
031                    setElement(holder, "CasesGroup", CasesGroup);
032            }
033            
034            public Expression getExpression() {
035                    return Expression;
036            }
037    
038            // Attributes
039            private List<CasesGroup> CasesGroup;
040    
041            // Accessors
042            public List<CasesGroup> getCasesGroup() {
043                    return CasesGroup;
044            }
045    
046            protected void acceptChildren(Visitor visitor) {
047                    super.acceptChildren(visitor);
048                    // Visiting non-text attributes
049                    new CollectionVisitable(CasesGroup, false).accept(visitor);
050            }
051    
052    }