Search in sources :

Example 1 with Entity

use of org.nutz.dao.entity.Entity in project nutz by nutzam.

the class ExtDaoInvocationHandler method filterFields.

@SuppressWarnings({ "unchecked", "rawtypes" })
public static boolean filterFields(Object obj, FieldMatcher matcher, Dao dao, Callback2<MappingField, Object> callback) {
    if (obj == null)
        return false;
    obj = Lang.first(obj);
    if (obj == null) {
        return false;
    }
    if (obj.getClass() == Class.class) {
        throw Lang.impossible();
    }
    if (obj instanceof String || obj instanceof Number || obj instanceof Boolean) {
        throw Lang.impossible();
    }
    Entity en = dao.getEntity(obj.getClass());
    if (en == null) {
        throw Lang.impossible();
    }
    List<MappingField> mfs = new ArrayList<MappingField>(en.getMappingFields());
    if (matcher != null) {
        Iterator<MappingField> it = mfs.iterator();
        while (it.hasNext()) {
            MappingField mf = it.next();
            if (!matcher.match(mf.getName()))
                it.remove();
        }
    }
    boolean flag = false;
    for (MappingField mf : mfs) {
        if (matcher == null) {
            Object val = mf.getValue(obj);
            callback.invoke(mf, val);
            flag = true;
            continue;
        }
        if (matcher.isIgnoreId() && mf.isId())
            continue;
        if (matcher.isIgnoreName() && mf.isName())
            continue;
        if (matcher.isIgnorePk() && mf.isCompositePk())
            continue;
        Object val = mf.getValue(obj);
        if (val == null) {
            if (matcher.isIgnoreNull())
                continue;
        } else {
            if (matcher.isIgnoreZero() && val instanceof Number && ((Number) val).doubleValue() == 0.0) {
                continue;
            }
            if (matcher.isIgnoreDate() && val instanceof Date) {
                continue;
            }
            if (matcher.isIgnoreBlankStr() && val instanceof String) {
            }
        }
        callback.invoke(mf, val);
        flag = true;
    }
    return flag;
}
Also used : Entity(org.nutz.dao.entity.Entity) ArrayList(java.util.ArrayList) MappingField(org.nutz.dao.entity.MappingField) Date(java.util.Date)

Example 2 with Entity

use of org.nutz.dao.entity.Entity in project nutz by nutzam.

the class ExtDaoInvocationHandler method checkTableColumn.

/**
     * 检查分表中是否有字段变化 提示
     *
     * @param dao
     *            Dao实例
     * @param tableName
     *            动态表名上下文
     * @param clsType
     *            映射Pojo
     */
public static void checkTableColumn(Dao dao, Object tableName, final Class<?> clsType) {
    final NutDao d = (NutDao) dao;
    final JdbcExpert expert = d.getJdbcExpert();
    ext(d, tableName).run(new ConnCallback() {

        public void invoke(Connection conn) throws Exception {
            Entity<?> en = d.getEntity(clsType);
            expert.setupEntityField(conn, en);
        }
    });
}
Also used : Entity(org.nutz.dao.entity.Entity) NutDao(org.nutz.dao.impl.NutDao) JdbcExpert(org.nutz.dao.jdbc.JdbcExpert) ConnCallback(org.nutz.dao.ConnCallback) Connection(java.sql.Connection) DaoException(org.nutz.dao.DaoException) SQLException(java.sql.SQLException)

Aggregations

Entity (org.nutz.dao.entity.Entity)2 Connection (java.sql.Connection)1 SQLException (java.sql.SQLException)1 ArrayList (java.util.ArrayList)1 Date (java.util.Date)1 ConnCallback (org.nutz.dao.ConnCallback)1 DaoException (org.nutz.dao.DaoException)1 MappingField (org.nutz.dao.entity.MappingField)1 NutDao (org.nutz.dao.impl.NutDao)1 JdbcExpert (org.nutz.dao.jdbc.JdbcExpert)1