优化DataSource的异步接口
This commit is contained in:
@@ -73,7 +73,6 @@ public final class SncpClient {
|
||||
for (int i = 0; i < params.length; i++) {
|
||||
if (AsyncHandler.class.isAssignableFrom(params[i])) {
|
||||
handlerFuncIndex = i;
|
||||
this.paramTypes[i] = AsyncHandler.class;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -107,6 +106,15 @@ public final class SncpClient {
|
||||
this.handlerFuncParamIndex = handlerFuncIndex;
|
||||
this.handlerAttachParamIndex = handlerAttachIndex;
|
||||
this.paramAttrs = hasattr ? atts : null;
|
||||
if (handlerFuncIndex > 0) {
|
||||
Type handlerFuncType = this.paramTypes[handlerFuncIndex];
|
||||
if (handlerFuncType instanceof ParameterizedType) {
|
||||
ParameterizedType handlerpt = (ParameterizedType) handlerFuncType;
|
||||
//后续可以添加验证, AsyncHandler的第一个泛型必须与方法返回值类型相同, 第二个泛型必须与@RpcAttachment的参数类型相同
|
||||
//需要考虑AsyncHandler的子类形态, 有可能0、1、2、。。。多个泛型
|
||||
}
|
||||
this.paramTypes[handlerFuncIndex] = AsyncHandler.class;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -225,8 +225,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Number getNumberResult(final AsyncHandler<Number, FilterNode> handler, final Class entityClass, final FilterFunc func, final String column, final FilterBean bean) {
|
||||
return getNumberResult(handler, entityClass, func, column, FilterNodeBean.createFilterNode(bean));
|
||||
public <B extends FilterBean> Number getNumberResult(final AsyncHandler<Number, B> handler, final Class entityClass, final FilterFunc func, final String column, @RpcAttachment final B bean) {
|
||||
Number rs = source.getNumberResult(entityClass, func, column, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -259,8 +261,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Number getNumberResult(final AsyncHandler<Number, String> handler, final Class entityClass, final FilterFunc func, final Number defVal, @RpcAttachment final String column, final FilterBean bean) {
|
||||
return getNumberResult(handler, entityClass, func, defVal, column, FilterNodeBean.createFilterNode(bean));
|
||||
public Number getNumberResult(final AsyncHandler<Number, String> handler, final Class entityClass, final FilterFunc func, final Number defVal, @RpcAttachment final String column, final FilterBean bean) {
|
||||
Number rs = source.getNumberResult(entityClass, func, defVal, column, bean);
|
||||
if (handler != null) handler.completed(rs, column);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -293,8 +297,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <N extends Number> Map<String, N> getNumberMap(final AsyncHandler<Map<String, N>, FilterNode> handler, final Class entityClass, @RpcAttachment final FilterBean bean, final FilterFuncColumn... columns) {
|
||||
return getNumberMap(handler, entityClass, FilterNodeBean.createFilterNode(bean), columns);
|
||||
public <N extends Number, B extends FilterBean> Map<String, N> getNumberMap(final AsyncHandler<Map<String, N>, B> handler, final Class entityClass, @RpcAttachment final B bean, final FilterFuncColumn... columns) {
|
||||
Map<String, N> rs = source.getNumberMap(entityClass, bean, columns);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -327,8 +333,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(final AsyncHandler<Map<K, N>, String> handler, final Class<T> entityClass, @RpcAttachment final String keyColumn, final FilterFunc func, final String funcColumn, final FilterBean bean) {
|
||||
return queryColumnMap(handler, entityClass, keyColumn, func, funcColumn, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(final AsyncHandler<Map<K, N>, String> handler, final Class<T> entityClass, @RpcAttachment final String keyColumn, final FilterFunc func, final String funcColumn, final FilterBean bean) {
|
||||
Map<K, N> rs = source.queryColumnMap(entityClass, keyColumn, func, funcColumn, bean);
|
||||
if (handler != null) handler.completed(rs, keyColumn);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -385,8 +393,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> T find(final AsyncHandler<T, FilterNode> handler, final Class<T> clazz, final FilterBean bean) {
|
||||
return find(handler, clazz, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> T find(final AsyncHandler<T, B> handler, final Class<T> clazz, @RpcAttachment final B bean) {
|
||||
T rs = source.find(clazz, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -407,8 +417,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> T find(final AsyncHandler<T, FilterNode> handler, final Class<T> clazz, final SelectColumn selects, final FilterBean bean) {
|
||||
return find(handler, clazz, selects, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> T find(final AsyncHandler<T, B> handler, final Class<T> clazz, final SelectColumn selects, @RpcAttachment final B bean) {
|
||||
T rs = source.find(clazz, selects, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -441,8 +453,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> Serializable findColumn(final AsyncHandler<Serializable, FilterNode> handler, final Class<T> clazz, final String column, final FilterBean bean) {
|
||||
return findColumn(handler, clazz, column, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> Serializable findColumn(final AsyncHandler<Serializable, B> handler, final Class<T> clazz, final String column, @RpcAttachment final B bean) {
|
||||
Serializable rs = source.findColumn(clazz, column, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -475,8 +489,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> Serializable findColumn(final AsyncHandler<Serializable, FilterNode> handler, final Class<T> clazz, final String column, final Serializable defValue, final FilterBean bean) {
|
||||
return findColumn(handler, clazz, column, defValue, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> Serializable findColumn(final AsyncHandler<Serializable, B> handler, final Class<T> clazz, final String column, final Serializable defValue, @RpcAttachment final B bean) {
|
||||
Serializable rs = source.findColumn(clazz, column, defValue, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -509,8 +525,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> boolean exists(final AsyncHandler<Boolean, FilterNode> handler, final Class<T> clazz, final FilterBean bean) {
|
||||
return exists(handler, clazz, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> boolean exists(final AsyncHandler<Boolean, B> handler, final Class<T> clazz, @RpcAttachment final B bean) {
|
||||
boolean rs = source.exists(clazz, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -543,8 +561,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T, V extends Serializable> HashSet<V> queryColumnSet(final AsyncHandler<HashSet<V>, FilterNode> handler, final String selectedColumn, final Class<T> clazz, final FilterBean bean) {
|
||||
return queryColumnSet(handler, selectedColumn, clazz, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, V extends Serializable, B extends FilterBean> HashSet<V> queryColumnSet(final AsyncHandler<HashSet<V>, B> handler, final String selectedColumn, final Class<T> clazz, @RpcAttachment final B bean) {
|
||||
HashSet<V> rs = source.queryColumnSet(selectedColumn, clazz, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -577,8 +597,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T, V extends Serializable> List<V> queryColumnList(final AsyncHandler<List<V>, FilterNode> handler, String selectedColumn, Class<T> clazz, FilterBean bean) {
|
||||
return queryColumnList(handler, selectedColumn, clazz, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, V extends Serializable, B extends FilterBean> List<V> queryColumnList(final AsyncHandler<List<V>, B> handler, String selectedColumn, Class<T> clazz, @RpcAttachment final B bean) {
|
||||
List<V> rs = source.queryColumnList(selectedColumn, clazz, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -599,8 +621,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T, V extends Serializable> List<V> queryColumnList(final AsyncHandler<List<V>, FilterNode> handler, String selectedColumn, Class<T> clazz, Flipper flipper, FilterBean bean) {
|
||||
return queryColumnList(handler, selectedColumn, clazz, flipper, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, V extends Serializable, B extends FilterBean> List<V> queryColumnList(final AsyncHandler<List<V>, B> handler, String selectedColumn, Class<T> clazz, Flipper flipper, @RpcAttachment final B bean) {
|
||||
List<V> rs = source.queryColumnList(selectedColumn, clazz, flipper, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -621,8 +645,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T, V extends Serializable> Sheet<V> queryColumnSheet(final AsyncHandler<Sheet<V>, FilterNode> handler, String selectedColumn, Class<T> clazz, Flipper flipper, FilterBean bean) {
|
||||
return queryColumnSheet(handler, selectedColumn, clazz, flipper, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, V extends Serializable, B extends FilterBean> Sheet<V> queryColumnSheet(final AsyncHandler<Sheet<V>, B> handler, String selectedColumn, Class<T> clazz, Flipper flipper, @RpcAttachment B bean) {
|
||||
Sheet<V> rs = source.queryColumnSheet(selectedColumn, clazz, flipper, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -655,8 +681,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> List<T> queryList(final AsyncHandler<List<T>, FilterNode> handler, final Class<T> clazz, final FilterBean bean) {
|
||||
return queryList(handler, clazz, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> List<T> queryList(final AsyncHandler<List<T>, B> handler, final Class<T> clazz, @RpcAttachment final B bean) {
|
||||
List<T> rs = source.queryList(clazz, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -677,8 +705,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> List<T> queryList(final AsyncHandler<List<T>, FilterNode> handler, final Class<T> clazz, final SelectColumn selects, final FilterBean bean) {
|
||||
return queryList(handler, clazz, selects, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> List<T> queryList(final AsyncHandler<List<T>, B> handler, final Class<T> clazz, final SelectColumn selects, @RpcAttachment final B bean) {
|
||||
List<T> rs = source.queryList(clazz, selects, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -711,8 +741,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> List<T> queryList(final AsyncHandler<List<T>, FilterNode> handler, final Class<T> clazz, final Flipper flipper, final FilterBean bean) {
|
||||
return queryList(handler, clazz, flipper, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> List<T> queryList(final AsyncHandler<List<T>, B> handler, final Class<T> clazz, final Flipper flipper, @RpcAttachment final B bean) {
|
||||
List<T> rs = source.queryList(clazz, flipper, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -733,8 +765,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> List<T> queryList(final AsyncHandler<List<T>, FilterNode> handler, final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final FilterBean bean) {
|
||||
return queryList(handler, clazz, selects, flipper, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> List<T> queryList(final AsyncHandler<List<T>, B> handler, final Class<T> clazz, final SelectColumn selects, final Flipper flipper, @RpcAttachment final B bean) {
|
||||
List<T> rs = source.queryList(clazz, selects, flipper, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -755,8 +789,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> Sheet<T> querySheet(final AsyncHandler<Sheet<T>, FilterNode> handler, final Class<T> clazz, final Flipper flipper, final FilterBean bean) {
|
||||
return querySheet(handler, clazz, flipper, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> Sheet<T> querySheet(final AsyncHandler<Sheet<T>, B> handler, final Class<T> clazz, final Flipper flipper, @RpcAttachment final B bean) {
|
||||
Sheet<T> rs = source.querySheet(clazz, flipper, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -777,8 +813,10 @@ public class DataSourceService implements DataSource, Service, AutoCloseable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> Sheet<T> querySheet(final AsyncHandler<Sheet<T>, FilterNode> handler, final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final FilterBean bean) {
|
||||
return querySheet(handler, clazz, selects, flipper, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> Sheet<T> querySheet(final AsyncHandler<Sheet<T>, B> handler, final Class<T> clazz, final SelectColumn selects, final Flipper flipper, @RpcAttachment final B bean) {
|
||||
Sheet<T> rs = source.querySheet(clazz, selects, flipper, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1308,8 +1308,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Number getNumberResult(final AsyncHandler<Number, FilterNode> handler, final Class entityClass, final FilterFunc func, final String column, final FilterBean bean) {
|
||||
return getNumberResult(handler, entityClass, func, column, FilterNodeBean.createFilterNode(bean));
|
||||
public <B extends FilterBean> Number getNumberResult(final AsyncHandler<Number, B> handler, final Class entityClass, final FilterFunc func, final String column, final B bean) {
|
||||
Number rs = getNumberResult(entityClass, func, column, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1342,7 +1344,7 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Number getNumberResult(final AsyncHandler<Number, String> handler, final Class entityClass, final FilterFunc func, final Number defVal, final String column, final FilterBean bean) {
|
||||
public Number getNumberResult(final AsyncHandler<Number, String> handler, final Class entityClass, final FilterFunc func, final Number defVal, final String column, final FilterBean bean) {
|
||||
return getNumberResult(handler, entityClass, func, defVal, column, FilterNodeBean.createFilterNode(bean));
|
||||
}
|
||||
|
||||
@@ -1364,8 +1366,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <N extends Number> Map<String, N> getNumberMap(final AsyncHandler<Map<String, N>, FilterNode> handler, final Class entityClass, final FilterBean bean, final FilterFuncColumn... columns) {
|
||||
return getNumberMap(handler, entityClass, FilterNodeBean.createFilterNode(bean), columns);
|
||||
public <N extends Number, B extends FilterBean> Map<String, N> getNumberMap(final AsyncHandler<Map<String, N>, B> handler, final Class entityClass, final B bean, final FilterFuncColumn... columns) {
|
||||
Map<String, N> rs = getNumberMap(entityClass, bean, columns);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1501,7 +1505,7 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(final AsyncHandler<Map<K, N>, String> handler, final Class<T> entityClass, final String keyColumn, final FilterFunc func, final String funcColumn, final FilterBean bean) {
|
||||
public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(final AsyncHandler<Map<K, N>, String> handler, final Class<T> entityClass, final String keyColumn, final FilterFunc func, final String funcColumn, final FilterBean bean) {
|
||||
return queryColumnMap(handler, entityClass, keyColumn, func, funcColumn, FilterNodeBean.createFilterNode(bean));
|
||||
}
|
||||
|
||||
@@ -1629,8 +1633,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> T find(final AsyncHandler<T, FilterNode> handler, final Class<T> clazz, final FilterBean bean) {
|
||||
return find(handler, clazz, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> T find(final AsyncHandler<T, B> handler, final Class<T> clazz, final B bean) {
|
||||
T rs = find(clazz, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1651,8 +1657,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> T find(final AsyncHandler<T, FilterNode> handler, final Class<T> clazz, final SelectColumn selects, final FilterBean bean) {
|
||||
return find(handler, clazz, selects, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> T find(final AsyncHandler<T, B> handler, final Class<T> clazz, final SelectColumn selects, final B bean) {
|
||||
T rs = find(clazz, selects, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1712,8 +1720,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> Serializable findColumn(final AsyncHandler<Serializable, FilterNode> handler, final Class<T> clazz, final String column, final FilterBean bean) {
|
||||
return findColumn(handler, clazz, column, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> Serializable findColumn(final AsyncHandler<Serializable, B> handler, final Class<T> clazz, final String column, final B bean) {
|
||||
Serializable rs = findColumn(clazz, column, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1781,8 +1791,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> Serializable findColumn(final AsyncHandler<Serializable, FilterNode> handler, final Class<T> clazz, final String column, final Serializable defValue, final FilterBean bean) {
|
||||
return findColumn(handler, clazz, column, defValue, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> Serializable findColumn(final AsyncHandler<Serializable, B> handler, final Class<T> clazz, final String column, final Serializable defValue, final B bean) {
|
||||
Serializable rs = findColumn(clazz, column, defValue, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1879,8 +1891,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> boolean exists(final AsyncHandler<Boolean, FilterNode> handler, final Class<T> clazz, final FilterBean bean) {
|
||||
return exists(handler, clazz, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> boolean exists(final AsyncHandler<Boolean, B> handler, final Class<T> clazz, final B bean) {
|
||||
boolean rs = exists(clazz, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1943,8 +1957,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T, V extends Serializable> HashSet<V> queryColumnSet(final AsyncHandler<HashSet<V>, FilterNode> handler, final String selectedColumn, final Class<T> clazz, final FilterBean bean) {
|
||||
return queryColumnSet(handler, selectedColumn, clazz, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, V extends Serializable, B extends FilterBean> HashSet<V> queryColumnSet(final AsyncHandler<HashSet<V>, B> handler, final String selectedColumn, final Class<T> clazz, final B bean) {
|
||||
HashSet<V> rs = queryColumnSet(selectedColumn, clazz, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1977,8 +1993,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T, V extends Serializable> List<V> queryColumnList(final AsyncHandler<List<V>, FilterNode> handler, String selectedColumn, Class<T> clazz, FilterBean bean) {
|
||||
return queryColumnList(handler, selectedColumn, clazz, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, V extends Serializable, B extends FilterBean> List<V> queryColumnList(final AsyncHandler<List<V>, B> handler, String selectedColumn, Class<T> clazz, B bean) {
|
||||
List<V> rs = queryColumnList(selectedColumn, clazz, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1999,8 +2017,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T, V extends Serializable> List<V> queryColumnList(final AsyncHandler<List<V>, FilterNode> handler, String selectedColumn, Class<T> clazz, Flipper flipper, FilterBean bean) {
|
||||
return queryColumnList(handler, selectedColumn, clazz, flipper, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, V extends Serializable, B extends FilterBean> List<V> queryColumnList(final AsyncHandler<List<V>, B> handler, String selectedColumn, Class<T> clazz, Flipper flipper, B bean) {
|
||||
List<V> rs = queryColumnList(selectedColumn, clazz, flipper, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -2033,8 +2053,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T, V extends Serializable> Sheet<V> queryColumnSheet(final AsyncHandler<Sheet<V>, FilterNode> handler, String selectedColumn, Class<T> clazz, Flipper flipper, FilterBean bean) {
|
||||
return queryColumnSheet(handler, selectedColumn, clazz, flipper, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, V extends Serializable, B extends FilterBean> Sheet<V> queryColumnSheet(final AsyncHandler<Sheet<V>, B> handler, String selectedColumn, Class<T> clazz, Flipper flipper, B bean) {
|
||||
Sheet<V> rs = queryColumnSheet(selectedColumn, clazz, flipper, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -2101,8 +2123,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> List<T> queryList(final AsyncHandler<List<T>, FilterNode> handler, final Class<T> clazz, final FilterBean bean) {
|
||||
return queryList(handler, clazz, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> List<T> queryList(final AsyncHandler<List<T>, B> handler, final Class<T> clazz, final B bean) {
|
||||
List<T> rs = queryList(clazz, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -2133,8 +2157,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> List<T> queryList(final AsyncHandler<List<T>, FilterNode> handler, final Class<T> clazz, final SelectColumn selects, final FilterBean bean) {
|
||||
return queryList(handler, clazz, selects, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> List<T> queryList(final AsyncHandler<List<T>, B> handler, final Class<T> clazz, final SelectColumn selects, final B bean) {
|
||||
List<T> rs = queryList(clazz, selects, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -2167,8 +2193,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> List<T> queryList(final AsyncHandler<List<T>, FilterNode> handler, final Class<T> clazz, final Flipper flipper, final FilterBean bean) {
|
||||
return queryList(handler, clazz, flipper, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> List<T> queryList(final AsyncHandler<List<T>, B> handler, final Class<T> clazz, final Flipper flipper, final B bean) {
|
||||
List<T> rs = queryList(clazz, flipper, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -2189,8 +2217,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> List<T> queryList(final AsyncHandler<List<T>, FilterNode> handler, final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final FilterBean bean) {
|
||||
return queryList(handler, clazz, selects, flipper, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> List<T> queryList(final AsyncHandler<List<T>, B> handler, final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final B bean) {
|
||||
List<T> rs = queryList(clazz, selects, flipper, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -2222,8 +2252,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> Sheet<T> querySheet(final AsyncHandler<Sheet<T>, FilterNode> handler, final Class<T> clazz, final Flipper flipper, final FilterBean bean) {
|
||||
return querySheet(handler, clazz, flipper, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> Sheet<T> querySheet(final AsyncHandler<Sheet<T>, B> handler, final Class<T> clazz, final Flipper flipper, final B bean) {
|
||||
Sheet<T> rs = querySheet(clazz, flipper, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -2255,8 +2287,10 @@ public final class DataDefaultSource implements DataSource, Function<Class, Enti
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <T> Sheet<T> querySheet(final AsyncHandler<Sheet<T>, FilterNode> handler, final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final FilterBean bean) {
|
||||
return querySheet(handler, clazz, selects, flipper, FilterNodeBean.createFilterNode(bean));
|
||||
public <T, B extends FilterBean> Sheet<T> querySheet(final AsyncHandler<Sheet<T>, B> handler, final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final B bean) {
|
||||
Sheet<T> rs = querySheet(clazz, selects, flipper, bean);
|
||||
if (handler != null) handler.completed(rs, bean);
|
||||
return rs;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -504,6 +504,7 @@ public interface DataSource {
|
||||
* 等价SQL: SELECT FUNC{column} FROM {table} WHERE {filter bean} <br>
|
||||
* 如 getNumberResult(Record.class, FilterFunc.COUNT, null, (FilterBean)null) 等价于: SELECT COUNT(*) FROM {table} <br>
|
||||
*
|
||||
* @param <B> Filter泛型
|
||||
* @param handler 回调函数
|
||||
* @param entityClass Entity类
|
||||
* @param func 聚合函数
|
||||
@@ -513,7 +514,7 @@ public interface DataSource {
|
||||
* @return 聚合结果
|
||||
*
|
||||
*/
|
||||
public Number getNumberResult(final AsyncHandler<Number, FilterNode> handler, final Class entityClass, final FilterFunc func, final String column, final FilterBean bean);
|
||||
public <B extends FilterBean> Number getNumberResult(final AsyncHandler<Number, B> handler, final Class entityClass, final FilterFunc func, final String column, final B bean);
|
||||
|
||||
/**
|
||||
* 获取符合过滤条件记录的聚合结果, 无结果返回null <br>
|
||||
@@ -684,6 +685,7 @@ public interface DataSource {
|
||||
* 如 getNumberMap(Record.class, (FilterBean)null, new FilterFuncColumn(FilterFunc.MAX, "createtime")) 等价于: SELECT MAX(createtime) FROM {table} <br>
|
||||
*
|
||||
* @param <N> Number
|
||||
* @param <B> Filter泛型
|
||||
* @param handler 回调函数
|
||||
* @param entityClass Entity类
|
||||
* @param bean 过滤条件
|
||||
@@ -691,7 +693,7 @@ public interface DataSource {
|
||||
*
|
||||
* @return 聚合结果Map
|
||||
*/
|
||||
public <N extends Number> Map<String, N> getNumberMap(final AsyncHandler<Map<String, N>, FilterNode> handler, final Class entityClass, final FilterBean bean, final FilterFuncColumn... columns);
|
||||
public <N extends Number, B extends FilterBean> Map<String, N> getNumberMap(final AsyncHandler<Map<String, N>, B> handler, final Class entityClass, final B bean, final FilterFuncColumn... columns);
|
||||
|
||||
/**
|
||||
* 获取符合过滤条件记录的聚合结果Map <br>
|
||||
@@ -928,13 +930,14 @@ public interface DataSource {
|
||||
* 等价SQL: SELECT * FROM {table} WHERE {filter bean} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param <B> Filter泛型
|
||||
* @param handler 回调函数
|
||||
* @param clazz Entity类
|
||||
* @param bean 过滤条件
|
||||
*
|
||||
* @return Entity对象
|
||||
*/
|
||||
public <T> T find(final AsyncHandler<T, FilterNode> handler, final Class<T> clazz, final FilterBean bean);
|
||||
public <T, B extends FilterBean> T find(final AsyncHandler<T, B> handler, final Class<T> clazz, final B bean);
|
||||
|
||||
/**
|
||||
* 获取符合过滤条件单个记录, 返回null表示不存在值 <br>
|
||||
@@ -979,6 +982,7 @@ public interface DataSource {
|
||||
* 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter bean} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param <B> Filter泛型
|
||||
* @param handler 回调函数
|
||||
* @param clazz Entity类
|
||||
* @param selects 指定字段
|
||||
@@ -986,7 +990,7 @@ public interface DataSource {
|
||||
*
|
||||
* @return Entity对象
|
||||
*/
|
||||
public <T> T find(final AsyncHandler<T, FilterNode> handler, final Class<T> clazz, final SelectColumn selects, final FilterBean bean);
|
||||
public <T, B extends FilterBean> T find(final AsyncHandler<T, B> handler, final Class<T> clazz, final SelectColumn selects, final B bean);
|
||||
|
||||
/**
|
||||
* 获取符合过滤条件单个记录, 返回null表示不存在值 <br>
|
||||
@@ -1060,6 +1064,7 @@ public interface DataSource {
|
||||
* 等价SQL: SELECT {column} FROM {table} WHERE {filter bean} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param <B> Filter泛型
|
||||
* @param handler 回调函数
|
||||
* @param clazz Entity类
|
||||
* @param column 字段名
|
||||
@@ -1067,7 +1072,7 @@ public interface DataSource {
|
||||
*
|
||||
* @return 字段值
|
||||
*/
|
||||
public <T> Serializable findColumn(final AsyncHandler<Serializable, FilterNode> handler, final Class<T> clazz, final String column, final FilterBean bean);
|
||||
public <T, B extends FilterBean> Serializable findColumn(final AsyncHandler<Serializable, B> handler, final Class<T> clazz, final String column, final B bean);
|
||||
|
||||
/**
|
||||
* 获取符合过滤条件单个记录的单个字段值, 返回null表示不存在值 <br>
|
||||
@@ -1144,6 +1149,7 @@ public interface DataSource {
|
||||
* 等价SQL: SELECT {column} FROM {table} WHERE {filter bean} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param <B> Filter泛型
|
||||
* @param handler 回调函数
|
||||
* @param clazz Entity类
|
||||
* @param column 字段名
|
||||
@@ -1152,7 +1158,7 @@ public interface DataSource {
|
||||
*
|
||||
* @return 字段值
|
||||
*/
|
||||
public <T> Serializable findColumn(final AsyncHandler<Serializable, FilterNode> handler, final Class<T> clazz, final String column, final Serializable defValue, final FilterBean bean);
|
||||
public <T, B extends FilterBean> Serializable findColumn(final AsyncHandler<Serializable, B> handler, final Class<T> clazz, final String column, final Serializable defValue, final B bean);
|
||||
|
||||
/**
|
||||
* 获取符合过滤条件单个记录的单个字段值, 不存在值则返回默认值 <br>
|
||||
@@ -1225,13 +1231,14 @@ public interface DataSource {
|
||||
* 等价SQL: SELECT COUNT(*) FROM {table} WHERE {filter bean} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param <B> Filter泛型
|
||||
* @param handler 回调函数
|
||||
* @param clazz Entity类
|
||||
* @param bean 过滤条件
|
||||
*
|
||||
* @return 是否存在
|
||||
*/
|
||||
public <T> boolean exists(final AsyncHandler<Boolean, FilterNode> handler, final Class<T> clazz, final FilterBean bean);
|
||||
public <T, B extends FilterBean> boolean exists(final AsyncHandler<Boolean, B> handler, final Class<T> clazz, final B bean);
|
||||
|
||||
/**
|
||||
* 判断是否存在符合过滤条件的记录 <br>
|
||||
@@ -1310,6 +1317,7 @@ public interface DataSource {
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param <V> 字段类型
|
||||
* @param <B> Filter泛型
|
||||
* @param handler 回调函数
|
||||
* @param selectedColumn 指定字段
|
||||
* @param clazz Entity类
|
||||
@@ -1317,7 +1325,7 @@ public interface DataSource {
|
||||
*
|
||||
* @return 字段值的集合
|
||||
*/
|
||||
public <T, V extends Serializable> HashSet<V> queryColumnSet(final AsyncHandler<HashSet<V>, FilterNode> handler, final String selectedColumn, final Class<T> clazz, final FilterBean bean);
|
||||
public <T, V extends Serializable, B extends FilterBean> HashSet<V> queryColumnSet(final AsyncHandler<HashSet<V>, B> handler, final String selectedColumn, final Class<T> clazz, final B bean);
|
||||
|
||||
/**
|
||||
* 查询符合过滤条件记录的某个字段Set集合 <br>
|
||||
@@ -1399,6 +1407,7 @@ public interface DataSource {
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param <V> 字段类型
|
||||
* @param <B> Filter泛型
|
||||
* @param handler 回调函数
|
||||
* @param selectedColumn 指定字段
|
||||
* @param clazz Entity类
|
||||
@@ -1406,7 +1415,7 @@ public interface DataSource {
|
||||
*
|
||||
* @return 字段值的集合
|
||||
*/
|
||||
public <T, V extends Serializable> List<V> queryColumnList(final AsyncHandler<List<V>, FilterNode> handler, final String selectedColumn, final Class<T> clazz, final FilterBean bean);
|
||||
public <T, V extends Serializable, B extends FilterBean> List<V> queryColumnList(final AsyncHandler<List<V>, B> handler, final String selectedColumn, final Class<T> clazz, final B bean);
|
||||
|
||||
/**
|
||||
* 查询符合过滤条件记录的某个字段List集合 <br>
|
||||
@@ -1458,6 +1467,7 @@ public interface DataSource {
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param <V> 字段类型
|
||||
* @param <B> Filter泛型
|
||||
* @param handler 回调函数
|
||||
* @param selectedColumn 指定字段
|
||||
* @param clazz Entity类
|
||||
@@ -1466,7 +1476,7 @@ public interface DataSource {
|
||||
*
|
||||
* @return 字段值的集合
|
||||
*/
|
||||
public <T, V extends Serializable> List<V> queryColumnList(final AsyncHandler<List<V>, FilterNode> handler, final String selectedColumn, final Class<T> clazz, final Flipper flipper, final FilterBean bean);
|
||||
public <T, V extends Serializable, B extends FilterBean> List<V> queryColumnList(final AsyncHandler<List<V>, B> handler, final String selectedColumn, final Class<T> clazz, final Flipper flipper, final B bean);
|
||||
|
||||
/**
|
||||
* 查询符合过滤条件记录的某个字段List集合 <br>
|
||||
@@ -1520,6 +1530,7 @@ public interface DataSource {
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param <V> 字段类型
|
||||
* @param <B> Filter泛型
|
||||
* @param handler 回调函数
|
||||
* @param selectedColumn 指定字段
|
||||
* @param clazz Entity类
|
||||
@@ -1528,7 +1539,7 @@ public interface DataSource {
|
||||
*
|
||||
* @return 字段值的集合
|
||||
*/
|
||||
public <T, V extends Serializable> Sheet<V> queryColumnSheet(final AsyncHandler<Sheet<V>, FilterNode> handler, final String selectedColumn, final Class<T> clazz, final Flipper flipper, final FilterBean bean);
|
||||
public <T, V extends Serializable, B extends FilterBean> Sheet<V> queryColumnSheet(final AsyncHandler<Sheet<V>, B> handler, final String selectedColumn, final Class<T> clazz, final Flipper flipper, final B bean);
|
||||
|
||||
/**
|
||||
* 查询符合过滤条件记录的某个字段Sheet集合 <br>
|
||||
@@ -1605,13 +1616,14 @@ public interface DataSource {
|
||||
* 等价SQL: SELECT * FROM {table} WHERE {filter bean} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param <B> Filter泛型
|
||||
* @param handler 回调函数
|
||||
* @param clazz Entity类
|
||||
* @param bean 过滤条件
|
||||
*
|
||||
* @return Entity的集合
|
||||
*/
|
||||
public <T> List<T> queryList(final AsyncHandler<List<T>, FilterNode> handler, final Class<T> clazz, final FilterBean bean);
|
||||
public <T, B extends FilterBean> List<T> queryList(final AsyncHandler<List<T>, B> handler, final Class<T> clazz, final B bean);
|
||||
|
||||
/**
|
||||
* 查询符合过滤条件记录的List集合 <br>
|
||||
@@ -1656,6 +1668,7 @@ public interface DataSource {
|
||||
* 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter bean} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param <B> Filter泛型
|
||||
* @param handler 回调函数
|
||||
* @param clazz Entity类
|
||||
* @param selects 指定字段
|
||||
@@ -1663,7 +1676,7 @@ public interface DataSource {
|
||||
*
|
||||
* @return Entity的集合
|
||||
*/
|
||||
public <T> List<T> queryList(final AsyncHandler<List<T>, FilterNode> handler, final Class<T> clazz, final SelectColumn selects, final FilterBean bean);
|
||||
public <T, B extends FilterBean> List<T> queryList(final AsyncHandler<List<T>, B> handler, final Class<T> clazz, final SelectColumn selects, final B bean);
|
||||
|
||||
/**
|
||||
* 查询符合过滤条件记录的List集合 <br>
|
||||
@@ -1739,6 +1752,7 @@ public interface DataSource {
|
||||
* 等价SQL: SELECT * FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param <B> Filter泛型
|
||||
* @param handler 回调函数
|
||||
* @param clazz Entity类
|
||||
* @param flipper 翻页对象
|
||||
@@ -1746,7 +1760,7 @@ public interface DataSource {
|
||||
*
|
||||
* @return Entity的集合
|
||||
*/
|
||||
public <T> List<T> queryList(final AsyncHandler<List<T>, FilterNode> handler, final Class<T> clazz, final Flipper flipper, final FilterBean bean);
|
||||
public <T, B extends FilterBean> List<T> queryList(final AsyncHandler<List<T>, B> handler, final Class<T> clazz, final Flipper flipper, final B bean);
|
||||
|
||||
/**
|
||||
* 查询符合过滤条件记录的List集合 <br>
|
||||
@@ -1796,6 +1810,7 @@ public interface DataSource {
|
||||
* 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param <B> Filter泛型
|
||||
* @param handler 回调函数
|
||||
* @param clazz Entity类
|
||||
* @param selects 指定字段
|
||||
@@ -1804,7 +1819,7 @@ public interface DataSource {
|
||||
*
|
||||
* @return Entity的集合
|
||||
*/
|
||||
public <T> List<T> queryList(final AsyncHandler<List<T>, FilterNode> handler, final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final FilterBean bean);
|
||||
public <T, B extends FilterBean> List<T> queryList(final AsyncHandler<List<T>, B> handler, final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final B bean);
|
||||
|
||||
/**
|
||||
* 查询符合过滤条件记录的List集合 <br>
|
||||
@@ -1854,6 +1869,7 @@ public interface DataSource {
|
||||
* 等价SQL: SELECT * FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param <B> Filter泛型
|
||||
* @param handler 回调函数
|
||||
* @param clazz Entity类
|
||||
* @param flipper 翻页对象
|
||||
@@ -1861,7 +1877,7 @@ public interface DataSource {
|
||||
*
|
||||
* @return Entity的集合
|
||||
*/
|
||||
public <T> Sheet<T> querySheet(final AsyncHandler<Sheet<T>, FilterNode> handler, final Class<T> clazz, final Flipper flipper, final FilterBean bean);
|
||||
public <T, B extends FilterBean> Sheet<T> querySheet(final AsyncHandler<Sheet<T>, B> handler, final Class<T> clazz, final Flipper flipper, final B bean);
|
||||
|
||||
/**
|
||||
* 查询符合过滤条件记录的Sheet集合 <br>
|
||||
@@ -1909,6 +1925,7 @@ public interface DataSource {
|
||||
* 等价SQL: SELECT {column1},{column2}, ··· FROM {table} WHERE {filter bean} ORDER BY {flipper.sort} LIMIT {flipper.limit} <br>
|
||||
*
|
||||
* @param <T> Entity泛型
|
||||
* @param <B> Filter泛型
|
||||
* @param handler 回调函数
|
||||
* @param clazz Entity类
|
||||
* @param selects 指定字段
|
||||
@@ -1917,7 +1934,7 @@ public interface DataSource {
|
||||
*
|
||||
* @return Entity的集合
|
||||
*/
|
||||
public <T> Sheet<T> querySheet(final AsyncHandler<Sheet<T>, FilterNode> handler, final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final FilterBean bean);
|
||||
public <T, B extends FilterBean> Sheet<T> querySheet(final AsyncHandler<Sheet<T>, B> handler, final Class<T> clazz, final SelectColumn selects, final Flipper flipper, final B bean);
|
||||
|
||||
/**
|
||||
* 查询符合过滤条件记录的Sheet集合 <br>
|
||||
|
||||
@@ -46,6 +46,33 @@ public interface AsyncHandler<V, A> extends CompletionHandler<V, A> {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建 AsyncHandler 对象
|
||||
*
|
||||
* @param <V> 结果对象的泛型
|
||||
* @param <A> 附件对象的泛型
|
||||
* @param success 成功的回调函数
|
||||
* @param fail 失败的回调函数
|
||||
* @param handler 子回调函数
|
||||
*
|
||||
* @return AsyncHandler
|
||||
*/
|
||||
public static <V, A> AsyncHandler<V, A> create(final BiConsumer<V, A> success, final BiConsumer<Throwable, A> fail, final AsyncHandler<V, A> handler) {
|
||||
return new AsyncHandler<V, A>() {
|
||||
@Override
|
||||
public void completed(V result, A attachment) {
|
||||
if (success != null) success.accept(result, attachment);
|
||||
if (handler != null) handler.completed(result, attachment);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed(Throwable exc, A attachment) {
|
||||
if (fail != null) fail.accept(exc, attachment);
|
||||
if (handler != null) handler.failed(exc, attachment);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建没有返回结果的 AsyncHandler 对象
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user