Exemplo n.º 1
0
 /** 如果是1 = id的情况,转化为id = 1 */
 private static IFilter exchage(IFilter root) {
   IBooleanFilter bf = (IBooleanFilter) root;
   if (!FilterUtils.isConstValue(bf.getValue()) && FilterUtils.isConstValue(bf.getColumn())) {
     Object val = bf.getColumn();
     bf.setColumn(bf.getValue());
     bf.setValue(val);
     OPERATION newOp = bf.getOperation();
     switch (bf.getOperation()) {
       case GT:
         newOp = OPERATION.LT;
         break;
       case LT:
         newOp = OPERATION.GT;
         break;
       case GT_EQ:
         newOp = OPERATION.LT_EQ;
         break;
       case LT_EQ:
         newOp = OPERATION.GT_EQ;
         break;
       default:
         break;
     }
     bf.setOperation(newOp);
   }
   return bf;
 }
Exemplo n.º 2
0
  private static void findBooleanFilter(IBooleanFilter filter, Parameters parameters) {
    if (filter == null) {
      return;
    }

    findObject(filter.getColumn(), parameters);
    findObject(filter.getValue(), parameters);
    if (filter.getOperation() == OPERATION.IN) {
      List<Object> values = filter.getValues();
      if (values != null && !values.isEmpty()) {
        for (int i = 0; i < values.size(); i++) {
          findObject(values.get(i), parameters);
        }
      }
    }
  }
Exemplo n.º 3
0
  /**
   * 构造Range对象
   *
   * @param f
   * @return
   */
  protected Range getRange(IBooleanFilter f) {
    DataType type = getColumn(f).getDataType();

    if (type == null) {
      type = DataTypeUtil.getTypeOfObject(f.getValue());
    }

    switch (f.getOperation()) {
      case EQ:
        return new Range(null, type, getValue(f), getValue(f));
      case GT:
        return new Range(null, type, getValue(f), false, null, true);
      case GT_EQ:
        return new Range(null, type, getValue(f), true, null, true);
      case LT:
        return new Range(null, type, null, true, getValue(f), false);
      case LT_EQ:
        return new Range(null, type, null, true, getValue(f), true);
      default:
        return null;
    }
  }