Examples of SafeAppendable


Examples of co.jirm.core.util.SafeAppendable


public class ConditionVisitors {
  public static ConditionVisitor conditionVisitor(final Appendable appendable) {
   
    final SafeAppendable sb = new SafeAppendable(appendable);
   
    ConditionVisitor v = new ConditionVisitor() {
      private int depth = 0;
     
      @Override
      public void visitAnd(ImmutableList<ImmutableCondition> conditions, Parameters parameters) {
        depth++;
        doCondition(" AND ", conditions, parameters);
       
      }
      @Override
      public void visitOr(ImmutableList<ImmutableCondition> conditions, Parameters parameters) {
        depth++;
        doCondition(" OR ", conditions, parameters);
      }
     
      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
      public void visitSql(String sql, Parameters parameters) {
        sb.append(sql);
      }
    };
    return v;
  }
View Full Code Here

Examples of co.jirm.core.util.SafeAppendable

    return mp;
  }
 
  public static DeleteClauseVisitor clauseVisitor(final Appendable appendable) {

    final SafeAppendable sb = new SafeAppendable(appendable);
   
    SimpleClauseVisitor cv = new SimpleClauseVisitor() {
     
      AtomicBoolean first = new AtomicBoolean(true);
     
      /*
       * TODO take care of multiples and order.
       */
     
      @Override
      protected void doVisit(SqlDeleteClause<?> clause) {
        if (! appendStart(clause)) return;
        sb.append(clause.getSql());
      }
     
      @Override
      public void visit(DeleteWhereClauseBuilder<?> whereClauseBuilder) {
        if (! appendStart(whereClauseBuilder)) return;
        whereClauseBuilder.getCondition().accept(ConditionVisitors.conditionVisitor(sb.getAppendable()));
      }
     
      private boolean appendStart(DeleteClause<?> k) {
        if (k.isNoOp()) return false;
        if (first.get() ) {
          first.set(false);
        }
        else {
          sb.append(" ");
        }
        if (k.getType() != DeleteClauseType.CUSTOM)
          sb.append(k.getType().getSql()).append(" ");
        return true;
      }

    };
    return cv;
View Full Code Here

Examples of co.jirm.core.util.SafeAppendable

    return mp;
  }
 
  public static SelectClauseVisitor clauseVisitor(final Appendable appendable) {

    final SafeAppendable sb = new SafeAppendable(appendable);
   
    SimpleClauseVisitor cv = new SimpleClauseVisitor() {
     
      AtomicBoolean first = new AtomicBoolean(true);
     
      /*
       * TODO take care of multiples and order.
       */
     
      @Override
      protected void doVisit(SqlSelectClause<?> clause) {
        if (! appendStart(clause)) return;
        sb.append(clause.getSql());
      }
     
      @Override
      public void visit(SelectWhereClauseBuilder<?> whereClauseBuilder) {
        if (! appendStart(whereClauseBuilder)) return;
        whereClauseBuilder.getCondition().accept(ConditionVisitors.conditionVisitor(sb.getAppendable()));
      }
     
      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()).append(" ");
        return true;
      }

    };
    return cv;
View Full Code Here

Examples of co.jirm.core.util.SafeAppendable

    return mp;
  }
 
  public static UpdateClauseVisitor clauseVisitor(final Appendable appendable) {

    final SafeAppendable sb = new SafeAppendable(appendable);
   
    SimpleClauseVisitor cv = new SimpleClauseVisitor() {
     
      AtomicBoolean first = new AtomicBoolean(true);
     
      /*
       * TODO take care of multiples and order.
       */
     
      @Override
      protected void doVisit(SqlUpdateClause<?> clause) {
        if (! appendStart(clause)) return;
        sb.append(clause.getSql());
      }
     
      @Override
      public void visit(UpdateWhereClauseBuilder<?> whereClauseBuilder) {
        if (! appendStart(whereClauseBuilder)) return;
        whereClauseBuilder.getCondition().accept(ConditionVisitors.conditionVisitor(sb.getAppendable()));
      }
     
      private boolean appendStart(UpdateClause<?> k) {
        if (k.isNoOp()) return false;
        if (first.get() ) {
          first.set(false);
        }
        else {
          sb.append(" ");
        }
        if (k.getType() != UpdateClauseType.CUSTOM)
          sb.append(k.getType().getSql()).append(" ");
        return true;
      }

    };
    return cv;
View Full Code Here

Examples of co.jirm.core.util.SafeAppendable

  /*
   * TODO move this to writer package.
   */
  public static SelectClauseVisitor clauseVisitor(final Appendable appendable) {

    final SafeAppendable sb = new SafeAppendable(appendable);
   
    SimpleClauseVisitor cv = new SimpleClauseVisitor() {
     
      AtomicBoolean first = new AtomicBoolean(true);
     
      /*
       * TODO take care of multiples and order.
       */
     
      @Override
      protected void doVisit(SqlSelectClause<?> clause) {
        if (! appendStart(clause)) return;
        sb.append(clause.getSql());
      }
     
      @Override
      public void visit(SelectWhereClauseBuilder<?> whereClauseBuilder) {
        if (! appendStart(whereClauseBuilder)) return;
        whereClauseBuilder.getCondition().accept(ConditionVisitors.conditionVisitor(sb.getAppendable()));
      }
     
      @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());
      }

      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;
      }

    };
View Full Code Here

Examples of co.jirm.core.util.SafeAppendable

      sqlClause(builder, "WHERE", where, "(", ")", " AND ");
      return builder.toString();
    }

    public String sql(Appendable a) {
      SafeAppendable builder = new SafeAppendable(a);
      if (statementType == null) {
        return null;
      }

      String answer;
View Full Code Here

Examples of co.jirm.core.util.SafeAppendable

  /*
   * TODO move this to writer package.
   */
  public static SelectClauseVisitor clauseVisitor(final Appendable appendable) {

    final SafeAppendable sb = new SafeAppendable(appendable);
   
    SimpleClauseVisitor cv = new SimpleClauseVisitor() {
     
      AtomicBoolean first = new AtomicBoolean(true);
     
      /*
       * TODO take care of multiples and order.
       */
     
      @Override
      protected void doVisit(SqlSelectClause<?> clause) {
        if (! appendStart(clause)) return;
        sb.append(clause.getSql());
      }
     
      @Override
      public void visit(SelectWhereClauseBuilder<?> whereClauseBuilder) {
        if (! appendStart(whereClauseBuilder)) return;
        whereClauseBuilder.getCondition().accept(ConditionVisitors.conditionVisitor(sb.getAppendable()));
      }
     
      @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());
      }

      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()).append(" ");
        return true;
      }

    };
    return cv;
View Full Code Here

Examples of co.jirm.core.util.SafeAppendable


public class OrderByPartialVisitors {
 
  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;
        }
      }
    };
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.