This commit is contained in:
wentch
2015-12-14 15:10:19 +08:00
parent bc07d49751
commit 3800f2deaf
5 changed files with 28 additions and 23 deletions

View File

@@ -139,32 +139,32 @@ public class DataSourceService implements DataSource, Service {
} }
@Override @Override
public Number getNumberResult(Class entityClass, FuncEnum func, String column) { public Number getNumberResult(Class entityClass, FilterFunc func, String column) {
return source.getNumberResult(entityClass, func, column); return source.getNumberResult(entityClass, func, column);
} }
@Override @Override
public final Number getNumberResult(Class entityClass, FuncEnum func, String column, FilterBean bean) { public final Number getNumberResult(Class entityClass, FilterFunc func, String column, FilterBean bean) {
return getNumberResult(entityClass, func, column, FilterNodeBean.createFilterNode(bean)); return getNumberResult(entityClass, func, column, FilterNodeBean.createFilterNode(bean));
} }
@Override @Override
public Number getNumberResult(Class entityClass, FuncEnum func, String column, FilterNode node) { public Number getNumberResult(Class entityClass, FilterFunc func, String column, FilterNode node) {
return source.getNumberResult(entityClass, func, column, node); return source.getNumberResult(entityClass, func, column, node);
} }
@Override @Override
public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(Class<T> entityClass, String keyColumn, FuncEnum func, String funcColumn) { public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(Class<T> entityClass, String keyColumn, FilterFunc func, String funcColumn) {
return source.queryColumnMap(entityClass, keyColumn, func, funcColumn); return source.queryColumnMap(entityClass, keyColumn, func, funcColumn);
} }
@Override @Override
public final <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(Class<T> entityClass, String keyColumn, FuncEnum func, String funcColumn, FilterBean bean) { public final <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(Class<T> entityClass, String keyColumn, FilterFunc func, String funcColumn, FilterBean bean) {
return queryColumnMap(entityClass, keyColumn, func, funcColumn, FilterNodeBean.createFilterNode(bean)); return queryColumnMap(entityClass, keyColumn, func, funcColumn, FilterNodeBean.createFilterNode(bean));
} }
@Override @Override
public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(Class<T> entityClass, String keyColumn, FuncEnum func, String funcColumn, FilterNode node) { public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(Class<T> entityClass, String keyColumn, FilterFunc func, String funcColumn, FilterNode node) {
return source.queryColumnMap(entityClass, keyColumn, func, funcColumn, node); return source.queryColumnMap(entityClass, keyColumn, func, funcColumn, node);
} }

View File

