use of org.seasar.doma.internal.jdbc.sql.node.ElseNode in project doma by domaframework.
the class NodePreparedSqlBuilderTest method testElseNode.
@Test
public void testElseNode() {
SelectClauseNode select = new SelectClauseNode("select");
select.appendNode(OtherNode.of(" * "));
FromClauseNode from = new FromClauseNode("from");
from.appendNode(WhitespaceNode.of(" "));
from.appendNode(new WordNode("aaa"));
from.appendNode(WhitespaceNode.of(" "));
WhereClauseNode where = new WhereClauseNode("where");
where.appendNode(WhitespaceNode.of(" "));
IfNode ifNode = new IfNode(location, "false", "/*if false*/");
ifNode.appendNode(new WordNode("bbb"));
ifNode.appendNode(OtherNode.of(" = "));
ifNode.appendNode(new WordNode("ccc"));
ElseNode elseNode = new ElseNode("/*else*/");
elseNode.appendNode(new WordNode("ddd"));
elseNode.appendNode(OtherNode.of(" = "));
elseNode.appendNode(new WordNode("eee"));
EndNode endNode = new EndNode("/*end*/");
IfBlockNode ifBlock = new IfBlockNode();
ifBlock.setIfNode(ifNode);
ifBlock.setElseNode(elseNode);
ifBlock.setEndNode(endNode);
where.appendNode(ifBlock);
SelectStatementNode statement = new SelectStatementNode();
statement.setSelectClauseNode(select);
statement.setFromClauseNode(from);
statement.setWhereClauseNode(where);
AnonymousNode root = new AnonymousNode();
root.appendNode(statement);
ExpressionEvaluator evaluator = new ExpressionEvaluator();
NodePreparedSqlBuilder builder = new NodePreparedSqlBuilder(config, SqlKind.SELECT, "dummyPath", evaluator, SqlLogType.FORMATTED);
PreparedSql sql = builder.build(statement, Function.identity());
assertEquals("select * from aaa where ddd = eee", sql.getRawSql());
}
use of org.seasar.doma.internal.jdbc.sql.node.ElseNode in project doma by domaframework.
the class SqlParser method parseElseBlockComment.
protected void parseElseBlockComment() {
if (!isInIfBlockNode()) {
throw new JdbcException(Message.DOMA2140, sql, tokenizer.getLineNumber(), tokenizer.getPosition());
}
removeNodesTo(IfBlockNode.class);
IfBlockNode ifBlockNode = peek();
if (ifBlockNode.isElseNodeExistent()) {
throw new JdbcException(Message.DOMA2141, sql, tokenizer.getLineNumber(), tokenizer.getPosition());
}
ElseNode node = new ElseNode(token);
ifBlockNode.setElseNode(node);
push(node);
}
Aggregations