@Override public void visitSql(String sql, Parameters parameters) { sb.append(sql); } };
@Override protected void visit(String field, OrderByMode mode, boolean first) { if (! first ) { sa.append(", "); } sa.append(field); switch (mode) { case ASC: sa.append(" ").append("ASC"); break; case DESC: sa.append(" ").append("DESC"); break; case UNSPECIFIED: sa.append(" ").append("ASC"); break; } } };
private void doCondition(String op, ImmutableList<ImmutableCondition> conditions, Parameters parameters) { if (conditions.size() == 1) { sb.append(op); conditions.get(0).accept(this); } else { boolean top = depth == 1; if (! top) sb.append("( "); boolean first = true; for (ImmutableCondition c : conditions) { if (first) { first = false; c.accept(this); } else { sb.append(op); c.accept(this); } } if (! top) sb.append(" )"); } }
@Override protected void doVisit(SqlUpdateClause<?> clause) { if (! appendStart(clause)) return; sb.append(clause.getSql()); }
@Override protected void doVisit(SqlDeleteClause<?> clause) { if (! appendStart(clause)) return; sb.append(clause.getSql()); }
@Override protected void doVisit(SqlSelectClause<?> clause) { if (! appendStart(clause)) return; sb.append(clause.getSql()); }
private boolean appendStart(SelectClause<?> k) { if (k.isNoOp()) return false; if (first.get() ) { first.set(false); } else { sb.append(" "); } if (k.getType() != SelectClauseType.CUSTOM) { sb.append(k.getType().getSql()); if (k.getType() != SelectClauseType.FORUPDATE && k.getType() != SelectClauseType.FORSHARE) sb.append(" "); } return true; }
@Override public void visit(OrderByClauseBuilder<?> orderClauseBuilder) { if ( ! appendStart(orderClauseBuilder) ) return; if (nullToEmpty(orderClauseBuilder.getSql()).trim().isEmpty()) OrderByPartialVisitors.visitor(sb.getAppendable()).visit(orderClauseBuilder.getOrderByPartial()); else sb.append(orderClauseBuilder.getSql()); }