提交 6f5c3438 编写于 作者: G gaoht

Refactor code

上级 2921a56c
......@@ -64,12 +64,11 @@ public final class SQLParseEngine {
visitor.setParameters(parameters);
sqlVisitor.getParseContext().setShardingColumns(shardingColumns);
sqlStatement.accept(visitor);
SQLParsedResult result;
SQLParsedResult result = sqlVisitor.getParseContext().getParsedResult();
if (sqlVisitor.getParseContext().isHasOrCondition()) {
result = new OrParser(sqlStatement, visitor).parse(sqlVisitor.getParseContext().getParsedResult());
new OrParser(sqlStatement, visitor).fillConditionContext(result);
} else {
sqlVisitor.getParseContext().mergeCurrentConditionContext();
result = sqlVisitor.getParseContext().getParsedResult();
}
log.debug("Parsed SQL result: {}", result);
log.debug("Parsed SQL: {}", sqlVisitor.getSQLBuilder());
......
......@@ -144,6 +144,11 @@ public class SQLBuilder implements Appendable {
return result.toString();
}
/**
* 复制构建器.
*
* @return 新的构建器
*/
public SQLBuilder cloneBuilder() {
SQLBuilder result = new SQLBuilder();
for (Object each : segments) {
......
......@@ -40,17 +40,15 @@ public final class OrParser {
}
/**
*  解析SQL.
*  填充条件上下文.
*
* @return SQL解析结果
* @param parsedResult 初步解析结果
*/
public SQLParsedResult parse(final SQLParsedResult parsedResult) {
public void fillConditionContext(final SQLParsedResult parsedResult) {
Optional<AbstractOrASTNode> rootASTNode = orVisitor.visitHandle(sqlStatement);
if (rootASTNode.isPresent()) {
parsedResult.getConditionContexts().clear();
parsedResult.getConditionContexts().addAll(rootASTNode.get().getCondition());
}
return parsedResult;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册