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 implements java.io.Serializable { - public static final Type TYPE_OL_LONG = new TypeToken>() { - }.getType(); - public static final Type TYPE_OL_STRING = new TypeToken>() { }.getType(); public static final Type TYPE_OL_INTEGER = new TypeToken>() { }.getType(); + public static final Type TYPE_OL_LONG = new TypeToken>() { + }.getType(); + + public static final Type TYPE_OL_FLOAT = new TypeToken>() { + }.getType(); + + public static final Type TYPE_OL_DOUBLE = new TypeToken>() { + }.getType(); + public static final Type TYPE_OL_BIGINTEGER = new TypeToken>() { }.getType(); + public static final Type TYPE_OL_BIGDECIMAL = new TypeToken>() { + }.getType(); + @ConvertColumn(index = 1) protected T one;