增加ColumnNodes

This commit is contained in:
redkale
2023-11-18 08:52:08 +08:00
parent c82f454e42
commit 8f913dff0b
7 changed files with 235 additions and 25 deletions

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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;
}

View File

@@ -0,0 +1,100 @@
/*
*
*/
package org.redkale.source;
import java.io.Serializable;
import static org.redkale.source.ColumnExpress.*;
/**
* 创建ColumnNode的工具类
*
* <p>
* 详情见: 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);
}
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

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