From 07585a01edb07844758b28f638d5c984da058a05 Mon Sep 17 00:00:00 2001 From: redkale Date: Sat, 29 Jul 2023 20:20:23 +0800 Subject: [PATCH] =?UTF-8?q?Filter=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/redkale/source/FilterJoinNode.java | 5 +- .../java/org/redkale/source/FilterNode.java | 52 +++++++++---------- .../java/org/redkale/source/FilterValue.java | 43 ++++++++------- 3 files changed, 53 insertions(+), 47 deletions(-) diff --git a/src/main/java/org/redkale/source/FilterJoinNode.java b/src/main/java/org/redkale/source/FilterJoinNode.java index 6e1de21f1..a5d7e3d39 100644 --- a/src/main/java/org/redkale/source/FilterJoinNode.java +++ b/src/main/java/org/redkale/source/FilterJoinNode.java @@ -24,7 +24,7 @@ public class FilterJoinNode extends FilterNode { private Class joinClass; - private EntityInfo joinEntity; //在调用 createSQLJoin 和 isCacheUseable 时会注入 + private EntityInfo joinEntity; //在调用createSQLJoin和isCacheUseable时会注入 private String[] joinColumns; @@ -98,7 +98,8 @@ public class FilterJoinNode extends FilterNode { protected FilterNode any(final FilterNode node0, boolean signor) { Objects.requireNonNull(node0); if (!(node0 instanceof FilterJoinNode)) { - throw new IllegalArgumentException(this + (signor ? " or " : " and ") + " a node but " + String.valueOf(node0) + " is not a " + FilterJoinNode.class.getSimpleName()); + throw new IllegalArgumentException(this + (signor ? " or " : " and ") + " a node but " + + String.valueOf(node0) + " is not a " + FilterJoinNode.class.getSimpleName()); } final FilterJoinNode node = (FilterJoinNode) node0; if (this.nodes == null) { diff --git a/src/main/java/org/redkale/source/FilterNode.java b/src/main/java/org/redkale/source/FilterNode.java index 66ddb3366..f8aa04bcc 100644 --- a/src/main/java/org/redkale/source/FilterNode.java +++ b/src/main/java/org/redkale/source/FilterNode.java @@ -542,8 +542,8 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则 } if (express == FV_MOD || express == FV_DIV) { FilterValue fv = (FilterValue) val0; - return new StringBuilder().append(info.getSQLColumn(talis, column)).append(' ').append(express.value()).append(' ').append(fv.getOptvalue()) - .append(' ').append(fv.getExpress().value()).append(' ').append(fv.getDestvalue()); + return new StringBuilder().append(info.getSQLColumn(talis, column)).append(' ').append(express.value()).append(' ').append(fv.getFirst()) + .append(' ').append(fv.getExpress().value()).append(' ').append(fv.getSecond()); } final boolean fk = (val0 instanceof FilterKey); CharSequence val = fk ? info.getSQLColumn(talis, ((FilterKey) val0).getColumn()) : formatToString(express, info.getSQLValue(column, (Serializable) val0)); @@ -1201,12 +1201,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则 @Override public boolean test(T t) { - return (((Number) attr.get(t)).longValue() % fv0.getOptvalue().longValue()) == fv0.getDestvalue().longValue(); + return (((Number) attr.get(t)).longValue() % fv0.getFirst().longValue()) == fv0.getSecond().longValue(); } @Override public String toString() { - return field + " " + express.value() + " " + fv0.getOptvalue() + " " + fv0.getExpress().value() + " " + fv0.getDestvalue(); + return field + " " + express.value() + " " + fv0.getFirst() + " " + fv0.getExpress().value() + " " + fv0.getSecond(); } }; case NOTEQUAL: @@ -1214,12 +1214,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则 @Override public boolean test(T t) { - return (((Number) attr.get(t)).longValue() % fv0.getOptvalue().longValue()) != fv0.getDestvalue().longValue(); + return (((Number) attr.get(t)).longValue() % fv0.getFirst().longValue()) != fv0.getSecond().longValue(); } @Override public String toString() { - return field + " " + express.value() + " " + fv0.getOptvalue() + " " + fv0.getExpress().value() + " " + fv0.getDestvalue(); + return field + " " + express.value() + " " + fv0.getFirst() + " " + fv0.getExpress().value() + " " + fv0.getSecond(); } }; case GREATERTHAN: @@ -1227,12 +1227,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则 @Override public boolean test(T t) { - return (((Number) attr.get(t)).longValue() % fv0.getOptvalue().longValue()) > fv0.getDestvalue().longValue(); + return (((Number) attr.get(t)).longValue() % fv0.getFirst().longValue()) > fv0.getSecond().longValue(); } @Override public String toString() { - return field + " " + express.value() + " " + fv0.getOptvalue() + " " + fv0.getExpress().value() + " " + fv0.getDestvalue(); + return field + " " + express.value() + " " + fv0.getFirst() + " " + fv0.getExpress().value() + " " + fv0.getSecond(); } }; case LESSTHAN: @@ -1240,12 +1240,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则 @Override public boolean test(T t) { - return (((Number) attr.get(t)).longValue() % fv0.getOptvalue().longValue()) < fv0.getDestvalue().longValue(); + return (((Number) attr.get(t)).longValue() % fv0.getFirst().longValue()) < fv0.getSecond().longValue(); } @Override public String toString() { - return field + " " + express.value() + " " + fv0.getOptvalue() + " " + fv0.getExpress().value() + " " + fv0.getDestvalue(); + return field + " " + express.value() + " " + fv0.getFirst() + " " + fv0.getExpress().value() + " " + fv0.getSecond(); } }; case GREATERTHANOREQUALTO: @@ -1253,12 +1253,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则 @Override public boolean test(T t) { - return (((Number) attr.get(t)).longValue() % fv0.getOptvalue().longValue()) >= fv0.getDestvalue().longValue(); + return (((Number) attr.get(t)).longValue() % fv0.getFirst().longValue()) >= fv0.getSecond().longValue(); } @Override public String toString() { - return field + " " + express.value() + " " + fv0.getOptvalue() + " " + fv0.getExpress().value() + " " + fv0.getDestvalue(); + return field + " " + express.value() + " " + fv0.getFirst() + " " + fv0.getExpress().value() + " " + fv0.getSecond(); } }; case LESSTHANOREQUALTO: @@ -1266,12 +1266,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则 @Override public boolean test(T t) { - return (((Number) attr.get(t)).longValue() % fv0.getOptvalue().longValue()) <= fv0.getDestvalue().longValue(); + return (((Number) attr.get(t)).longValue() % fv0.getFirst().longValue()) <= fv0.getSecond().longValue(); } @Override public String toString() { - return field + " " + express.value() + " " + fv0.getOptvalue() + " " + fv0.getExpress().value() + " " + fv0.getDestvalue(); + return field + " " + express.value() + " " + fv0.getFirst() + " " + fv0.getExpress().value() + " " + fv0.getSecond(); } }; default: @@ -1285,12 +1285,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则 @Override public boolean test(T t) { - return (((Number) attr.get(t)).longValue() / fv1.getOptvalue().longValue()) == fv1.getDestvalue().longValue(); + return (((Number) attr.get(t)).longValue() / fv1.getFirst().longValue()) == fv1.getSecond().longValue(); } @Override public String toString() { - return field + " " + express.value() + " " + fv1.getOptvalue() + " " + fv1.getExpress().value() + " " + fv1.getDestvalue(); + return field + " " + express.value() + " " + fv1.getFirst() + " " + fv1.getExpress().value() + " " + fv1.getSecond(); } }; case NOTEQUAL: @@ -1298,12 +1298,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则 @Override public boolean test(T t) { - return (((Number) attr.get(t)).longValue() / fv1.getOptvalue().longValue()) != fv1.getDestvalue().longValue(); + return (((Number) attr.get(t)).longValue() / fv1.getFirst().longValue()) != fv1.getSecond().longValue(); } @Override public String toString() { - return field + " " + express.value() + " " + fv1.getOptvalue() + " " + fv1.getExpress().value() + " " + fv1.getDestvalue(); + return field + " " + express.value() + " " + fv1.getFirst() + " " + fv1.getExpress().value() + " " + fv1.getSecond(); } }; case GREATERTHAN: @@ -1311,12 +1311,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则 @Override public boolean test(T t) { - return (((Number) attr.get(t)).longValue() / fv1.getOptvalue().longValue()) > fv1.getDestvalue().longValue(); + return (((Number) attr.get(t)).longValue() / fv1.getFirst().longValue()) > fv1.getSecond().longValue(); } @Override public String toString() { - return field + " " + express.value() + " " + fv1.getOptvalue() + " " + fv1.getExpress().value() + " " + fv1.getDestvalue(); + return field + " " + express.value() + " " + fv1.getFirst() + " " + fv1.getExpress().value() + " " + fv1.getSecond(); } }; case LESSTHAN: @@ -1324,12 +1324,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则 @Override public boolean test(T t) { - return (((Number) attr.get(t)).longValue() / fv1.getOptvalue().longValue()) < fv1.getDestvalue().longValue(); + return (((Number) attr.get(t)).longValue() / fv1.getFirst().longValue()) < fv1.getSecond().longValue(); } @Override public String toString() { - return field + " " + express.value() + " " + fv1.getOptvalue() + " " + fv1.getExpress().value() + " " + fv1.getDestvalue(); + return field + " " + express.value() + " " + fv1.getFirst() + " " + fv1.getExpress().value() + " " + fv1.getSecond(); } }; case GREATERTHANOREQUALTO: @@ -1337,12 +1337,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则 @Override public boolean test(T t) { - return (((Number) attr.get(t)).longValue() / fv1.getOptvalue().longValue()) >= fv1.getDestvalue().longValue(); + return (((Number) attr.get(t)).longValue() / fv1.getFirst().longValue()) >= fv1.getSecond().longValue(); } @Override public String toString() { - return field + " " + express.value() + " " + fv1.getOptvalue() + " " + fv1.getExpress().value() + " " + fv1.getDestvalue(); + return field + " " + express.value() + " " + fv1.getFirst() + " " + fv1.getExpress().value() + " " + fv1.getSecond(); } }; case LESSTHANOREQUALTO: @@ -1350,12 +1350,12 @@ public class FilterNode { //FilterNode 不能实现Serializable接口, 否则 @Override public boolean test(T t) { - return (((Number) attr.get(t)).longValue() / fv1.getOptvalue().longValue()) <= fv1.getDestvalue().longValue(); + return (((Number) attr.get(t)).longValue() / fv1.getFirst().longValue()) <= fv1.getSecond().longValue(); } @Override public String toString() { - return field + " " + express.value() + " " + fv1.getOptvalue() + " " + fv1.getExpress().value() + " " + fv1.getDestvalue(); + return field + " " + express.value() + " " + fv1.getFirst() + " " + fv1.getExpress().value() + " " + fv1.getSecond(); } }; default: diff --git a/src/main/java/org/redkale/source/FilterValue.java b/src/main/java/org/redkale/source/FilterValue.java index 5b62bd33b..ac56a52b5 100644 --- a/src/main/java/org/redkale/source/FilterValue.java +++ b/src/main/java/org/redkale/source/FilterValue.java @@ -5,46 +5,51 @@ */ package org.redkale.source; +import org.redkale.convert.ConvertColumn; + /** * FilterValue主要用于复杂的表达式。
* 例如: col / 10 = 3 、MOD(col, 8) > 0 这些都不是单独一个数值能表达的,因此需要FilterValue 才构建 8 、 > 、0 组合值。 * *

* 详情见: https://redkale.org - * + * * @author zhangjx */ public class FilterValue implements java.io.Serializable { - private Number optvalue; + @ConvertColumn(index = 1) + private Number first; + @ConvertColumn(index = 2) private FilterExpress express; - private Number destvalue; + @ConvertColumn(index = 3) + private Number second; public FilterValue() { } - public FilterValue(Number optvalue, Number destvalue) { - this(optvalue, FilterExpress.EQUAL, destvalue); + public FilterValue(Number first, Number second) { + this(first, FilterExpress.EQUAL, second); } - public FilterValue(Number optvalue, FilterExpress express) { - this(optvalue, express, 0); + public FilterValue(Number first, FilterExpress express) { + this(first, express, 0); } - public FilterValue(Number optvalue, FilterExpress express, Number destvalue) { - this.optvalue = optvalue; + public FilterValue(Number first, FilterExpress express, Number second) { + this.first = first; this.express = express; - this.destvalue = destvalue; + this.second = second; } - public Number getOptvalue() { - return optvalue == null ? 0 : optvalue; + public Number getFirst() { + return first == null ? 0 : first; } - public void setOptvalue(Number optvalue) { - this.optvalue = optvalue; + public void setFirst(Number first) { + this.first = first; } public FilterExpress getExpress() { @@ -55,16 +60,16 @@ public class FilterValue implements java.io.Serializable { this.express = express; } - public Number getDestvalue() { - return destvalue == null ? 0 : destvalue; + public Number getSecond() { + return second == null ? 0 : second; } - public void setDestvalue(Number destvalue) { - this.destvalue = destvalue; + public void setSecond(Number second) { + this.second = second; } @Override public String toString() { - return FilterValue.class.getSimpleName() + "[optvalue=" + getOptvalue() + ", express=" + getExpress() + ", destvalue=" + getDestvalue() + "]"; + return FilterValue.class.getSimpleName() + "[first=" + getFirst() + ", express=" + getExpress() + ", second=" + getSecond() + "]"; } }