diff --git a/src/main/java/org/redkale/source/ColumnExpNode.java b/src/main/java/org/redkale/source/ColumnExpNode.java index 3ed73050c..ba581312d 100644 --- a/src/main/java/org/redkale/source/ColumnExpNode.java +++ b/src/main/java/org/redkale/source/ColumnExpNode.java @@ -38,7 +38,7 @@ public class ColumnExpNode implements ColumnNode { public ColumnExpNode() { } - protected ColumnExpNode(Serializable left, ColumnExpress express, Serializable right) { + public ColumnExpNode(Serializable left, ColumnExpress express, Serializable right) { if (express == null) { throw new IllegalArgumentException("express cannot be null"); } @@ -72,38 +72,106 @@ public class ColumnExpNode implements ColumnNode { return (ColumnNode) value; } - public static ColumnExpNode create(Serializable left, ColumnExpress express, Serializable right) { - return new ColumnExpNode(left, express, right); - } - + /** + * @see org.redkale.source.ColumnNodes#mov(java.lang.String) + * + * @param left Serializable + * + * @return ColumnExpNode + * @deprecated 2.8.0 + */ + @Deprecated(since = "2.8.0") public static ColumnExpNode mov(String left) { return new ColumnExpNode(left, MOV, null); } + /** + * @see org.redkale.source.ColumnNodes#inc(java.io.Serializable, java.io.Serializable) + * @param left Serializable + * @param right Serializable + * + * @return ColumnExpNode + * @deprecated 2.8.0 + */ + @Deprecated(since = "2.8.0") public static ColumnExpNode inc(Serializable left, Serializable right) { return new ColumnExpNode(left, INC, right); } + /** + * @see org.redkale.source.ColumnNodes#dec(java.io.Serializable, java.io.Serializable) + * @param left Serializable + * @param right Serializable + * + * @return ColumnExpNode + * @deprecated 2.8.0 + */ + @Deprecated(since = "2.8.0") public static ColumnExpNode dec(Serializable left, Serializable right) { return new ColumnExpNode(left, DEC, right); } + /** + * @see org.redkale.source.ColumnNodes#mul(java.io.Serializable, java.io.Serializable) + * @param left Serializable + * @param right Serializable + * + * @return ColumnExpNode + * @deprecated 2.8.0 + */ + @Deprecated(since = "2.8.0") public static ColumnExpNode mul(Serializable left, Serializable right) { return new ColumnExpNode(left, MUL, right); } + /** + * @see org.redkale.source.ColumnNodes#div(java.io.Serializable, java.io.Serializable) + * @param left Serializable + * @param right Serializable + * + * @return ColumnExpNode + * @deprecated 2.8.0 + */ + @Deprecated(since = "2.8.0") public static ColumnExpNode div(Serializable left, Serializable right) { return new ColumnExpNode(left, DIV, right); } + /** + * @see org.redkale.source.ColumnNodes#mod(java.io.Serializable, java.io.Serializable) + * @param left Serializable + * @param right Serializable + * + * @return ColumnExpNode + * @deprecated 2.8.0 + */ + @Deprecated(since = "2.8.0") public static ColumnExpNode mod(Serializable left, Serializable right) { return new ColumnExpNode(left, MOD, right); } + /** + * @see org.redkale.source.ColumnNodes#and(java.io.Serializable, java.io.Serializable) + * @param left Serializable + * @param right Serializable + * + * @return ColumnExpNode + * @deprecated 2.8.0 + */ + @Deprecated(since = "2.8.0") public static ColumnExpNode and(Serializable left, Serializable right) { return new ColumnExpNode(left, AND, right); } + /** + * @see org.redkale.source.ColumnNodes#orr(java.io.Serializable, java.io.Serializable) + * @param left Serializable + * @param right Serializable + * + * @return ColumnExpNode + * @deprecated 2.8.0 + */ + @Deprecated(since = "2.8.0") public static ColumnExpNode orr(Serializable left, Serializable right) { return new ColumnExpNode(left, ORR, right); } diff --git a/src/main/java/org/redkale/source/ColumnFuncNode.java b/src/main/java/org/redkale/source/ColumnFuncNode.java index a4286e1da..6fab7710c 100644 --- a/src/main/java/org/redkale/source/ColumnFuncNode.java +++ b/src/main/java/org/redkale/source/ColumnFuncNode.java @@ -28,7 +28,7 @@ public class ColumnFuncNode implements ColumnNode { public ColumnFuncNode() { } - protected ColumnFuncNode(FilterFunc func, Serializable node) { + public ColumnFuncNode(FilterFunc func, Serializable node) { this.func = func; this.value = createColumnNode(node); } @@ -47,30 +47,74 @@ public class ColumnFuncNode implements ColumnNode { } } - public static ColumnFuncNode create(FilterFunc func, Serializable node) { - return new ColumnFuncNode(func, node); - } - + /** + * @see org.redkale.source.ColumnNodes#avg(java.io.Serializable) + * @param node Serializable + * + * @return ColumnFuncNode + * @deprecated 2.8.0 + */ + @Deprecated(since = "2.8.0") public static ColumnFuncNode avg(Serializable node) { return new ColumnFuncNode(FilterFunc.AVG, node); } + /** + * @see org.redkale.source.ColumnNodes#count(java.io.Serializable) + * @param node Serializable + * + * @return ColumnFuncNode + * @deprecated 2.8.0 + */ + @Deprecated(since = "2.8.0") public static ColumnFuncNode count(Serializable node) { return new ColumnFuncNode(FilterFunc.COUNT, node); } + /** + * @see org.redkale.source.ColumnNodes#distinctCount(java.io.Serializable) + * @param node Serializable + * + * @return ColumnFuncNode + * @deprecated 2.8.0 + */ + @Deprecated(since = "2.8.0") public static ColumnFuncNode distinctCount(Serializable node) { return new ColumnFuncNode(FilterFunc.DISTINCTCOUNT, node); } + /** + * @see org.redkale.source.ColumnNodes#max(java.io.Serializable) + * @param node Serializable + * + * @return ColumnFuncNode + * @deprecated 2.8.0 + */ + @Deprecated(since = "2.8.0") public static ColumnFuncNode max(Serializable node) { return new ColumnFuncNode(FilterFunc.MAX, node); } + /** + * @see org.redkale.source.ColumnNodes#min(java.io.Serializable) + * @param node Serializable + * + * @return ColumnFuncNode + * @deprecated 2.8.0 + */ + @Deprecated(since = "2.8.0") public static ColumnFuncNode min(Serializable node) { return new ColumnFuncNode(FilterFunc.MIN, node); } + /** + * @see org.redkale.source.ColumnNodes#sum(java.io.Serializable) + * @param node Serializable + * + * @return ColumnFuncNode + * @deprecated 2.8.0 + */ + @Deprecated(since = "2.8.0") public static ColumnFuncNode sum(Serializable node) { return new ColumnFuncNode(FilterFunc.SUM, node); } diff --git a/src/main/java/org/redkale/source/ColumnNameNode.java b/src/main/java/org/redkale/source/ColumnNameNode.java index 4753108a5..4ce4f5641 100644 --- a/src/main/java/org/redkale/source/ColumnNameNode.java +++ b/src/main/java/org/redkale/source/ColumnNameNode.java @@ -28,10 +28,6 @@ public class ColumnNameNode implements ColumnNode { this.column = column; } - public static ColumnNameNode create(String column) { - return new ColumnNameNode(column); - } - public String getColumn() { return column; } diff --git a/src/main/java/org/redkale/source/ColumnNodes.java b/src/main/java/org/redkale/source/ColumnNodes.java new file mode 100644 index 000000000..c48bb9696 --- /dev/null +++ b/src/main/java/org/redkale/source/ColumnNodes.java @@ -0,0 +1,100 @@ +/* + * + */ +package org.redkale.source; + +import java.io.Serializable; +import static org.redkale.source.ColumnExpress.*; + +/** + * 创建ColumnNode的工具类 + * + *
+ * 详情见: https://redkale.org
+ *
+ * @author zhangjx
+ * @since 2.8.0
+ */
+public abstract class ColumnNodes {
+
+ private ColumnNodes() {
+ //do nothing
+ }
+
+ public static ColumnNameNode column(String column) {
+ return new ColumnNameNode(column);
+ }
+
+ public static ColumnNumberNode number(Number value) {
+ return new ColumnNumberNode(value);
+ }
+
+ public static ColumnStringNode string(String value) {
+ return new ColumnStringNode(value);
+ }
+
+ public static ColumnFuncNode func(FilterFunc func, Serializable node) {
+ return new ColumnFuncNode(func, node);
+ }
+
+ public static ColumnFuncNode avg(Serializable node) {
+ return new ColumnFuncNode(FilterFunc.AVG, node);
+ }
+
+ public static ColumnFuncNode count(Serializable node) {
+ return new ColumnFuncNode(FilterFunc.COUNT, node);
+ }
+
+ public static ColumnFuncNode distinctCount(Serializable node) {
+ return new ColumnFuncNode(FilterFunc.DISTINCTCOUNT, node);
+ }
+
+ public static ColumnFuncNode max(Serializable node) {
+ return new ColumnFuncNode(FilterFunc.MAX, node);
+ }
+
+ public static ColumnFuncNode min(Serializable node) {
+ return new ColumnFuncNode(FilterFunc.MIN, node);
+ }
+
+ public static ColumnFuncNode sum(Serializable node) {
+ return new ColumnFuncNode(FilterFunc.SUM, node);
+ }
+
+ public static ColumnExpNode exp(Serializable left, ColumnExpress express, Serializable right) {
+ return new ColumnExpNode(left, express, right);
+ }
+
+ public static ColumnExpNode mov(String left) {
+ return new ColumnExpNode(left, MOV, null);
+ }
+
+ public static ColumnExpNode inc(Serializable left, Serializable right) {
+ return new ColumnExpNode(left, INC, right);
+ }
+
+ public static ColumnExpNode dec(Serializable left, Serializable right) {
+ return new ColumnExpNode(left, DEC, right);
+ }
+
+ public static ColumnExpNode mul(Serializable left, Serializable right) {
+ return new ColumnExpNode(left, MUL, right);
+ }
+
+ public static ColumnExpNode div(Serializable left, Serializable right) {
+ return new ColumnExpNode(left, DIV, right);
+ }
+
+ public static ColumnExpNode mod(Serializable left, Serializable right) {
+ return new ColumnExpNode(left, MOD, right);
+ }
+
+ public static ColumnExpNode and(Serializable left, Serializable right) {
+ return new ColumnExpNode(left, AND, right);
+ }
+
+ public static ColumnExpNode orr(Serializable left, Serializable right) {
+ return new ColumnExpNode(left, ORR, right);
+ }
+
+}
diff --git a/src/main/java/org/redkale/source/ColumnNumberNode.java b/src/main/java/org/redkale/source/ColumnNumberNode.java
index f1775bf5b..16f1206e0 100644
--- a/src/main/java/org/redkale/source/ColumnNumberNode.java
+++ b/src/main/java/org/redkale/source/ColumnNumberNode.java
@@ -28,10 +28,6 @@ public class ColumnNumberNode implements ColumnNode {
this.value = value;
}
- public static ColumnNumberNode create(Number value) {
- return new ColumnNumberNode(value);
- }
-
public Number getValue() {
return value;
}
diff --git a/src/main/java/org/redkale/source/ColumnStringNode.java b/src/main/java/org/redkale/source/ColumnStringNode.java
index 581ce897a..77aa96966 100644
--- a/src/main/java/org/redkale/source/ColumnStringNode.java
+++ b/src/main/java/org/redkale/source/ColumnStringNode.java
@@ -28,10 +28,6 @@ public class ColumnStringNode implements ColumnNode {
this.value = value;
}
- public static ColumnStringNode create(String value) {
- return new ColumnStringNode(value);
- }
-
public String getValue() {
return value;
}
diff --git a/src/main/java/org/redkale/util/OneOrList.java b/src/main/java/org/redkale/util/OneOrList.java
index d90452e78..2c7dd40a5 100644
--- a/src/main/java/org/redkale/util/OneOrList.java
+++ b/src/main/java/org/redkale/util/OneOrList.java
@@ -3,6 +3,7 @@
package org.redkale.util;
import java.lang.reflect.*;
+import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.List;
import org.redkale.convert.*;
@@ -21,18 +22,27 @@ import org.redkale.convert.json.*;
*/
public class OneOrList