diff --git a/src/org/redkale/source/DataDefaultSource.java b/src/org/redkale/source/DataDefaultSource.java index da8243226..0ee081907 100644 --- a/src/org/redkale/source/DataDefaultSource.java +++ b/src/org/redkale/source/DataDefaultSource.java @@ -19,69 +19,6 @@ import javax.sql.ConnectionPoolDataSource; import javax.xml.stream.*; import org.redkale.util.*; import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; -import static org.redkale.source.FilterNode.formatToString; /** * diff --git a/src/org/redkale/source/EntityCache.java b/src/org/redkale/source/EntityCache.java index 00c2399ea..3a2a93b52 100644 --- a/src/org/redkale/source/EntityCache.java +++ b/src/org/redkale/source/EntityCache.java @@ -474,121 +474,19 @@ public final class EntityCache { final Attribute pattr = getAttribute(sub[0].substring(pos + 1, pos2)); final String func = sub[0].substring(0, pos); if ("ABS".equalsIgnoreCase(func)) { + Function getter = null; if (pattr.type() == int.class || pattr.type() == Integer.class) { - attr = new Attribute() { - - @Override - public Class type() { - return pattr.type(); - } - - @Override - public Class declaringClass() { - return pattr.declaringClass(); - } - - @Override - public String field() { - return pattr.field(); - } - - @Override - public Serializable get(T obj) { - return Math.abs(((Number) pattr.get(obj)).intValue()); - } - - @Override - public void set(T obj, Serializable value) { - pattr.set(obj, value); - } - }; + getter = x -> Math.abs(((Number) pattr.get((T) x)).intValue()); } else if (pattr.type() == long.class || pattr.type() == Long.class) { - attr = new Attribute() { - - @Override - public Class type() { - return pattr.type(); - } - - @Override - public Class declaringClass() { - return pattr.declaringClass(); - } - - @Override - public String field() { - return pattr.field(); - } - - @Override - public Serializable get(T obj) { - return Math.abs(((Number) pattr.get(obj)).longValue()); - } - - @Override - public void set(T obj, Serializable value) { - pattr.set(obj, value); - } - }; + getter = x -> Math.abs(((Number) pattr.get((T) x)).longValue()); } else if (pattr.type() == float.class || pattr.type() == Float.class) { - attr = new Attribute() { - - @Override - public Class type() { - return pattr.type(); - } - - @Override - public Class declaringClass() { - return pattr.declaringClass(); - } - - @Override - public String field() { - return pattr.field(); - } - - @Override - public Serializable get(T obj) { - return Math.abs(((Number) pattr.get(obj)).floatValue()); - } - - @Override - public void set(T obj, Serializable value) { - pattr.set(obj, value); - } - }; + getter = x -> Math.abs(((Number) pattr.get((T) x)).floatValue()); } else if (pattr.type() == double.class || pattr.type() == Double.class) { - attr = new Attribute() { - - @Override - public Class type() { - return pattr.type(); - } - - @Override - public Class declaringClass() { - return pattr.declaringClass(); - } - - @Override - public String field() { - return pattr.field(); - } - - @Override - public Serializable get(T obj) { - return Math.abs(((Number) pattr.get(obj)).doubleValue()); - } - - @Override - public void set(T obj, Serializable value) { - pattr.set(obj, value); - } - }; + getter = x -> Math.abs(((Number) pattr.get((T) x)).doubleValue()); } else { throw new RuntimeException("Flipper not supported sort illegal type by ABS (" + flipper.getSort() + ")"); } + attr = (Attribute) Attribute.create(pattr.declaringClass(), pattr.field(), pattr.type(), getter, (o, v) -> pattr.set(o, v)); } else if (func.isEmpty()) { attr = pattr; } else { diff --git a/src/org/redkale/source/EntityInfo.java b/src/org/redkale/source/EntityInfo.java index a3d9b2a12..0fac5c088 100644 --- a/src/org/redkale/source/EntityInfo.java +++ b/src/org/redkale/source/EntityInfo.java @@ -99,7 +99,7 @@ public final class EntityInfo { //------------------------------------------------------------ public static EntityInfo load(Class clazz, final int nodeid, final boolean cacheForbidden, final Properties conf, - Function fullloader) { + Function fullloader) { EntityInfo rs = entityInfos.get(clazz); if (rs != null) return rs; synchronized (entityInfos) { @@ -312,7 +312,7 @@ public final class EntityInfo { } protected String createSQLOrderby(Flipper flipper) { - if (flipper == null || flipper.getSort() == null || flipper.getSort().isEmpty() || flipper.getSort().indexOf(';') >= 0 || flipper.getSort().indexOf('\n') >= 0 ) return ""; + if (flipper == null || flipper.getSort() == null || flipper.getSort().isEmpty() || flipper.getSort().indexOf(';') >= 0 || flipper.getSort().indexOf('\n') >= 0) return ""; final String sort = flipper.getSort(); String sql = this.sortOrderbySqls.get(sort); if (sql != null) return sql; @@ -369,12 +369,18 @@ public final class EntityInfo { Serializable o = (Serializable) set.getObject(this.getSQLColumn(null, attr.field())); if (o != null) { Class t = attr.type(); - if (t == short.class) { + if (t == int.class) { + o = ((Number) o).intValue(); + } else if (t == short.class) { o = ((Number) o).shortValue(); } else if (t == long.class) { o = ((Number) o).longValue(); - } else if (t == int.class) { - o = ((Number) o).intValue(); + } else if (t == float.class) { + o = ((Number) o).floatValue(); + } else if (t == double.class) { + o = ((Number) o).doubleValue(); + } else if (t == byte.class) { + o = ((Number) o).byteValue(); } } attr.set(obj, o);