001 package org.mesopotamia.lang.java; 002 003 import org.mesopotamia.MesopotamiaException; 004 import org.mesopotamia.NodeData; 005 import org.mesopotamia.RepositoryLanguage; 006 import org.mesopotamia.Scan; 007 import org.w3c.dom.Element; 008 009 import biz.hammurapi.util.Visitable; 010 import biz.hammurapi.util.Visitor; 011 012 public class If extends JavaLanguageElement implements Statement { 013 014 public If(NodeData xData, Class<?> context, Scan scan, 015 RepositoryLanguage language, Object environment) throws MesopotamiaException { 016 super(xData, context, scan, language, environment); 017 018 // Select attributes 019 Expression = (Expression) selectSingleElement(Expression.class, "*[0]"); 020 Statement = (Statement) selectSingleElement(Statement.class, "*[1]"); 021 ElseStatement = (Statement) selectSingleElement(Statement.class, "*[2]"); 022 023 } 024 025 public void toDom(Element holder) { 026 super.toDom(holder); 027 028 // Serialize attributes 029 setElement(holder, "Expression", Expression); 030 setElement(holder, "Statement", Statement); 031 setElement(holder, "ElseStatement", ElseStatement); 032 } 033 034 // Attributes 035 private Expression Expression; 036 037 private Statement Statement; 038 039 private Statement ElseStatement; 040 041 // Accessors 042 public Expression getExpression() { 043 return Expression; 044 } 045 046 public Statement getStatement() { 047 return Statement; 048 } 049 050 public Statement getElseStatement() { 051 return ElseStatement; 052 } 053 054 protected void acceptChildren(Visitor visitor) { 055 super.acceptChildren(visitor); 056 // Visiting non-text attributes 057 if (Expression instanceof Visitable) { 058 ((Visitable) Expression).accept(visitor); 059 } 060 if (Statement instanceof Visitable) { 061 ((Visitable) Statement).accept(visitor); 062 } 063 if (ElseStatement instanceof Visitable) { 064 ((Visitable) ElseStatement).accept(visitor); 065 } 066 } 067 068 }