@@ -1066,17 +1066,17 @@ public final class DataDefaultSource implements DataSource, Nameable, Function<C
//-----------------------getNumberResult----------------------------- //-----------------------getNumberResult-----------------------------
@Override @Override
public Number getNumberResult(final Class entityClass, final FuncEnum func, final String column) { public Number getNumberResult(final Class entityClass, final FilterFunc func, final String column) {
return getNumberResult(entityClass, func, column, (FilterNode) null); return getNumberResult(entityClass, func, column, (FilterNode) null);
} }
@Override @Override
public Number getNumberResult(final Class entityClass, final FuncEnum func, final String column, FilterBean bean) { public Number getNumberResult(final Class entityClass, final FilterFunc func, final String column, FilterBean bean) {
return getNumberResult(entityClass, func, column, FilterNodeBean.createFilterNode(bean)); return getNumberResult(entityClass, func, column, FilterNodeBean.createFilterNode(bean));
} }
@Override @Override
public Number getNumberResult(final Class entityClass, final FuncEnum func, final String column, final FilterNode node) { public Number getNumberResult(final Class entityClass, final FilterFunc func, final String column, final FilterNode node) {
final Connection conn = createReadSQLConnection(); final Connection conn = createReadSQLConnection();
try { try {
final EntityInfo info = loadEntityInfo(entityClass); final EntityInfo info = loadEntityInfo(entityClass);
@@ -1110,17 +1110,17 @@ public final class DataDefaultSource implements DataSource, Nameable, Function<C
//-----------------------queryColumnMap----------------------------- //-----------------------queryColumnMap-----------------------------
@Override @Override
public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(final Class<T> entityClass, final String keyColumn, FuncEnum func, final String funcColumn) { public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(final Class<T> entityClass, final String keyColumn, FilterFunc func, final String funcColumn) {
return queryColumnMap(entityClass, keyColumn, func, funcColumn, (FilterNode) null); return queryColumnMap(entityClass, keyColumn, func, funcColumn, (FilterNode) null);
} }
@Override @Override
public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(final Class<T> entityClass, final String keyColumn, FuncEnum func, final String funcColumn, FilterBean bean) { public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(final Class<T> entityClass, final String keyColumn, FilterFunc func, final String funcColumn, FilterBean bean) {
return queryColumnMap(entityClass, keyColumn, func, funcColumn, FilterNodeBean.createFilterNode(bean)); return queryColumnMap(entityClass, keyColumn, func, funcColumn, FilterNodeBean.createFilterNode(bean));
} }
@Override @Override
public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(final Class<T> entityClass, final String keyColumn, final FuncEnum func, final String funcColumn, FilterNode node) { public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(final Class<T> entityClass, final String keyColumn, final FilterFunc func, final String funcColumn, FilterNode node) {
final Connection conn = createReadSQLConnection(); final Connection conn = createReadSQLConnection();
try { try {
final EntityInfo info = loadEntityInfo(entityClass); final EntityInfo info = loadEntityInfo(entityClass);

View File

@@ -100,17 +100,17 @@ public interface DataSource {
public <T> void updateColumnOr(final DataConnection conn, Class<T> clazz, Serializable id, String column, long incvalue); public <T> void updateColumnOr(final DataConnection conn, Class<T> clazz, Serializable id, String column, long incvalue);
//-----------------------getXXXXResult----------------------------- //-----------------------getXXXXResult-----------------------------
public Number getNumberResult(final Class entityClass, final FuncEnum func, final String column); public Number getNumberResult(final Class entityClass, final FilterFunc func, final String column);
public Number getNumberResult(final Class entityClass, final FuncEnum func, final String column, FilterBean bean); public Number getNumberResult(final Class entityClass, final FilterFunc func, final String column, FilterBean bean);
public Number getNumberResult(final Class entityClass, final FuncEnum func, final String column, FilterNode node); public Number getNumberResult(final Class entityClass, final FilterFunc func, final String column, FilterNode node);
public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(Class<T> entityClass, final String keyColumn, FuncEnum func, final String funcColumn); public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(Class<T> entityClass, final String keyColumn, FilterFunc func, final String funcColumn);
public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(Class<T> entityClass, final String keyColumn, FuncEnum func, final String funcColumn, final FilterBean bean); public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(Class<T> entityClass, final String keyColumn, FilterFunc func, final String funcColumn, final FilterBean bean);
public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(Class<T> entityClass, final String keyColumn, FuncEnum func, final String funcColumn, final FilterNode node); public <T, K extends Serializable, N extends Number> Map<K, N> queryColumnMap(Class<T> entityClass, final String keyColumn, FilterFunc func, final String funcColumn, final FilterNode node);
//-----------------------find---------------------------- //-----------------------find----------------------------
/** /**

View File

@@ -12,7 +12,7 @@ import java.util.function.*;
import java.util.logging.*; import java.util.logging.*;
import java.util.stream.Stream; import java.util.stream.Stream;
import javax.persistence.Transient; import javax.persistence.Transient;
import static org.redkale.source.FuncEnum.*; import static org.redkale.source.FilterFunc.*;
import java.util.stream.*; import java.util.stream.*;
import org.redkale.util.*; import org.redkale.util.*;
@@ -149,7 +149,7 @@ public final class EntityCache<T> {
return (filter != null) && this.list.stream().filter(filter).findFirst().isPresent(); return (filter != null) && this.list.stream().filter(filter).findFirst().isPresent();
} }
public <K, V> Map<Serializable, Number> queryColumnMap(final String keyColumn, final FuncEnum func, final String funcColumn, FilterNode node) { public <K, V> Map<Serializable, Number> queryColumnMap(final String keyColumn, final FilterFunc func, final String funcColumn, FilterNode node) {
final Attribute<T, Serializable> keyAttr = info.getAttribute(keyColumn); final Attribute<T, Serializable> keyAttr = info.getAttribute(keyColumn);
final Predicate filter = node == null ? null : node.createPredicate(this); final Predicate filter = node == null ? null : node.createPredicate(this);
final Attribute funcAttr = funcColumn == null ? null : info.getAttribute(funcColumn); final Attribute funcAttr = funcColumn == null ? null : info.getAttribute(funcColumn);
@@ -198,7 +198,7 @@ public final class EntityCache<T> {
return rs; return rs;
} }
public <V> Number getNumberResult(final FuncEnum func, final String column, FilterNode node) { public <V> Number getNumberResult(final FilterFunc func, final String column, FilterNode node) {
final Attribute<T, Serializable> attr = column == null ? null : info.getAttribute(column); final Attribute<T, Serializable> attr = column == null ? null : info.getAttribute(column);
final Predicate<T> filter = node == null ? null : node.createPredicate(this); final Predicate<T> filter = node == null ? null : node.createPredicate(this);
Stream<T> stream = this.list.stream(); Stream<T> stream = this.list.stream();

View File

@@ -9,8 +9,13 @@ package org.redkale.source;
* *
* @author zhangjx * @author zhangjx
*/ */
public enum FuncEnum { public enum FilterFunc {
AVG, COUNT, DISTINCTCOUNT, MAX, MIN, SUM; AVG,
COUNT,
DISTINCTCOUNT,
MAX,
MIN,
SUM;
public String getColumn(String col) { public String getColumn(String col) {
if (this == DISTINCTCOUNT) return "COUNT(DISTINCT " + col + ")"; if (this == DISTINCTCOUNT) return "COUNT(DISTINCT " + col + ")";