/** 如果是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; }
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); } } } }
/** * 构造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; } }