public static OrderByPartialVisitor visitor(final Appendable appendable) { final SafeAppendable sa = new SafeAppendable(appendable); return new OrderByPartialVisitor() { @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; } } }; }
@Override public void visitSql(String sql, Parameters parameters) { sb.append(sql); } };
@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()); }
@Override public void visit(SelectWhereClauseBuilder<?> whereClauseBuilder) { if (! appendStart(whereClauseBuilder)) return; whereClauseBuilder.getCondition().accept(ConditionVisitors.conditionVisitor(sb.getAppendable())); }
@Override public void visit(UpdateWhereClauseBuilder<?> whereClauseBuilder) { if (! appendStart(whereClauseBuilder)) return; whereClauseBuilder.getCondition().accept(ConditionVisitors.conditionVisitor(sb.getAppendable())); }
@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; } } };
public static ConditionVisitor conditionVisitor(final Appendable appendable) { final SafeAppendable sb = new SafeAppendable(appendable);
@Override public void visit(DeleteWhereClauseBuilder<?> whereClauseBuilder) { if (! appendStart(whereClauseBuilder)) return; whereClauseBuilder.getCondition().accept(ConditionVisitors.conditionVisitor(sb.getAppendable())); }
public static DeleteClauseVisitor clauseVisitor(final Appendable appendable) { final SafeAppendable sb = new SafeAppendable(appendable);
public static UpdateClauseVisitor clauseVisitor(final Appendable appendable) { final SafeAppendable sb = new SafeAppendable(appendable);
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(" )"); } }
public static SelectClauseVisitor clauseVisitor(final Appendable appendable) { final SafeAppendable sb = new SafeAppendable(appendable);
@Override protected void doVisit(SqlUpdateClause<?> clause) { if (! appendStart(clause)) return; sb.append(clause.getSql()); }
@Override protected void doVisit(SqlSelectClause<?> clause) { if (! appendStart(clause)) return; sb.append(clause.getSql()); }
@Override protected void doVisit(SqlDeleteClause<?> 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; }